HashedCustomer is now no longer necessary
This commit is contained in:
@@ -740,9 +740,8 @@ class TestHashedMatchingLogic:
|
||||
test_db_session.add(customer)
|
||||
await test_db_session.flush()
|
||||
|
||||
hashed_customer = customer.create_hashed_customer()
|
||||
test_db_session.add(hashed_customer)
|
||||
await test_db_session.flush()
|
||||
customer.update_hashed_fields()
|
||||
|
||||
|
||||
reservation = Reservation(
|
||||
customer_id=customer.id,
|
||||
|
||||
@@ -42,9 +42,9 @@ async def test_create_customer_creates_hashed_version(async_session: AsyncSessio
|
||||
assert customer.given_name == "John"
|
||||
|
||||
# Check that hashed version was created
|
||||
hashed = await service.get_hashed_customer(customer.id)
|
||||
hashed = await service.get_customer(customer.id)
|
||||
assert hashed is not None
|
||||
assert hashed.customer_id == customer.id
|
||||
assert hashed.id == customer.id
|
||||
assert hashed.hashed_email is not None
|
||||
assert hashed.hashed_phone is not None
|
||||
assert hashed.hashed_given_name is not None
|
||||
@@ -66,7 +66,7 @@ async def test_update_customer_updates_hashed_version(async_session: AsyncSessio
|
||||
customer = await service.create_customer(customer_data)
|
||||
|
||||
# Get initial hashed email
|
||||
hashed = await service.get_hashed_customer(customer.id)
|
||||
hashed = await service.get_customer(customer.id)
|
||||
original_hashed_email = hashed.hashed_email
|
||||
|
||||
# Update customer email
|
||||
@@ -74,7 +74,7 @@ async def test_update_customer_updates_hashed_version(async_session: AsyncSessio
|
||||
updated_customer = await service.update_customer(customer, update_data)
|
||||
|
||||
# Check that hashed version was updated
|
||||
updated_hashed = await service.get_hashed_customer(updated_customer.id)
|
||||
updated_hashed = await service.get_customer(updated_customer.id)
|
||||
assert updated_hashed.hashed_email != original_hashed_email
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@ async def test_get_or_create_customer_creates_new(async_session: AsyncSession):
|
||||
assert customer.contact_id == "new123"
|
||||
|
||||
# Verify hashed version exists
|
||||
hashed = await service.get_hashed_customer(customer.id)
|
||||
hashed = await service.get_customer(customer.id)
|
||||
assert hashed is not None
|
||||
|
||||
|
||||
@@ -145,10 +145,13 @@ async def test_hash_existing_customers_backfills(async_session: AsyncSession):
|
||||
|
||||
# Verify no hashed version exists
|
||||
result = await async_session.execute(
|
||||
select(HashedCustomer).where(HashedCustomer.customer_id == customer.id)
|
||||
select(Customer).where(Customer.id == customer.id)
|
||||
)
|
||||
hashed = result.scalar_one_or_none()
|
||||
assert hashed is None
|
||||
assert hashed, "Customer should exist."
|
||||
|
||||
assert hashed.hashed_given_name is None, "Hashed given name should be None."
|
||||
assert hashed.hashed_email is None, "Hashed email should be None."
|
||||
|
||||
# Run backfill
|
||||
service = CustomerService(async_session)
|
||||
@@ -158,11 +161,12 @@ async def test_hash_existing_customers_backfills(async_session: AsyncSession):
|
||||
|
||||
# Verify hashed version now exists
|
||||
result = await async_session.execute(
|
||||
select(HashedCustomer).where(HashedCustomer.customer_id == customer.id)
|
||||
select(Customer).where(Customer.id == customer.id)
|
||||
)
|
||||
hashed = result.scalar_one_or_none()
|
||||
assert hashed is not None
|
||||
assert hashed.hashed_email is not None
|
||||
assert hashed is not None, "Customer should still exist after backfill."
|
||||
assert hashed.hashed_email is not None, "Hashed email should be populated."
|
||||
assert hashed.hashed_given_name is not None, "Hashed given name should be populated."
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@@ -201,7 +205,7 @@ async def test_hashing_normalization(async_session: AsyncSession):
|
||||
}
|
||||
customer = await service.create_customer(customer_data)
|
||||
|
||||
hashed = await service.get_hashed_customer(customer.id)
|
||||
hashed = await service.get_customer(customer.id)
|
||||
|
||||
# Verify hashes exist (normalization should have occurred)
|
||||
assert hashed.hashed_email is not None
|
||||
@@ -244,13 +248,17 @@ async def test_hash_existing_customers_normalizes_country_code(
|
||||
|
||||
# Verify no hashed version exists yet
|
||||
result = await async_session.execute(
|
||||
select(HashedCustomer).where(HashedCustomer.customer_id == customer.id)
|
||||
select(Customer).where(Customer.id == customer.id)
|
||||
)
|
||||
hashed = result.scalar_one_or_none()
|
||||
assert hashed is None
|
||||
assert hashed is not None, "Customer should exist."
|
||||
|
||||
assert hashed.hashed_given_name is None, "Hashed given name should be None."
|
||||
assert hashed.hashed_email is None, "Hashed email should be None."
|
||||
assert hashed.hashed_country_code is None, "Hashed country code should be None."
|
||||
|
||||
# Verify the customer has the invalid country code stored in the DB
|
||||
assert customer.country_code == "Italy"
|
||||
assert hashed.country_code == "Italy"
|
||||
|
||||
# Run hash_existing_customers - this should normalize "Italy" to "IT"
|
||||
# during validation and successfully create a hashed customer
|
||||
@@ -263,7 +271,7 @@ async def test_hash_existing_customers_normalizes_country_code(
|
||||
# Verify hashed version was created
|
||||
await async_session.refresh(customer)
|
||||
result = await async_session.execute(
|
||||
select(HashedCustomer).where(HashedCustomer.customer_id == customer.id)
|
||||
select(Customer).where(Customer.id == customer.id)
|
||||
)
|
||||
hashed = result.scalar_one_or_none()
|
||||
assert hashed is not None
|
||||
@@ -302,7 +310,7 @@ async def test_hash_existing_customers_normalizes_country_code(
|
||||
|
||||
# Verify hashed version was created with correct hash
|
||||
result = await async_session.execute(
|
||||
select(HashedCustomer).where(HashedCustomer.customer_id == customer2.id)
|
||||
select(Customer).where(Customer.id == customer2.id)
|
||||
)
|
||||
hashed = result.scalar_one_or_none()
|
||||
assert hashed is not None
|
||||
|
||||
Reference in New Issue
Block a user