Compare commits
	
		
			2 Commits
		
	
	
		
			ruff-only
			...
			bare-cooki
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | a202435283 | ||
|   | 6d433af406 | 
| @@ -73,12 +73,16 @@ def parse_cookie(raw: str) -> Dict[str, List[str]]: | |||||||
|     cookies: Dict[str, List[str]] = {} |     cookies: Dict[str, List[str]] = {} | ||||||
|  |  | ||||||
|     for token in raw.split(";"): |     for token in raw.split(";"): | ||||||
|         name, __, value = token.partition("=") |         name, sep, value = token.partition("=") | ||||||
|         name = name.strip() |         name = name.strip() | ||||||
|         value = value.strip() |         value = value.strip() | ||||||
|  |  | ||||||
|         if not name: |         # Support cookies =value or plain value with no name | ||||||
|             continue |         # https://github.com/httpwg/http-extensions/issues/159 | ||||||
|  |         if not sep: | ||||||
|  |             if not name: | ||||||
|  |                 continue  # Empty value like ;; or a cookie header with no value | ||||||
|  |             name, value = "", name | ||||||
|  |  | ||||||
|         if COOKIE_NAME_RESERVED_CHARS.search(name):  # no cov |         if COOKIE_NAME_RESERVED_CHARS.search(name):  # no cov | ||||||
|             continue |             continue | ||||||
|   | |||||||
| @@ -11,6 +11,20 @@ from sanic.cookies.request import CookieRequestParameters | |||||||
| from sanic.exceptions import ServerError | from sanic.exceptions import ServerError | ||||||
| from sanic.response import text | from sanic.response import text | ||||||
| from sanic.response.convenience import json | from sanic.response.convenience import json | ||||||
|  | from sanic.cookies.request import parse_cookie | ||||||
|  |  | ||||||
|  | def test_request_cookies(): | ||||||
|  |     cdict = parse_cookie("foo=one; foo=two; abc = xyz;;bare;=bare2") | ||||||
|  |     assert cdict == { | ||||||
|  |         "foo": ["one", "two"], | ||||||
|  |         "abc": ["xyz"], | ||||||
|  |         "": ["bare", "bare2"], | ||||||
|  |     } | ||||||
|  |     c = CookieRequestParameters(cdict) | ||||||
|  |     assert c.getlist("foo") == ["one", "two"] | ||||||
|  |     assert c.getlist("abc") == ["xyz"] | ||||||
|  |     assert c.getlist("") == ["bare", "bare2"] | ||||||
|  |     assert c.getlist("bare") == None   # [] might be sensible but we got None for now | ||||||
|  |  | ||||||
|  |  | ||||||
| # ------------------------------------------------------------ # | # ------------------------------------------------------------ # | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user