Есть ли способ написать тестовый пример pytest для проверки текущего api url?
У меня есть веб-приложение, которое я разрабатываю с помощью Django, PostGres, Docker и GraphQL API.
Я пытаюсь написать тест pytest, который при запуске будет смотреть на текущий адрес сервера (localhost или нет), отправлять запрос на GraphQL url по этому адресу и утверждать результат. Часть кода GraphQL выполняется локально, поэтому я не включаю ее сюда. Тест опирается на фикстуру notification
, которая просто создает запись в модели Django.
В настоящее время мой тест не работает со следующей ошибкой "FAILED api/tests/test_api.py::test_get_all_notifications - requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=2448): Max retries exceeded with url: /graphql ..."
Вот что у меня есть на данный момент:
import requests
import json
def get_current_server_url():
# TODO: <---- THIS IS WHAT FAILS
return "http://localhost:2448/graphql"
def make_graphql_request(query: str) -> dict:
url = get_current_server_url()
request = requests.post(url, json={'query': query})
return json.loads(request.text)
def test_get_all_notifications(db, notification) -> None:
"""Confirms the GraphQL API returns a valid notification ID."""
all_notifications_query = """{
allNotifications {
id
}
}"""
data = make_graphql_request(query=all_notifications_query)['data']
assert len(data['allNotifications']) == 1
Пожалуйста, дайте мне знать, если я могу как-то прояснить свой вопрос.