27 lines
1.4 KiB
Python
27 lines
1.4 KiB
Python
from behave import given, when, then
|
||
from typing import Final
|
||
from worklib import admin_data
|
||
from worklib.findplaceinfo.find_place_data import fetch_place_members
|
||
from worklib.QueryData import query_data, query_data_place_id_variables
|
||
# pyright: ignore[reportGeneralTypeIssues]
|
||
|
||
_EXPECTED_RESULT: Final[dict[str, str]] = {
|
||
"id": "682b071a163ac2a0995355be",
|
||
"place_type": "street",
|
||
"name": "ул. Мебельная",
|
||
}
|
||
@when("get place info") # pyright: ignore[reportGeneralTypeIssues]
|
||
def step_get_place_info(context):
|
||
token = getattr(context, "access_token", None) or admin_data.get_or_create_user("tester").access_token
|
||
data = fetch_place_members(access_token=token, query=query_data()["query"], variables=query_data_place_id_variables()["variables"])
|
||
context.place_info = data
|
||
|
||
@then("place info is valid for query data") # pyright: ignore[reportGeneralTypeIssues]
|
||
def step_place_info_valid(context):
|
||
data = getattr(context, "place_info", None)
|
||
assert isinstance(data, dict), "Ответ GraphQL не dict"
|
||
assert "data" in data or "place" in str(data), f"Не похоже на успешный GraphQL ответ: {data}"
|
||
assert data["data"]["place"]["results"][0]["id"] == _EXPECTED_RESULT["id"]
|
||
assert data["data"]["place"]["results"][0]["place_type"] == _EXPECTED_RESULT["place_type"]
|
||
assert data["data"]["place"]["results"][0]["name"] == _EXPECTED_RESULT["name"]
|