Beispiel #1
0
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."
        ]
Beispiel #10
0
    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 == {}
Beispiel #12
0
    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."
        ]
Beispiel #14
0
    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"
        ]