"""Tests for address schema.""" from payee.schemas.address import AddressSchema, PayoneerWhitelabelAddressSchema from tests.utils.factories import ( AddressFactory, ) def test_address_schema(): """Test address schema.""" address = AddressFactory.build() result = AddressSchema().load(address) assert result == address def test_address_schema_empty_address_line2(): """Test address schema when address line is empty.""" address = AddressFactory.build() address['address_2'] = '' result = AddressSchema().load(address) assert result == address def test_address_schema_none_address_line2(): """Test address schema when address line is None.""" address = AddressFactory.build() address['address_2'] = None result = AddressSchema().load(address) assert result == address def test_address_schema_non_latin(): """Test address schema with non latin symbols.""" address = AddressFactory.build() address['city'] = 'CityÓÔÕÖÚÜÆØÅ' address['address_1'] = '123 Main StÀÂÃÄǰ":&' address['address_2'] = '123 Main St 2áàâãäçéê°":&' result = AddressSchema().load(address) assert result == address def test_zip_schema_non_latin(): """Test address schema with extra symbols in zip.""" address = AddressFactory.build() address['zip'] = '12345-123' result = AddressSchema().load(address) assert result == address def test_whitelabel_address_schema_city_success(): """Test whitelabel address schema allows special characters.""" address = AddressFactory.build() address['city'] = 'city, cityfield (α)' failure_result = AddressSchema().validate(address) assert failure_result == {'city': ['String does not match expected pattern.']} result = PayoneerWhitelabelAddressSchema().validate(address) assert result == {} def test_whitelabel_address_schema_city_failure(): """Test whitelabel address schema does not allow numbers.""" address = AddressFactory.build() address['city'] = 'city, cityfield (12)' result = PayoneerWhitelabelAddressSchema().validate(address) assert result == {'city': ['String does not match expected pattern.']}