1111# *************************************************************
1212
1313### Standard packages ###
14+ from urllib .parse import urlencode
1415from typing import Optional
1516
1617### Third-party packages ###
@@ -66,9 +67,10 @@ def _() -> tuple[tuple[str, str], ...]:
6667 ### Extract `csrf_token` from response to be set as next request's body ###
6768 csrf_token : Optional [str ] = response .json ().get ("csrf_token" , None )
6869 payload : dict [str , str ] = {"csrf-token" : csrf_token } if csrf_token is not None else {}
70+ content : bytes = urlencode (payload ).encode ("utf-8" )
6971
7072 ### Post to protected endpoint ###
71- response = flexible_client .post ("/protected" , data = payload , headers = headers )
73+ response = flexible_client .post ("/protected" , content = content , headers = headers )
7274
7375 ### Assertions ###
7476 assert response .status_code == 200
@@ -77,7 +79,7 @@ def _() -> tuple[tuple[str, str], ...]:
7779 assert cookie_token is None
7880
7981 ### Immediately get protected contents again ###
80- response = flexible_client .post ("/protected" , data = payload , headers = headers )
82+ response = flexible_client .post ("/protected" , content = content , headers = headers )
8183
8284 ### Assertions ###
8385 assert response .status_code == 400
@@ -117,9 +119,10 @@ def _() -> tuple[tuple[str, str], ...]:
117119 ### Extract `csrf_token` from response to be set as next request's form ###
118120 csrf_token : Optional [str ] = response .json ().get ("csrf_token" , None )
119121 payload : dict [str , str ] = {"csrf-token" : csrf_token } if csrf_token is not None else {}
122+ content : bytes = urlencode (payload ).encode ("utf-8" )
120123
121124 ### Post to protected endpoint but fails because TestClients defaults to http ###
122- response = flexible_client .post ("/protected" , data = payload , headers = headers )
125+ response = flexible_client .post ("/protected" , content = content , headers = headers )
123126
124127 ### Assertions ###
125128 assert response .status_code == 400
@@ -185,9 +188,10 @@ def _() -> tuple[tuple[str, str], ...]:
185188 ### Extract `csrf_token` from response to be set as next request's form ###
186189 csrf_token : Optional [str ] = response .json ().get ("csrf_token" , None )
187190 payload : dict [str , str ] = {"csrf-token" : csrf_token } if csrf_token is not None else {}
191+ content : bytes = urlencode (payload ).encode ("utf-8" )
188192
189193 ### Post to protected endpoint ###
190- response = flexible_client .post ("/protected" , data = payload , headers = headers )
194+ response = flexible_client .post ("/protected" , content = content , headers = headers )
191195
192196 ### Assertions ###
193197 assert response .status_code == 200
@@ -196,7 +200,7 @@ def _() -> tuple[tuple[str, str], ...]:
196200 assert cookie_token is None
197201
198202 ### Immediately get protected contents again ###
199- response = flexible_client .post ("/protected" , data = payload , headers = headers )
203+ response = flexible_client .post ("/protected" , content = content , headers = headers )
200204
201205 ### Assertions ###
202206 assert response .status_code == 400
0 commit comments