Beispiel #1
0
def test_default_values():
    r = Router()
    r.add('/<name>', endpoint='index', defaults={'foo': 1234, 'name':'bar'})
    assert r.match('/foo') == ('index', {'name': 'foo', 'foo': 1234})
Beispiel #2
0
def test_basic_routing():
    r = Router()
    r.add('/', endpoint='index')
    r.add('/foo', endpoint='foo')
    r.add('/bar/', endpoint='bar')
    assert r.match('/') == ('index', {})
    assert r.match('/foo') == ('foo', {})
    assert r.match('/bar/') == ('bar', {})
    pytest.raises(NotFound, lambda: r.match('/blub'))
    pytest.raises(MethodNotAllowed, lambda: r.match('/foo', method='POST'))
Beispiel #3
0
def test_dynamic_routing():
    r = Router()
    r.add('/<name>', endpoint='index')
    r.add('/foo/<string:name2>', endpoint='foo')
    r.add('/bar/<int:bar>', endpoint='bar')
    r.add('/float/<float:bar2>', endpoint='bar2')
    r.add('/path/<path:bar3>', endpoint='bar3')
    assert r.match('/foo') == ('index', {'name': 'foo'})
    assert r.match('/foo/bar') == ('foo', {'name2': 'bar'})
    assert r.match('/bar/20') == ('bar', {'bar': 20})
    assert r.match('/float/20.333') == ('bar2', {'bar2': 20.333})
    assert r.match('/path/foo/bar/xxx') == ('bar3', {'bar3': 'foo/bar/xxx'})