Пример #1
0
def test_routelist__replaces_same_pattern_diff_name():
    routes = RouteList()

    foobar1 = Route(method="GET")
    routes.add(foobar1, name="name")
    assert list(routes) == [foobar1]

    foobar2 = Route(method="GET")
    routes.add(foobar2, name="foobar")
    assert list(routes) == [foobar2]
    assert routes[0] is foobar1
Пример #2
0
def test_routelist__replaces_same_name_other_pattern_other_name():
    routes = RouteList()

    foobar1 = Route(method="GET")
    hamspam = Route(method="POST")

    routes.add(foobar1, name="foobar")
    routes.add(hamspam, name="hamspam")
    assert list(routes) == [foobar1, hamspam]

    foobar2 = Route(method="POST")
    routes.add(foobar2, name="foobar")
    assert list(routes) == [foobar2]
    assert routes["foobar"] is foobar1
Пример #3
0
def test_routelist__add():
    routes = RouteList()

    foobar = Route(method="PUT")
    routes.add(foobar, name="foobar")
    assert routes
    assert list(routes) == [foobar]
    assert routes["foobar"] == foobar
    assert routes["foobar"] is routes[0]

    hamspam = Route(method="POST")
    routes.add(hamspam, name="hamspam")
    assert list(routes) == [foobar, hamspam]
    assert routes["hamspam"] == hamspam
Пример #4
0
def test_routelist__pop():
    routes = RouteList()

    foobar = Route(method="GET")
    hamspam = Route(method="POST")
    routes.add(foobar, name="foobar")
    routes.add(hamspam, name="hamspam")
    assert list(routes) == [foobar, hamspam]

    _foobar = routes.pop("foobar")
    assert _foobar == foobar
    assert list(routes) == [hamspam]

    default = Route()
    route = routes.pop("egg", default)
    assert route is default
    assert list(routes) == [hamspam]

    with pytest.raises(KeyError):
        routes.pop("egg")
Пример #5
0
def test_route_hash():
    route = Route()
    assert not route.is_pass_through
    assert hash(route) == id(route)

    callback = lambda req, res: req  # pragma: nocover
    route.side_effect(callback)
    assert not route.is_pass_through
    assert route.has_side_effect
    assert hash(route) == hash(callback)

    route.pass_through()
    assert route.is_pass_through
    assert not route.has_side_effect
    assert hash(route) == 1

    route.pass_through(False)
    assert not route.is_pass_through
    assert hash(route) == 0

    route.pass_through(None)
    assert not route.is_pass_through
    assert hash(route) == id(route)

    request = httpx.Request("GET", "https://foo.bar/baz/")
    response = route.match(request)
    assert response is None