Esempio n. 1
0
def test_from_kwargs_split():
    assert From(module=1,
                depth=2, depth_lt=3) == From(Query(module=1),
                                             Query(depth=2, depth_lt=3))
    assert repr(From(module=1, depth=2, depth_lt=3)).replace(
        '<hunter._', '<hunter.'
    ) == (
        "<hunter.predicates.From: condition=<hunter.predicates.Query: query_eq=(('module', 1),)>, "
        "predicate=<hunter.predicates.Query: query_eq=(('depth', 2),) query_lt=(('depth', 3),)>, watermark=0>"
    )
Esempio n. 2
0
def test_and_or_kwargs():
    assert And(module=1, function=2) == Query(module=1, function=2)
    assert Or(module=1, function=2) == Or(Query(module=1), Query(function=2))

    assert And(3, module=1, function=2) == And(3, Query(module=1, function=2))
    assert Or(3, module=1, function=2) == Or(3, Query(module=1),
                                             Query(function=2))
Esempio n. 3
0
def test_backlog_filter():
    class MyAction(ColorStreamAction):
        def __eq__(self, other):
            return True

    assert Backlog(Q(), action=MyAction).filter(function=1) == _Backlog(
        condition=Q(), filter=Query(function=1), action=MyAction)
    assert Backlog(Q(), action=MyAction,
                   filter=Q(module=1)).filter(function=2) == _Backlog(
                       condition=Q(),
                       filter=And(Query(module=1), Query(function=2)),
                       action=MyAction)

    def blabla():
        pass

    assert Backlog(Q(), action=MyAction,
                   filter=blabla).filter(function=1) == _Backlog(
                       condition=Q(),
                       filter=And(blabla, Query(function=1)),
                       action=MyAction)
    assert Backlog(Q(), action=MyAction, filter=Q(module=1)).filter(
        blabla, function=2) == _Backlog(condition=Q(),
                                        filter=And(Query(module=1), blabla,
                                                   Query(function=2)),
                                        action=MyAction)
Esempio n. 4
0
def test_not(mockevent):
    assert Not(1).predicate == 1
    assert ~Or(1, 2) == Not(Or(1, 2))
    assert ~And(1, 2) == Not(And(1, 2))

    assert ~Not(1) == 1

    assert ~Query(module=1) | ~Query(module=2) == Not(
        And(Query(module=1), Query(module=2)))
    assert ~Query(module=1) & ~Query(module=2) == Not(
        Or(Query(module=1), Query(module=2)))

    assert ~Query(module=1) | Query(module=2) == Or(Not(Query(module=1)),
                                                    Query(module=2))
    assert ~Query(module=1) & Query(module=2) == And(Not(Query(module=1)),
                                                     Query(module=2))

    assert ~(Query(module=1) & Query(module=2)) == Not(
        And(Query(module=1), Query(module=2)))
    assert ~(Query(module=1) | Query(module=2)) == Not(
        Or(Query(module=1), Query(module=2)))

    assert repr(~Or(1, 2)) == repr(Not(Or(1, 2)))
    assert repr(~And(1, 2)) == repr(Not(And(1, 2)))

    assert repr(~Query(module=1) | ~Query(module=2)) == repr(
        Not(And(Query(module=1), Query(module=2))))
    assert repr(~Query(module=1) & ~Query(module=2)) == repr(
        Not(Or(Query(module=1), Query(module=2))))

    assert repr(~(Query(module=1) & Query(module=2))) == repr(
        Not(And(Query(module=1), Query(module=2))))
    assert repr(~(Query(module=1) | Query(module=2))) == repr(
        Not(Or(Query(module=1), Query(module=2))))

    assert Not(Q(module=__name__))(mockevent) is False
Esempio n. 5
0
def test_and_or_kwargs():
    assert And(1, function=2) == And(1, Query(function=2))
    assert Or(1, function=2) == Or(1, Query(function=2))
Esempio n. 6
0
def test_matching(expr, mockevent, expected):
    assert Query(**expr)(mockevent) == expected
Esempio n. 7
0
def test_predicate_matching(expr, inp, expected):
    assert Query(**expr)(inp) == expected
Esempio n. 8
0
def test_predicate_not():
    assert Not(1).predicate == 1
    assert ~Or(1, 2) == Not(Or(1, 2))
    assert ~And(1, 2) == Not(And(1, 2))

    assert ~Not(1) == 1

    assert ~Query(module=1) | ~Query(module=2) == Not(
        And(Query(module=1), Query(module=2)))
    assert ~Query(module=1) & ~Query(module=2) == Not(
        Or(Query(module=1), Query(module=2)))

    assert ~Query(module=1) | Query(module=2) == Or(Not(Query(module=1)),
                                                    Query(module=2))
    assert ~Query(module=1) & Query(module=2) == And(Not(Query(module=1)),
                                                     Query(module=2))

    assert ~(Query(module=1) & Query(module=2)) == Not(
        And(Query(module=1), Query(module=2)))
    assert ~(Query(module=1) | Query(module=2)) == Not(
        Or(Query(module=1), Query(module=2)))

    assert repr(~Or(1, 2)) == repr(Not(Or(1, 2)))
    assert repr(~And(1, 2)) == repr(Not(And(1, 2)))

    assert repr(~Query(module=1) | ~Query(module=2)) == repr(
        Not(And(Query(module=1), Query(module=2))))
    assert repr(~Query(module=1) & ~Query(module=2)) == repr(
        Not(Or(Query(module=1), Query(module=2))))

    assert repr(~(Query(module=1) & Query(module=2))) == repr(
        Not(And(Query(module=1), Query(module=2))))
    assert repr(~(Query(module=1) | Query(module=2))) == repr(
        Not(Or(Query(module=1), Query(module=2))))

    assert Not(Q(module=1))({'module': 1}) == False