예제 #1
0
def test_predicate_registry_missing_key():
    m = PredicateRegistry([KeyPredicate('name'),
                           KeyPredicate('request_method')])
    m.register(dict(name='foo', request_method='POST'), 'registered for post')

    with py.test.raises(PredicateRegistryError):
        m.get(dict(name='foo'))
예제 #2
0
def test_predicate_registry():
    m = PredicateRegistry([Predicate("name", KeyIndex), Predicate("request_method", KeyIndex)])
    m.register(dict(name="foo"), "registered for all")
    m.register(dict(name="foo", request_method="POST"), "registered for post")

    assert m.get(dict(name="foo", request_method="GET")) == "registered for all"
    assert m.get(dict(name="foo", request_method="POST")) == "registered for post"
    assert m.get(dict(name="bar", request_method="GET"), default="default") == "default"
예제 #3
0
def test_predicate_registry():
    m = PredicateRegistry(
        [Predicate('name', KeyIndex),
         Predicate('request_method', KeyIndex)])
    m.register(dict(name='foo'), 'registered for all')
    m.register(dict(name='foo', request_method='POST'), 'registered for post')

    assert (m.get(dict(name='foo',
                       request_method='GET')) == 'registered for all')
    assert (m.get(dict(name='foo',
                       request_method='POST')) == 'registered for post')
    assert (m.get(dict(name='bar', request_method='GET'),
                  default='default') == 'default')
예제 #4
0
def test_duplicate_entry():
    m = PredicateRegistry(
        [Predicate('name', KeyIndex),
         Predicate('request_method', KeyIndex)])

    m.register(dict(name='foo'), 'registered for all')
    m.register(dict(name='foo'), 'registered for all again')

    with pytest.raises(PredicateRegistryError):
        m.get(dict(name='foo', request_method='GET'))
예제 #5
0
def test_duplicate_entry():
    m = PredicateRegistry([Predicate("name", KeyIndex), Predicate("request_method", KeyIndex)])

    m.register(dict(name="foo"), "registered for all")
    m.register(dict(name="foo"), "registered for all again")

    with pytest.raises(PredicateRegistryError):
        m.get(dict(name="foo", request_method="GET"))
예제 #6
0
def test_predicate_registry():
    m = PredicateRegistry([KeyPredicate('name'),
                           KeyPredicate('request_method')])
    m.register(dict(name='foo'), 'registered for all')
    m.register(dict(name='foo', request_method='POST'), 'registered for post')

    assert (m.get(dict(name='foo', request_method='GET')) ==
            'registered for all')
    assert (m.get(dict(name='foo', request_method='POST')) ==
            'registered for post')
    assert (m.get(dict(name='bar', request_method='GET'), default='default') ==
            'default')
예제 #7
0
def test_duplicate_entry():
    m = PredicateRegistry([KeyPredicate('name'),
                           KeyPredicate('request_method')])

    m.register(dict(name='foo'), 'registered for all')
    m.register(dict(name='foo'), 'registered for all again')

    with py.test.raises(PredicateRegistryError):
        m.get(dict(name='foo', request_method='GET'))
예제 #8
0
def test_predicate_registry_missing_key():
    m = PredicateRegistry(
        [Predicate('name', KeyIndex),
         Predicate('request_method', KeyIndex)])
    m.register(dict(name='foo', request_method='POST'), 'registered for post')

    with pytest.raises(KeyError):
        m.get(dict(name='foo'))
예제 #9
0
def test_break_early():
    m = PredicateRegistry([Predicate("a", KeyIndex), Predicate("b", KeyIndex)])
    m.register(dict(b="B"), "b=B")
    assert m.get(dict(a=ANY, b="C")) is None
