Пример #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
Пример #2
0
def test_should_return_error_when_information_is_mandatory():
    # Given
    offerer = create_offerer()
    venue = create_venue(offerer)
    offer = create_offer_with_thing_product(venue, thing_name=None)

    # When
    api_error = validate_generic(offer)

    # Then
    assert api_error.errors == {"name": ["Cette information est obligatoire"]}
Пример #3
0
def test_should_return_error_when_information_requires_an_integer_type():
    # Given
    offerer = create_offerer()
    venue = create_venue(offerer)
    offer = create_offer_with_event_product(venue, duration_minutes="1")

    # When
    api_error = validate_generic(offer)

    # Then
    assert api_error.errors == {"durationMinutes": ["doit être un entier"]}
Пример #4
0
def test_should_return_error_when_information_requires_a_string_type():
    # Given
    offerer = create_offerer()
    venue = create_venue(offerer)
    offer = create_offer_with_thing_product(venue, thing_name=1234)

    # When
    api_error = validate_generic(offer)

    # Then
    assert api_error.errors == {"name": ["doit être une chaîne de caractères"]}
Пример #5
0
def test_should_return_error_when_information_exceeds_column_size():
    # Given
    offerer = create_offerer()
    venue = create_venue(offerer)
    offer = create_offer_with_thing_product(
        venue,
        thing_name="qBWnUS4JTt5qPNkOv02oaBu3H7GfMY2H9vgocxsYNJrfvHuQaaRJn"
        "2AI9V93Wds1nJS8NqBhJVNYzaNrgS1eldyn4HsIiUU3UqmPwPGHAcQ"
        "e451TBYUO0xYiyQzTMOKxcYMJsd9FBbygb",
    )

    # When
    api_error = validate_generic(offer)

    # Then
    assert api_error.errors == {
        "name": ["Vous devez saisir moins de 140 caractères"]
    }