Django Test (StaticLiveServerTestCase) возвращает 404

У меня есть проект, который использует Angular и Django, и я испытываю странное поведение, когда тестирую свое приложение с помощью StaticLiveServerTestCase и Selenium.

Когда я начинаю тестировать, кажется, что все работает, но если я обновляю главную страницу, я получаю 404. Итак, если я тестирую без базового URL-адреса, он работает, но как только Angular добавляет базовый URL-адрес, тест возвращает 404: http://127.0.0.1:8000/проект/разработка/тест

Базовый URL-адрес, определенный в Angular в index.html:

Мой URL определяется следующим образом: re_path('тест', views.index, имя='индекс')

Итак, подводя итог, когда я тестирую http://127.0.0.1:8000/тест, он работает, но если я тестирую http://127.0.0.1:8000/проект/разработка/тест, он не работает - если я нормально запускаю свое приложение, оба URL-адреса работают.

Согласно моим знаниям новичка и поскольку шаблон URL-адреса определен, оба URL-адреса должны работать. Очевидно, я упускаю что-то еще.

Заранее спасибо.

Примечание. Тестовый класс, если он определен следующим образом:

class Tests(StaticLiveServerTestCase):

def set_chrome_options(cls):
    options = Options()
    options.add_experimental_option("useAutomationExtension", False)
    return options

@classmethod
def setUpClass(cls):
    cls.host = "127.0.0.1"
    cls.port = 8000
    super(Tests, cls).setUpClass()
    cls.selenium = webdriver.Chrome(executable_path=settings.DRIVER_PATH, options=cls.set_chrome_options(cls))
    ...

Что касается URL-шаблонов:

urlpatterns = [
    path('', views.index, name='home'),
    re_path('test', views.index, name='index'),
    path('project', views.index, name='index'),
    ...

Покажите нам свой urls.py. Должен быть путь как для /baseURL/test, так и для /test. Что такое базовый URL?

dirkgroten 21.03.2019 11:50

Я попытался добавить больше деталей к своему вопросу, извините, я не могу поделиться всеми подробностями, так как это частный проект.

eschinei 21.03.2019 12:29

Вы должны показать полную трассировку 404. Это поможет увидеть, какие шаблоны были опробованы. Обычно с этим re_path любой URL-адрес, содержащий «тест», должен совпадать и возвращать представление индекса.

dirkgroten 21.03.2019 12:43

Это часть проблемы, следов нет... даже django/core/handlers/base.py не вызывается. Я просто получаю грустное: «Не найдено. Запрошенный URL-адрес /project/development/test не найден на этом сервере».

eschinei 21.03.2019 14:51
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
173
0

Другие вопросы по теме