def test_response_update_from_objects_cookies(): r = http.Response(('HTTP/1.1 200 OK\r\n' 'Set-Cookie: foo=bar\r\n' 'Set-Cookie: baz=buzz\r\n' 'Header: out of f*****g nowhere\r\n' 'Set-Cookie: foo=buzz\r\n' '\r\n')) expected_pairs = [('foo', 'bar'), ('baz', 'buzz'), ('foo', 'buzz')] check_response_cookies(expected_pairs, r) new_pairs = [('foo', http.ResponseCookie('foo=banana')), ('baz', http.ResponseCookie('baz=buzz')), ('scooby', http.ResponseCookie('scooby=doo')), ('foo', http.ResponseCookie('foo=boo'))] r.cookies.clear() r.cookies.add_pairs(new_pairs) assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Header: out of f*****g nowhere\r\n' 'Set-Cookie: foo=banana\r\n' 'Set-Cookie: baz=buzz\r\n' 'Set-Cookie: scooby=doo\r\n' 'Set-Cookie: foo=boo\r\n' '\r\n') expected_pairs = [('foo', 'banana'), ('baz', 'buzz'), ('scooby', 'doo'), ('foo', 'boo')] check_response_cookies(expected_pairs, r)
def test_response_set_cookie(): r = http.Response(('HTTP/1.1 200 OK\r\n' 'Content-Length: 0\r\n')) r.set_cookie(http.ResponseCookie('foo=bar')) assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Content-Length: 0\r\n' 'Set-Cookie: foo=bar\r\n\r\n') r.set_cookie(http.ResponseCookie('foo=baz')) assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Content-Length: 0\r\n' 'Set-Cookie: foo=baz\r\n\r\n')
def test_response_cookie_parsing(): s = 'ck=1234=567;Expires=Wed, 09 Jun 2021 10:18:14 GMT;secure;httponly;path=/;max-age=12;domain=.foo.bar' c = http.ResponseCookie(s) assert c.key == 'ck' assert c.val == '1234=567' assert c.domain == '.foo.bar' assert c.expires == 'Wed, 09 Jun 2021 10:18:14 GMT' assert c.http_only assert c.max_age == 12 assert c.path == '/' assert c.secure
def test_response_cookie_simple(): s = 'ck=1234;' c = http.ResponseCookie(s) assert c.key == 'ck' assert c.val == '1234' assert not c.secure assert not c.http_only assert c.domain is None assert c.expires is None assert c.max_age is None assert c.path is None
def test_response_cookie_blank(): # Don't ask why this exists, I've run into it s = ' ; path=/; secure' c = http.ResponseCookie(s) assert c.key == '' assert c.val == '' assert c.path == '/' assert c.secure s = '; path=/; secure' c = http.ResponseCookie(s) assert c.key == '' assert c.val == '' assert c.path == '/' assert c.secure s = 'asdf; path=/; secure' c = http.ResponseCookie(s) assert c.key == 'asdf' assert c.val == '' assert c.path == '/' assert c.secure
def test_response_update_from_objects_cookies_replace(): r = http.Response(('HTTP/1.1 200 OK\r\n' 'Set-Cookie: foo=bar\r\n' 'Set-Cookie: baz=buzz\r\n' 'Header: out of f*****g nowhere\r\n' 'Set-Cookie: foo=buzz\r\n' '\r\n')) expected_pairs = [('foo', 'bar'), ('baz', 'buzz'), ('foo', 'buzz')] check_response_cookies(expected_pairs, r) r.cookies['foo'] = http.ResponseCookie('foo=banana') assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Set-Cookie: foo=banana\r\n' 'Set-Cookie: baz=buzz\r\n' 'Header: out of f*****g nowhere\r\n' '\r\n')
def test_response_update_cookies(): r = http.Response() r.start_line = 'HTTP/1.1 200 OK' # Test by adding headers r.headers['Set-Cookie'] = 'abc=123' assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Set-Cookie: abc=123\r\n\r\n') assert r.cookies['abc'].val == '123' r.headers.append('Set-Cookie', 'abc=456') assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Set-Cookie: abc=123\r\n' 'Set-Cookie: abc=456\r\n\r\n') assert r.cookies['abc'].val == '456' r = http.Response() r.start_line = 'HTTP/1.1 200 OK' # Test by adding cookie objects c = http.ResponseCookie('abc=123; secure') r.cookies['abc'] = c assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Set-Cookie: abc=123; secure\r\n\r\n')