async def test_dynamic_sort(): r = TreeUrlDispatcher() r.add_get('/a/{b}-{c}', handler) route = r.add_get('/a/{b}-{c}.jpg', handler) req = make_request('GET', '/a/2-3.jpg') mi = await r.resolve(req) assert mi.route is route
async def test_init(): r = TreeUrlDispatcher() r.add_get('/', 'tests.conftest.ViewWithInit.get') req = make_request('GET', '/') mi = await r.resolve(req) result = await mi.handler(req) assert result is req, result
async def test_branch_path(): r = TreeUrlDispatcher() h = 'tests.conftest.ViewWithInit.get' r.add_get('/net/ip/', h) route = r.add_get('/net/{ip}/host', h) req = make_request('GET', '/net/ip/host') mi = await r.resolve(req) assert mi.route is route
async def test_default_options(test_client): headers = {hdrs.ACCESS_CONTROL_REQUEST_HEADERS: hdrs.AUTHORIZATION} request = make_request('OPTIONS', '/', headers=headers) router = TreeUrlDispatcher() mi = await router.resolve(request) assert isinstance(mi, MatchInfoError) app = web.Application(router=router) router.set_cors(app) router.add_get('/', lambda request: web.Response()) mi = await router.resolve(request) assert not isinstance(mi, MatchInfoError) client = await test_client(app) response = await client.options('/', headers=headers) assert response.status == 200 h = response.headers assert h[hdrs.ACCESS_CONTROL_ALLOW_ORIGIN] == '*' assert h[hdrs.ACCESS_CONTROL_ALLOW_METHODS] == 'GET' assert h[hdrs.ACCESS_CONTROL_ALLOW_HEADERS] == hdrs.AUTHORIZATION
def test_novalid_path(): r = TreeUrlDispatcher() with pytest.raises(ValueError): r.add_resource('dfsdf') with pytest.raises(ValueError): r.add_get('dfsdf', None)
def test_similar_patterns(): dispatcher = TreeUrlDispatcher() dispatcher.add_get('/{a}', handler) with pytest.raises(ValueError): dispatcher.add_get('/{b}', handler)
def test_novalid_path(): r = TreeUrlDispatcher() with pytest.raises(ValueError): r.add_resource('dfsdf') with pytest.raises(ValueError): r.add_get('dfsdf', None)
def test_similar_patterns(): dispatcher = TreeUrlDispatcher() dispatcher.add_get('/{a}', handler) with pytest.raises(ValueError): dispatcher.add_get('/{b}', handler)