File tree Expand file tree Collapse file tree 2 files changed +20
-4
lines changed
Expand file tree Collapse file tree 2 files changed +20
-4
lines changed Original file line number Diff line number Diff line change @@ -210,9 +210,20 @@ def _do_request(self, request):
210210 except urllib .error .HTTPError as e :
211211 server_response = json .load (e )
212212
213- # We first to try to get the value from the response otherwise we set a default value
214- err_detail = server_response .get ("detail" , e .read ().decode ("utf-8" ))
215213 server_code = server_response .get ("code" , None )
214+ # Try to get error detail
215+ if isinstance (server_response , dict ):
216+ if "detail" in server_response :
217+ err_detail = server_response ["detail" ]
218+ else :
219+ # Extract all field-specific errors and format them
220+ err_detail = "\n " .join (
221+ f"{ key } : { ', ' .join (map (str , value ))} "
222+ for key , value in server_response .items ()
223+ if isinstance (value , list )
224+ ) or str (server_response ) # Fallback to raw response if structure is unexpected
225+ else :
226+ err_detail = str (server_response )
216227
217228 raise ClientError (
218229 detail = err_detail ,
Original file line number Diff line number Diff line change @@ -2746,11 +2746,16 @@ def test_workspace_requests(mc2: MerginClient):
27462746
27472747
27482748def test_access_management (mc : MerginClient , mc2 : MerginClient ):
2749- # create a user in the workspace
2749+ # create a user in the workspace -
27502750 workspace_id = next ((w ["id" ] for w in mc .workspaces_list () if w ["name" ] == mc .username ()))
2751+ ws_role = WorkspaceRole .WRITER
27512752 email = "create_user" + str (random .randint (1000 , 9999 )) + "@client.py"
2753+ # returning meaningful error when requirements are not met
2754+ password = "1234"
2755+ with pytest .raises (ClientError , match = f"Passwords must be at least 8 characters long." ):
2756+ mc .create_user (email , password , workspace_id , ws_role )
2757+ # strong password
27522758 password = "Il0vemergin"
2753- ws_role = WorkspaceRole .WRITER
27542759 user_info = mc .create_user (email , password , workspace_id , ws_role )
27552760 assert user_info ["email" ] == email
27562761 assert user_info ["receive_notifications" ] is False
You can’t perform that action at this time.
0 commit comments