"""Test InternalUserEmailSchema.""" import pytest from users.validation.schemas import internal_user_email @pytest.mark.parametrize( ('payload', 'expected_errors'), [ pytest.param( {'email': 'test@theorchard.com'}, {}, id='valid email with allowed domain', ), pytest.param( {}, {'email': ['Missing data for required field.']}, id='missing email', ), pytest.param( {'email': 'invalid-email'}, {'email': ['Not a valid email address.']}, id='invalid email format', ), pytest.param( {'email': 'test@invaliddomain.com'}, {'_schema': ['Email domain invaliddomain.com is not valid for employee identities.']}, id='invalid email domain', ), ], ) def test_validate_internal_user_email_schema(payload, expected_errors): """Test validate InternalUserEmailSchema.""" schema = internal_user_email.InternalUserEmailSchema() errors = schema.validate(payload) assert errors == expected_errors def test_email_normalization(): """Test that email is normalized during load.""" schema = internal_user_email.InternalUserEmailSchema() result = schema.load({'email': ' TEST@THEORCHARD.COM '}) assert result['email'] == 'test@theorchard.com'