@@ -106,7 +106,7 @@ def test_perform_ltpa_login_success() -> None:
106106 ),
107107 )
108108
109- token = _perform_ltpa_login (
109+ cookie_name , token = _perform_ltpa_login (
110110 transport ,
111111 "https://example.invalid/ibmmq/rest/v2" ,
112112 LTPAAuth ("user" , TEST_PASSWORD ),
@@ -115,13 +115,36 @@ def test_perform_ltpa_login_success() -> None:
115115 verify_tls = False ,
116116 )
117117
118+ assert cookie_name == "LtpaToken2"
118119 assert token == "abc123"
119120 assert transport .recorded_url == "https://example.invalid/ibmmq/rest/v2/login"
120121 assert transport .recorded_payload == {"username" : "user" , "password" : TEST_PASSWORD }
121122 assert transport .recorded_headers is not None
122123 assert transport .recorded_headers ["ibm-mq-rest-csrf-token" ] == "local"
123124
124125
126+ def test_perform_ltpa_login_success_with_suffixed_cookie () -> None :
127+ transport = FakeLoginTransport (
128+ TransportResponse (
129+ status_code = STATUS_OK ,
130+ text = "" ,
131+ headers = {"Set-Cookie" : "LtpaToken2_abcdef=suffixed_tok; Path=/; HttpOnly" },
132+ ),
133+ )
134+
135+ cookie_name , token = _perform_ltpa_login (
136+ transport ,
137+ "https://example.invalid/ibmmq/rest/v2" ,
138+ LTPAAuth ("user" , TEST_PASSWORD ),
139+ csrf_token = "local" ,
140+ timeout_seconds = 30.0 ,
141+ verify_tls = False ,
142+ )
143+
144+ assert cookie_name == "LtpaToken2_abcdef"
145+ assert token == "suffixed_tok"
146+
147+
125148def test_perform_ltpa_login_without_csrf_token () -> None :
126149 transport = FakeLoginTransport (
127150 TransportResponse (
@@ -131,7 +154,7 @@ def test_perform_ltpa_login_without_csrf_token() -> None:
131154 ),
132155 )
133156
134- token = _perform_ltpa_login (
157+ cookie_name , token = _perform_ltpa_login (
135158 transport ,
136159 "https://example.invalid/ibmmq/rest/v2" ,
137160 LTPAAuth ("user" , TEST_PASSWORD ),
@@ -140,6 +163,7 @@ def test_perform_ltpa_login_without_csrf_token() -> None:
140163 verify_tls = False ,
141164 )
142165
166+ assert cookie_name == "LtpaToken2"
143167 assert token == "token_value"
144168 assert transport .recorded_headers is not None
145169 assert "ibm-mq-rest-csrf-token" not in transport .recorded_headers
@@ -219,7 +243,16 @@ def test_perform_ltpa_login_no_set_cookie_raises() -> None:
219243
220244def test_extract_ltpa_token_with_multiple_cookies () -> None :
221245 headers = {"Set-Cookie" : "Other=x; Path=/, LtpaToken2=multi_tok; Path=/; Secure" }
222- assert _extract_ltpa_token (headers ) == "multi_tok"
246+ result = _extract_ltpa_token (headers )
247+ assert result is not None
248+ assert result == ("LtpaToken2" , "multi_tok" )
249+
250+
251+ def test_extract_ltpa_token_with_suffixed_cookie_name () -> None :
252+ headers = {"Set-Cookie" : "LtpaToken2_xyz123=suffixed_tok; Path=/; Secure" }
253+ result = _extract_ltpa_token (headers )
254+ assert result is not None
255+ assert result == ("LtpaToken2_xyz123" , "suffixed_tok" )
223256
224257
225258def test_extract_ltpa_token_no_match () -> None :
@@ -238,4 +271,6 @@ def test_extract_ltpa_token_no_headers() -> None:
238271
239272def test_extract_ltpa_token_lowercase_header () -> None :
240273 headers = {"set-cookie" : "LtpaToken2=lower_tok; Path=/" }
241- assert _extract_ltpa_token (headers ) == "lower_tok"
274+ result = _extract_ltpa_token (headers )
275+ assert result is not None
276+ assert result == ("LtpaToken2" , "lower_tok" )
0 commit comments