Noob_test/KVSTest/features/steps/kvs_place_info_steps.py

35 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# pyright: reportCallIssue=false
from __future__ import annotations
from behave import then, when
from KVSTest.testdata.kvs_test_data import KVSTestData
@when("query place members for created kvs place") # pyright: ignore[reportGeneralTypeIssues]
def step_query_place_members(context) -> None:
td = KVSTestData.from_behave_context(context)
place_id = getattr(context, "kvs_place_id", None) or td.place_id
assert isinstance(place_id, str) and place_id, "Нет kvs_place_id (place не создан)."
context.kvs_place_members_response = td.query_place_members(place_id=place_id)
@then("kvs place members response has correct shape for created place") # pyright: ignore[reportGeneralTypeIssues]
def step_assert_place_members_shape(context) -> None:
td = KVSTestData.from_behave_context(context)
place_id = getattr(context, "kvs_place_id", None) or td.place_id
assert isinstance(place_id, str) and place_id, "Нет kvs_place_id."
resp = getattr(context, "kvs_place_members_response", None)
assert isinstance(resp, dict), f"Ответ GraphQL не dict: {resp!r}"
assert "data" in resp, f"В ответе нет data: {resp!r}"
place = resp.get("data", {}).get("place")
assert isinstance(place, dict), f"data.place не объект: {place!r}"
results = place.get("results")
assert isinstance(results, list) and results, f"data.place.results пустой/не list: {results!r}"
first = results[0]
assert isinstance(first, dict), f"results[0] не объект: {first!r}"
assert first.get("id") == place_id, f"Ожидали place.id={place_id!r}, получили: {first.get('id')!r}"
members = first.get("members")
assert isinstance(members, list), f"members не list: {members!r}"