예제 #10
0
def test_involved_entry():
    m = PredicateRegistry(
        [Predicate("a", KeyIndex), Predicate("b", KeyIndex), Predicate("c", KeyIndex), Predicate("d", KeyIndex)]
    )
    m.register(dict(a="A"), "a=A")
    m.register(dict(a="A", b="B"), "a=A b=B")
    m.register(dict(a="A", c="C"), "a=A c=C")
    m.register(dict(a="A", b="B", c="C"), "a=A b=B c=C")
    m.register(dict(a="A+", b="B"), "a=A+ b=B")
    m.register(dict(b="B"), "b=B")
    m.register(dict(a="A+", c="C"), "a=A+ c=C")
    m.register(dict(b="B", d="D"), "b=B d=D")

    assert m.get(dict(a="A", b="B", c="C", d=ANY)) == "a=A b=B c=C"

    assert m.get(dict(a="BOO", b=ANY, c=ANY, d=ANY)) is None
    assert m.get(dict(a="A", b="SOMETHING", c=ANY, d=ANY)) == "a=A"
    assert m.get(dict(a="A", b="SOMETHING", c="C", d=ANY)) == "a=A c=C"
    assert m.get(dict(a=ANY, b="B", c=ANY, d=ANY)) == "b=B"
    assert m.get(dict(a="SOMETHING", b="B", c=ANY, d="D")) == "b=B d=D"
예제 #11
0
def test_predicate_registry_missing_key():
    m = PredicateRegistry([Predicate("name", KeyIndex), Predicate("request_method", KeyIndex)])
    m.register(dict(name="foo", request_method="POST"), "registered for post")

    with pytest.raises(KeyError):
        m.get(dict(name="foo"))
예제 #12
0
def test_break_early():
    m = PredicateRegistry([KeyPredicate('a'), KeyPredicate('b')])
    m.register(dict(b='B'), 'b=B')
    assert m.get(dict(a=ANY, b='C')) is None
예제 #13
0
def test_involved_entry():
    m = PredicateRegistry([KeyPredicate('a'),
                           KeyPredicate('b'),
                           KeyPredicate('c'),
                           KeyPredicate('d')])
    m.register(dict(a='A'), 'a=A')
    m.register(dict(a='A', b='B'), 'a=A b=B')
    m.register(dict(a='A', c='C'), 'a=A c=C')
    m.register(dict(a='A', b='B', c='C'), 'a=A b=B c=C')
    m.register(dict(a='A+', b='B'), 'a=A+ b=B')
    m.register(dict(b='B'), 'b=B')
    m.register(dict(a='A+', c='C'), 'a=A+ c=C')
    m.register(dict(b='B', d='D'), 'b=B d=D')

    assert m.get(dict(a='A', b='B', c='C', d=ANY)) == 'a=A b=B c=C'

    assert m.get(dict(a='BOO', b=ANY, c=ANY, d=ANY)) is None
    assert m.get(dict(a='A', b='SOMETHING', c=ANY, d=ANY)) == 'a=A'
    assert m.get(dict(a='A', b='SOMETHING', c='C', d=ANY)) == 'a=A c=C'
    assert m.get(dict(a=ANY, b='B', c=ANY, d=ANY)) == 'b=B'
    assert m.get(dict(a='SOMETHING', b='B', c=ANY, d='D')) == 'b=B d=D'
예제 #14
0
def test_break_early():
    m = PredicateRegistry([Predicate('a', KeyIndex), Predicate('b', KeyIndex)])
    m.register(dict(b='B'), 'b=B')
    assert m.get(dict(a=ANY, b='C')) is None
예제 #15
0
def test_involved_entry():
    m = PredicateRegistry([
        Predicate('a', KeyIndex),
        Predicate('b', KeyIndex),
        Predicate('c', KeyIndex),
        Predicate('d', KeyIndex)
    ])
    m.register(dict(a='A'), 'a=A')
    m.register(dict(a='A', b='B'), 'a=A b=B')
    m.register(dict(a='A', c='C'), 'a=A c=C')
    m.register(dict(a='A', b='B', c='C'), 'a=A b=B c=C')
    m.register(dict(a='A+', b='B'), 'a=A+ b=B')
    m.register(dict(b='B'), 'b=B')
    m.register(dict(a='A+', c='C'), 'a=A+ c=C')
    m.register(dict(b='B', d='D'), 'b=B d=D')

    assert m.get(dict(a='A', b='B', c='C', d=ANY)) == 'a=A b=B c=C'

    assert m.get(dict(a='BOO', b=ANY, c=ANY, d=ANY)) is None
    assert m.get(dict(a='A', b='SOMETHING', c=ANY, d=ANY)) == 'a=A'
    assert m.get(dict(a='A', b='SOMETHING', c='C', d=ANY)) == 'a=A c=C'
    assert m.get(dict(a=ANY, b='B', c=ANY, d=ANY)) == 'b=B'
    assert m.get(dict(a='SOMETHING', b='B', c=ANY, d='D')) == 'b=B d=D'