Example #1
0
def test_validate_filter_success():
    """All of the columns in the condition are available and not blacklisted"""
    condition = ((ComplexModel.date >= "now") &
                 (ComplexModel.email.contains("@")) &
                 ((ComplexModel.joined.is_(None)) |
                  (ComplexModel.name.in_(["foo", "bar"]))))
    validate_filter_condition(condition, ComplexModel.Meta.columns, set())
Example #2
0
def test_validate_filter_not_available():
    """The condition uses a column that's not available"""
    with pytest.raises(InvalidSearch):
        validate_filter_condition(ComplexModel.date == "now", set(), set())
Example #3
0
def test_validate_filter_blacklisted():
    """The condition uses a column that's on the blacklist"""
    with pytest.raises(InvalidSearch):
        validate_filter_condition(ComplexModel.date == "now",
                                  ComplexModel.Meta.columns,
                                  {ComplexModel.date})
Example #4
0
def test_validate_no_filter():
    """Filter can be None"""
    validate_filter_condition(None, ComplexModel.Meta.columns, set())