Skip to content

Commit 3a6c709

Browse files
committed
test: Проверка записи доп параметров
1 parent e13b945 commit 3a6c709

File tree

2 files changed

+57
-1
lines changed

2 files changed

+57
-1
lines changed

tests/integration/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ def log_message(self, format: str, *args: Any) -> None: # noqa: A003
123123
thread = threading.Thread(target=server.serve_forever, daemon=True)
124124
thread.start()
125125
try:
126-
host, port = server.server_address
126+
host, port = server.server_address # ty:ignore[invalid-assignment]
127127
yield f"http://{host}:{port}"
128128
finally:
129129
server.shutdown()

tests/integration/test_client_flows.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,3 +100,59 @@ def test_it_state_session_settings_and_delete(mode: str, integration_client: Mel
100100

101101
invoke(integration_client, mode, "delete_user", sid)
102102
assert_credentials_invalid(integration_client, mode, login, pwd_2)
103+
104+
105+
@pytest.mark.parametrize("mode", ["sync", "async"], ids=["sync", "async"])
106+
def test_it_user_additional_fields(mode: str, integration_client: Mellophone) -> None:
107+
unique = uuid4().hex[:8]
108+
sid = f"it-extra-{mode}-{unique}"
109+
login = f"it_extra_{mode}_{unique}"
110+
pwd_1 = "pwd_1"
111+
pwd_2 = "pwd_2"
112+
113+
create_payload = {
114+
"sid": sid,
115+
"login": login,
116+
"password": pwd_1,
117+
"field_str": f"{login}@example.com",
118+
"field_int": 20,
119+
"field_float": 4.5,
120+
"field_bool": False,
121+
"field_none": None,
122+
"field_empty_str": "",
123+
"field_empty_list": [],
124+
"field_list": ["org1"],
125+
}
126+
update_payload = {
127+
"sid": sid,
128+
"login": login,
129+
"pwd": pwd_2,
130+
"field_str": f"{login}+updated@example.com",
131+
"field_int": 30,
132+
"field_float": 9.75,
133+
"field_bool": True,
134+
"field_list": ["org1", "org2"],
135+
}
136+
137+
try:
138+
invoke(integration_client, mode, "create_user", create_payload)
139+
assert_credentials_valid(integration_client, mode, login, pwd_1, sid)
140+
141+
users_after_create = users_from_list(invoke(integration_client, mode, "get_user_list", gp="not_defined"))
142+
created_user = next((user for user in users_after_create if user.get("sid") == sid), None)
143+
assert created_user is not None
144+
for key in filter(lambda x: x not in ('password', 'pwd'), create_payload):
145+
assert created_user.get(key) == str(create_payload[key])
146+
147+
invoke(integration_client, mode, "update_user", sid, update_payload)
148+
assert_credentials_invalid(integration_client, mode, login, pwd_1)
149+
assert_credentials_valid(integration_client, mode, login, pwd_2, sid)
150+
151+
users_after_update = users_from_list(invoke(integration_client, mode, "get_user_list", gp="not_defined"))
152+
updated_user = next((user for user in users_after_update if user.get("sid") == sid), None)
153+
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])
156+
finally:
157+
...
158+
# invoke(integration_client, mode, "delete_user", sid)

0 commit comments

Comments
 (0)