11from __future__ import annotations
22
3+ import json
34from typing import Dict
45from uuid import uuid4
56
@@ -119,9 +120,11 @@ def test_it_user_additional_fields(mode: str, integration_client: Mellophone) ->
119120 "field_float" : 4.5 ,
120121 "field_bool" : False ,
121122 "field_none" : None ,
122- "field_empty_str " : "" ,
123- "field_empty_list " : [],
123+ "field_str_empty " : "" ,
124+ "field_list_empty " : [],
124125 "field_list" : ["org1" ],
126+ "field_dict" : {"org1" : {"name" : "google" , "age" : 15 }},
127+ "field_dict_empty" : {},
125128 }
126129 update_payload = {
127130 "sid" : sid ,
@@ -141,18 +144,23 @@ def test_it_user_additional_fields(mode: str, integration_client: Mellophone) ->
141144 users_after_create = users_from_list (invoke (integration_client , mode , "get_user_list" , gp = "not_defined" ))
142145 created_user = next ((user for user in users_after_create if user .get ("sid" ) == sid ), None )
143146 assert created_user is not None
144- for key in filter ( lambda x : x not in ( 'password' , 'pwd' ), create_payload ):
147+ for key in ( "field_str" , "field_int" , "field_float" , "field_bool" , "field_str_empty" ):
145148 assert created_user .get (key ) == str (create_payload [key ])
146149
150+ for key in ("field_list" , "field_list_empty" , "field_dict" , "field_dict_empty" ):
151+ assert created_user .get (key ) == json .dumps (create_payload [key ], ensure_ascii = False )
152+ assert json .loads (created_user .get (key )) == create_payload [key ]
153+
154+ assert created_user .get ("field_none" ) == ""
155+
147156 invoke (integration_client , mode , "update_user" , sid , update_payload )
148157 assert_credentials_invalid (integration_client , mode , login , pwd_1 )
149158 assert_credentials_valid (integration_client , mode , login , pwd_2 , sid )
150159
151160 users_after_update = users_from_list (invoke (integration_client , mode , "get_user_list" , gp = "not_defined" ))
152161 updated_user = next ((user for user in users_after_update if user .get ("sid" ) == sid ), None )
153162 assert updated_user is not None
154- for key in filter ( lambda x : x not in ( 'password' , 'pwd' ), update_payload ):
155- assert updated_user .get (key ) == str (update_payload [key ])
163+ for key in ( "field_str" , "field_int" , "field_float" , "field_bool" ):
164+ assert updated_user .get (key ) == str (update_payload [key ]), key
156165 finally :
157- ...
158- # invoke(integration_client, mode, "delete_user", sid)
166+ invoke (integration_client , mode , "delete_user" , sid )
0 commit comments