Pytest выдает ошибку «ValueError: Missing staticfiles manifest entry for 'assets/img/favicon.ico' », в то время как STATICFILES_STORAGE установлен по умолчанию в тестах [duplicate]
FAILED tests/test_views.py::test_index_view - ValueError: Missing staticfiles manifest entry for 'assets/img/favicon.ico'
В моем проекте, основанном на шаблоне Django, при запуске pytests на представлениях возникает ошибка, описанная выше. В целом я понимаю, что это такое и как с этим бороться при развертывании, но не хочу беспокоиться о статических файлах, проявляющихся при выполнении этих тестов. Самое очевидное решение, которое я нашел, это отключить его, установив STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage' в settings/test.py; это значение по умолчанию, я больше не должен беспокоиться о записях манифеста, но он сохраняется. Я написал тест-кейс, чтобы подтвердить, что pytest действительно использует эту настройку, и этот тест-кейс прошел.
Подводя итог, почему у меня возникает ошибка записи манифеста в тестах, запущенных с настройками STATICFILES_STORAGE по умолчанию, и как это исправить? Я пробовал несколько других вариантов, но общий принцип, похоже, заключается в изменении настроек STATICFILES_STORAGE. Что я упускаю или делаю неправильно?
Простая функция просмотра:
def index(request):
return render (request, "main/index.html")
Тестовые случаи, т.е. tests/test_views.py:
import pytest
from django.urls import reverse
from django.test import Client
from django.conf import settings
from main.models import SubscriptionPlan
def test_static_storage():
print(settings.STATICFILES_STORAGE)
assert settings.STATICFILES_STORAGE == 'django.contrib.staticfiles.storage.StaticFilesStorage'
def test_index_view():
"""
Test that the index view renders the correct template.
"""
client = Client()
response = client.get(reverse('index'))
assert response.status_code == 200
assert 'main/index.html' in [template.name for template in response.templates]
pytest.ini
[pytest]
DJANGO_SETTINGS_MODULE = project.settings.test
settings/test.py
from .base import *
# Override static file storage for tests
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
settings/base.py
Именно test_index_view в настоящее время не работает с ошибкой выше и, как следствие, все остальные тесткейсы, которые последуют. Я только что понял, что я не использовал pytest с чем-либо, что связано с шаблонами, так что спасибо заранее!