예제 #1
0
def test_finding_closest_match_by_method():
    post = r.Rule("/post/", endpoint="foobar", methods=["POST"])
    get = r.Rule("/get/", endpoint="foobar", methods=["GET"])
    put = r.Rule("/put/", endpoint="foobar", methods=["PUT"])
    m = r.Map([post, get, put])
    adapter = m.bind("example.com")
    assert r.BuildError("invalid", {}, "POST", adapter).suggested == post
    assert r.BuildError("invalid", {}, "GET", adapter).suggested == get
    assert r.BuildError("invalid", {}, "PUT", adapter).suggested == put
예제 #2
0
def test_finding_closest_match_by_method():
    post = r.Rule(u'/post/', endpoint='foobar', methods=['POST'])
    get = r.Rule(u'/get/', endpoint='foobar', methods=['GET'])
    put = r.Rule(u'/put/', endpoint='foobar', methods=['PUT'])
    m = r.Map([post, get, put])
    adapter = m.bind('example.com')
    assert r.BuildError('invalid', {}, 'POST', adapter).suggested == post
    assert r.BuildError('invalid', {}, 'GET', adapter).suggested == get
    assert r.BuildError('invalid', {}, 'PUT', adapter).suggested == put
예제 #3
0
def test_finding_closest_match_by_values():
    rule_id = r.Rule("/user/id/<id>/", endpoint="users")
    rule_slug = r.Rule("/user/<slug>/", endpoint="users")
    rule_random = r.Rule("/user/emails/<email>/", endpoint="users")
    m = r.Map([rule_id, rule_slug, rule_random])
    adapter = m.bind("example.com")
    assert r.BuildError("x", {"slug": ""}, None, adapter).suggested == rule_slug
예제 #4
0
def test_finding_closest_match_by_values():
    rule_id = r.Rule(u'/user/id/<id>/', endpoint='users')
    rule_slug = r.Rule(u'/user/<slug>/', endpoint='users')
    rule_random = r.Rule(u'/user/emails/<email>/', endpoint='users')
    m = r.Map([rule_id, rule_slug, rule_random])
    adapter = m.bind('example.com')
    assert r.BuildError('x', {'slug': ''}, None, adapter).suggested == \
        rule_slug
예제 #5
0
def test_finding_closest_match_by_endpoint():
    m = r.Map([
        r.Rule("/foo/", endpoint="users.here"),
        r.Rule("/wat/", endpoint="admin.users"),
        r.Rule("/woop", endpoint="foo.users"),
    ])
    adapter = m.bind("example.com")
    assert (r.BuildError("admin.user", None, None,
                         adapter).suggested.endpoint == "admin.users")
예제 #6
0
def test_finding_closest_match_by_endpoint():
    m = r.Map([
        r.Rule(u'/foo/', endpoint='users.here'),
        r.Rule(u'/wat/', endpoint='admin.users'),
        r.Rule(u'/woop', endpoint='foo.users'),
    ])
    adapter = m.bind('example.com')
    assert r.BuildError('admin.user', None, None, adapter).suggested.endpoint \
        == 'admin.users'
예제 #7
0
def test_finding_closest_match_when_none_exist():
    m = r.Map([])
    assert not r.BuildError("invalid", {}, None, m.bind("test.com")).suggested