def test_build_external() -> None: map_ = Map() map_.add(Rule("/ws/", {"GET"}, "websocket", is_websocket=True)) map_.add(Rule("/", {"GET"}, "index")) adapter = map_.bind(True, "localhost") adapter.build("websocket") == "wss://localhost/ws/" adapter.build("index") == "https://localhost/"
def test_build_external() -> None: map_ = Map() map_.add(Rule('/ws/', {'GET'}, 'websocket', is_websocket=True)) map_.add(Rule('/', {'GET'}, 'index')) adapter = map_.bind(True, 'localhost') adapter.build("websocket") == "wss://localhost/ws/" adapter.build("index") == "https://localhost/"
def test_value_building() -> None: map_ = Map() map_.add(Rule('/book/<page>', {'GET'}, 'book')) adapter = map_.bind('http', '') assert adapter.build('book', values={'page': 1}) == '/book/1' assert adapter.build('book', values={ 'page': 1, 'line': 12 }) == '/book/1?line=12'
def test_defaults() -> None: map_ = Map() map_.add(Rule('/book/', ['GET'], 'book', defaults={'page': 1})) map_.add(Rule('/book/<int:page>/', ['GET'], 'book')) _test_match(map_, '/book/', 'GET', (map_.endpoints['book'][0], {'page': 1})) _test_match_redirect(map_, '/book/1/', 'GET', '/book/') _test_match(map_, '/book/2/', 'GET', (map_.endpoints['book'][1], {'page': 2})) adapter = map_.bind('http', '') assert adapter.build('book', method='GET') == '/book/' assert adapter.build('book', method='GET', values={'page': 1}) == '/book/' assert adapter.build('book', method='GET', values={'page': 2}) == '/book/2/'
def test_build_error(basic_map: Map) -> None: basic_map.add(Rule('/values/<int:x>/', {'GET'}, 'values')) adapter = basic_map.bind('http', '') with pytest.raises(BuildError) as error: adapter.build('bob') assert 'No endpoint found' in str(error) with pytest.raises(BuildError) as error: adapter.build('values', values={'y': 2}) assert 'do not match' in str(error) with pytest.raises(BuildError) as error: adapter.build('values', method='POST') assert 'not one of' in str(error)
def test_build_error(basic_map: Map) -> None: basic_map.add(Rule("/values/<int:x>/", {"GET"}, "values")) adapter = basic_map.bind(False, "") with pytest.raises(BuildError) as error: adapter.build("bob") assert "No endpoint found" in str(error.value) with pytest.raises(BuildError) as error: adapter.build("values", values={"y": 2}) assert "do not match" in str(error.value) with pytest.raises(BuildError) as error: adapter.build("values", method="POST") assert "not one of" in str(error.value)
def test_value_building() -> None: map_ = Map() map_.add(Rule("/book/<page>", {"GET"}, "book")) adapter = map_.bind(False, "") assert adapter.build("book", values={"page": 1}) == "/book/1" assert adapter.build("book", values={ "page": 1, "line": 12 }) == "/book/1?line=12" assert adapter.build("book", values={ "page": 1, "line": [1, 2] }) == "/book/1?line=1&line=2"
def test_defaults() -> None: map_ = Map() map_.add(Rule("/book/", {"GET"}, "book", defaults={"page": 1})) map_.add(Rule("/book/<int:page>/", {"GET"}, "book")) _test_match(map_, "/book/", "GET", (map_.endpoints["book"][0], { "page": 1 })) _test_match_redirect(map_, "/book/1/", "GET", "/book/") _test_match(map_, "/book/2/", "GET", (map_.endpoints["book"][1], { "page": 2 })) adapter = map_.bind(False, "") assert adapter.build("book", method="GET") == "/book/" assert adapter.build("book", method="GET", values={"page": 1}) == "/book/" assert adapter.build("book", method="GET", values={"page": 2}) == "/book/2/"
def test_basic_building(basic_map: Map) -> None: adapter = basic_map.bind('http', '') assert adapter.build('index', method='POST') == '/' assert adapter.build('delete_index', method='DELETE') == '/' assert adapter.build('leaf') == '/leaf' assert adapter.build('branch') == '/branch/'
def test_basic_building(basic_map: Map) -> None: adapter = basic_map.bind(False, "") assert adapter.build("index", method="POST") == "/" assert adapter.build("delete_index", method="DELETE") == "/" assert adapter.build("leaf") == "/leaf" assert adapter.build("branch") == "/branch/"