Skip to content

Commit 8e56e9f

Browse files
committed
Fix a failing test
1 parent 44d3cff commit 8e56e9f

File tree

1 file changed

+24
-9
lines changed

1 file changed

+24
-9
lines changed

tests/test_sessions.py

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,7 @@ def test_get_expired_cookies_manages_multiple_cookie_headers(self, cookies, now,
446446
class TestCookieStorage(CookieTestBase):
447447

448448
@pytest.mark.parametrize(
449-
'new_cookies, new_cookies_dict, expected',
449+
['specified_cookie_header', 'new_cookies_dict', 'expected_effective_cookie_header'],
450450
[(
451451
'new=bar',
452452
{'new': 'bar'},
@@ -463,9 +463,9 @@ class TestCookieStorage(CookieTestBase):
463463
'chocolate=milk; cookie1=foo; cookie2=foo; new=bar'
464464
),
465465
(
466-
'new=bar;; chocolate=milk;;;',
466+
'new=bar; chocolate=milk',
467467
{'new': 'bar', 'chocolate': 'milk'},
468-
'cookie1=foo; cookie2=foo; new=bar'
468+
'cookie1=foo; cookie2=foo; new=bar; chocolate=milk'
469469
),
470470
(
471471
'new=bar; chocolate=milk;;;',
@@ -474,20 +474,35 @@ class TestCookieStorage(CookieTestBase):
474474
)
475475
]
476476
)
477-
def test_existing_and_new_cookies_sent_in_request(self, new_cookies, new_cookies_dict, expected, httpbin):
477+
def test_existing_and_new_cookies_sent_in_request(
478+
self,
479+
specified_cookie_header,
480+
new_cookies_dict,
481+
expected_effective_cookie_header,
482+
httpbin,
483+
):
478484
r = http(
479485
'--session', str(self.session_path),
480486
'--print=H',
481487
httpbin.url,
482-
'Cookie:' + new_cookies,
488+
'Cookie:' + specified_cookie_header,
483489
)
484-
# Note: cookies in response are in alphabetical order
485-
assert f'Cookie: {expected}' in r
490+
parsed_request_headers = {
491+
name: value for name, value in [
492+
line.split(': ', 1)
493+
for line in r.splitlines()
494+
if line and ':' in line
495+
]
496+
}
497+
# Note: cookies in the request are in an undefined order.
498+
expected_request_cookie_set = set(expected_effective_cookie_header.split('; '))
499+
actual_request_cookie_set = set(parsed_request_headers['Cookie'].split('; '))
500+
assert actual_request_cookie_set == expected_request_cookie_set
486501

487502
updated_session = json.loads(self.session_path.read_text(encoding=UTF8))
503+
assert 'Cookie' not in updated_session['headers']
488504
for name, value in new_cookies_dict.items():
489-
assert name, value in updated_session['cookies']
490-
assert 'Cookie' not in updated_session['headers']
505+
assert updated_session['cookies'][name]['value'] == value
491506

492507
@pytest.mark.parametrize(
493508
'cli_cookie, set_cookie, expected',

0 commit comments

Comments
 (0)