def validate(model: Model) -> ApiErrors: api_errors = validate_generic(model) if api_errors.errors: return api_errors if isinstance(model, HasAddressMixin): api_errors = has_address_mixin.validate(model, api_errors) if isinstance(model, BankInformation): api_errors = bank_information.validate(model, api_errors) elif isinstance(model, Offer): api_errors = offer.validate(model, api_errors) elif isinstance(model, Offerer): api_errors = offerer.validate(model, api_errors) elif isinstance(model, Product): api_errors = product.validate(model, api_errors) elif isinstance(model, Stock): api_errors = stock.validate(model, api_errors) elif isinstance(model, User): api_errors = user.validate(model, api_errors) elif isinstance(model, VenueSQLEntity): api_errors = venue.validate(model, api_errors) return api_errors
def test_should_return_error_message_when_email_does_not_contain_at_sign( self, app): # Given user = create_user(email="joel.example.com") api_errors = ApiErrors() # When api_error = validate(user, api_errors) # Then assert api_error.errors["email"] == ["L’e-mail doit contenir un @."]
def test_should_not_return_error_when_email_already_exist_in_database_but_id_is_provided( self, mocked_count_users_by_email, app): # Given user = create_user(idx=1) mocked_count_users_by_email.return_value = 1 api_errors = ApiErrors() # When api_error = validate(user, api_errors) # Then assert api_error.errors == {}
def test_should_not_return_error_message_when_user_password_is_correct( self, mocked_count_users_by_email, app): # Given user = create_user(password="******") mocked_count_users_by_email.return_value = 0 api_errors = ApiErrors() # When api_error = validate(user, api_errors) # Then assert api_error.errors == {}
def test_should_not_return_error_message_when_user_email_is_correct( self, mocked_count_users_by_email, app): # Given user = create_user(email="*****@*****.**") mocked_count_users_by_email.return_value = 0 api_errors = ApiErrors() # When api_error = validate(user, api_errors) # Then assert api_error.errors == {}
def test_should_not_return_error_message_when_user_public_name_is_correct( self, mocked_count_users_by_email, app): # Given user = users_factories.UserFactory.build(publicName="Jo") mocked_count_users_by_email.return_value = 0 api_errors = ApiErrors() # When api_error = validate(user, api_errors) # Then assert api_error.errors == {}
def test_should_return_error_message_when_user_public_name_is_empty( self, app): # Given user = create_user(public_name="") api_errors = ApiErrors() # When api_error = validate(user, api_errors) # Then assert api_error.errors["publicName"] == [ "Tu dois saisir au moins 3 caractères." ]
def test_should_not_return_error_when_user_count_raise_error_and_id_is_provided( self, mocked_count_users_by_email, app): # Given user = create_user(idx=1) mocked_count_users_by_email.return_value = IntegrityError( "mock", "mock", "mock") api_errors = ApiErrors() # When api_error = validate(user, api_errors) # Then assert api_error.errors == {}
def test_should_return_error_message_when_user_password_is_less_than_8_characters( self, app): # Given user = create_user(password="******") api_errors = ApiErrors() # When api_error = validate(user, api_errors) # Then assert api_error.errors["password"] == [ "Tu dois saisir au moins 8 caractères." ]
def test_should_return_error_message_when_admin_user_is_beneficiary( self, app): # Given user = create_user(is_admin=True, is_beneficiary=True) api_errors = ApiErrors() # When api_error = validate(user, api_errors) # Then assert api_error.errors["isBeneficiary"] == [ "Admin ne peut pas être bénéficiaire" ]
def test_should_not_return_error_message_when_user_password_is_correct( self, mocked_count_users_by_email, app): # Given user = users_factories.UserFactory.build() user.setPassword("JoelDupont") mocked_count_users_by_email.return_value = 0 api_errors = ApiErrors() # When api_error = validate(user, api_errors) # Then assert api_error.errors == {}
def test_should_return_error_when_email_already_exist_in_database_but_no_id_is_provided( self, mocked_count_users_by_email, app): # Given user = create_user(idx=None) mocked_count_users_by_email.return_value = 1 api_errors = ApiErrors() # When api_error = validate(user, api_errors) # Then assert api_error.errors["email"] == [ "Un compte lié à cet e-mail existe déjà" ]
def test_should_return_error_message_when_user_password_is_less_than_8_characters( self, app): # Given user = users_factories.UserFactory.build() user.setPassword("Jo") api_errors = ApiErrors() # When api_error = validate(user, api_errors) # Then assert api_error.errors["password"] == [ "Tu dois saisir au moins 8 caractères." ]
def test_should_return_error_when_user_count_raise_error_and_no_id_is_provided( self, mocked_count_users_by_email, app): # Given user = create_user(idx=None) mocked_count_users_by_email.side_effect = IntegrityError( "Mock", "mock", "mock") api_errors = ApiErrors() # When api_error = validate(user, api_errors) # Then assert api_error.errors["email"] == [ "Un compte lié à cet e-mail existe déjà" ]
def test_should_return_error_message_when_admin_user_is_beneficiary( self, app): # Given user = users_factories.UserFactory( isAdmin=True, roles=[user_models.UserRole.BENEFICIARY], ) api_errors = ApiErrors() # When api_error = validate(user, api_errors) # Then assert api_error.errors["is_beneficiary"] == [ "Admin ne peut pas être bénéficiaire" ]