Compare commits
	
		
			2 Commits
		
	
	
		
			main
			...
			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]] = {} | ||||
|  | ||||
|     for token in raw.split(";"): | ||||
|         name, __, value = token.partition("=") | ||||
|         name, sep, value = token.partition("=") | ||||
|         name = name.strip() | ||||
|         value = value.strip() | ||||
|  | ||||
|         # Support cookies =value or plain value with no name | ||||
|         # https://github.com/httpwg/http-extensions/issues/159 | ||||
|         if not sep: | ||||
|             if not name: | ||||
|             continue | ||||
|                 continue  # Empty value like ;; or a cookie header with no value | ||||
|             name, value = "", name | ||||
|  | ||||
|         if COOKIE_NAME_RESERVED_CHARS.search(name):  # no cov | ||||
|             continue | ||||
|   | ||||
| @@ -11,6 +11,20 @@ from sanic.cookies.request import CookieRequestParameters | ||||
| from sanic.exceptions import ServerError | ||||
| from sanic.response import text | ||||
| 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