Esempio n. 1
0
def test_date_validation(fixture):
    """A DateField can validate its input based on a min or max value and expects fuzzy but sensible input."""

    field = DateField()
    obj = fixture.model_object

    field.bind('date_value', obj)

    # Case invalid
    with expected(DateConstraint):
        field.set_user_input('sdfdf')

    # Case valid
    with expected(NoException):
        field.set_user_input('13 Dec')

    limit_date = datetime.date(2012, 11, 13)
    before_limit = '12 Nov 2012'
    after_limit = '14 Nov 2012'

    # Case Max
    field = DateField(max_value=limit_date)
    with expected(MaxValueConstraint):
        field.set_user_input(after_limit)

    # Case Min
    field = DateField(min_value=limit_date)
    with expected(MinValueConstraint):
        field.set_user_input(before_limit)
Esempio n. 2
0
def test_date_marshalling(fixture):
    """A DateField marshalls human readable date representation to a datetime.date object.
       (It tolerates non-precise input.)
    """

    field = DateField()
    obj = fixture.model_object

    field.bind('date_value', obj)

    # From input
    for input_string in ['10 November 2012', '10/11/2012']:
        field.from_input(input_string)
        assert obj.date_value == datetime.date(2012, 11, 10)

        # As input
    obj.date_value = datetime.date(2010, 11, 10)
    actual_output = field.as_input()
    assert actual_output == '10 Nov 2010'