MCPcopy
hub / github.com/hugapi/hug / test_session_middleware

Function test_session_middleware

tests/test_middleware.py:35–73  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

33
34
35def test_session_middleware():
36 @hug.get()
37 def count(request):
38 session = request.context["session"]
39 counter = session.get("counter", 0) + 1
40 session["counter"] = counter
41 return counter
42
43 def get_cookies(response):
44 simple_cookie = SimpleCookie(response.headers_dict["set-cookie"])
45 return {morsel.key: morsel.value for morsel in simple_cookie.values()}
46
47 # Add middleware
48 session_store = InMemoryStore()
49 middleware = SessionMiddleware(session_store, cookie_name="test-sid")
50 __hug__.http.add_middleware(middleware)
51
52 # Get cookies from response
53 response = hug.test.get(api, "/count")
54 cookies = get_cookies(response)
55
56 # Assert session cookie has been set and session exists in session store
57 assert "test-sid" in cookies
58 sid = cookies["test-sid"]
59 assert session_store.exists(sid)
60 assert session_store.get(sid) == {"counter": 1}
61
62 # Assert session persists throughout the requests
63 headers = {"Cookie": "test-sid={}".format(sid)}
64 assert hug.test.get(api, "/count", headers=headers).data == 2
65 assert session_store.get(sid) == {"counter": 2}
66
67 # Assert a non-existing session cookie gets ignored
68 headers = {"Cookie": "test-sid=foobarfoo"}
69 response = hug.test.get(api, "/count", headers=headers)
70 cookies = get_cookies(response)
71 assert response.data == 1
72 assert not session_store.exists("foobarfoo")
73 assert cookies["test-sid"] != "foobarfoo"
74
75
76def test_logging_middleware():

Callers

nothing calls this directly

Calls 7

existsMethod · 0.95
getMethod · 0.95
InMemoryStoreClass · 0.90
SessionMiddlewareClass · 0.90
get_cookiesFunction · 0.85
add_middlewareMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected