Интеграция Django "Клиентский класс" в VS Code
У меня было несколько проблем с интеграцией тестирования Django в VSCode. Наконец мне удалось запустить большинство видов тестов (похоже, что хитрость заключается в том, чтобы запустить django.setup() до того, как произойдет все остальное, включая импорт модулей Django), но теперь у меня возникла проблема с классом клиента Django. Я делаю простой client.get() и получаю ошибку 400 (Bad Request) из VSCode. Но если я запускаю "python manage.py test" из CLI, тест работает! Я в полной растерянности, что происходит...
Вот мой код. Он не может быть проще.
import logging
import django
django.setup()
from django.test import Client, TestCase # noqa: E402
from django.db import DatabaseError # noqa: E402
logger = logging.getLogger('XXXX.debugger')
class WorkflowAPIClient(TestCase):
def test_createWorkflow(self):
client = Client()
resp = client.get('/workflow/')
logger.debug(f'After request: {resp.status_code} - {resp.content}')
self.assertEqual(resp.status_code, 200)
Когда я запускаю это из CLI как "python manage.py test", все проходит нормально (assertEqual успешно). Когда я пытаюсь запустить это из тестового модуля VSCode, он выдает status_code 400 и таким образом, assertEqual терпит неудачу.
Я использую unittest для конфигурации тестов VSCode, и он обнаруживает тестовые файлы без каких-либо проблем.
400 ошибка обычно вызвана невозможностью доступа к доменному имени. Вы можете провести отладку, чтобы проверить проблему или проверить, является ли это ошибкой ALLOWED_HOSTS.