Есть ли способ написать тестовый пример 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

Пожалуйста, дайте мне знать, если я могу как-то прояснить свой вопрос.

Вернуться на верх