Exemple #1
0
def test_cmp_funcs():
    range_validator = validate.Range(0, 10)
    daterange_validator = validate.DateRange(
        "2019-01-01", "2019-01-05", step={"days": 2}
    )
    choice_validator = validate.OneOf(choices=["one", "two"])

    cases = [
        ("one", "two", fields.Str(validate=[choice_validator])),
        (
            datetime.date(2019, 1, 2),
            datetime.date(2019, 1, 3),
            fields.Date(validate=[daterange_validator]),
        ),
        (2, 5, fields.Integer(validate=[range_validator])),
    ]

    for (min_, max_, field) in cases:
        cmp_funcs = field.cmp_funcs()
        assert cmp_funcs["gt"](min_, max_) is False
        assert cmp_funcs["lt"](min_, max_) is True
        assert cmp_funcs["eq"](min_, max_) is False
        assert cmp_funcs["eq"](max_, max_) is True
        assert cmp_funcs["lte"](max_, max_) is True
        assert cmp_funcs["lte"](min_, max_) is True
        assert cmp_funcs["gte"](max_, min_) is True
Exemple #2
0
def test_contrib_fields():
    range_validator = validate.Range(0, 10)
    daterange_validator = validate.DateRange("2019-01-01",
                                             "2019-01-05",
                                             step={"days": 2})
    choice_validator = validate.OneOf(choices=["one", "two"])

    s = fields.Str(validate=[choice_validator])
    assert s.mesh() == ["one", "two"]
    s = fields.Str()
    assert s.mesh() == []

    s = fields.Integer(validate=[range_validator])
    assert s.mesh() == [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    s = fields.Str()
    assert s.mesh() == []

    # date will need an interval argument.
    s = fields.Date(validate=[daterange_validator])
    assert s.mesh() == [datetime.date(2019, 1, i) for i in range(1, 6, 2)]
Exemple #3
0
# A few fields that have not been instantiated yet
CLASS_FIELD_MAP = {
    "str": contrib_fields.Str,
    "int": contrib_fields.Integer,
    "float": contrib_fields.Float,
    "bool": contrib_fields.Boolean,
    "date": contrib_fields.Date,
}

INVALID_NUMBER = {"invalid": "Not a valid number: {input}."}
INVALID_BOOLEAN = {"invalid": "Not a valid boolean: {input}."}
INVALID_DATE = {"invalid": "Not a valid date: {input}."}

# A few fields that have been instantiated
FIELD_MAP = {
    "str": contrib_fields.Str(allow_none=True),
    "int": contrib_fields.Integer(allow_none=True,
                                  error_messages=INVALID_NUMBER),
    "float": contrib_fields.Float(allow_none=True,
                                  error_messages=INVALID_NUMBER),
    "bool": contrib_fields.Boolean(allow_none=True,
                                   error_messages=INVALID_BOOLEAN),
    "date": contrib_fields.Date(allow_none=True, error_messages=INVALID_DATE),
}

VALIDATOR_MAP = {
    "range": contrib_validate.Range,
    "date_range": contrib_validate.DateRange,
    "choice": contrib_validate.OneOf,
}