Я начал переносить некоторые тесты на использование pytest в проекте django. Однако при тестировании на простом тесте pytest выдает ошибку о том, что для этого теста требуется доступ к БД. Однако эквивалентный тест в django testrunner использовал SimpleTestCase, который не использует django db.
Оригинальный тест
class TestHomeView(SimpleTestCase):
def test_uses_home_template(self):
response = self.client.get(reverse('home'))
self.assertTemplateUsed(response, 'pages/home.html')
Тест в pytest
@pytest.mark.django_db
def test_home_template(client):
response = client.get(reverse('home'))
assert 'home.html' in [t.name for t in response.templates]
Удаление метки django_db приводит к провалу теста. Единственное возможное использование БД, о котором я могу думать, это то, что мы используем промежуточное программное обеспечение сеанса (хотя мы не активно используем сеанс в этом представлении).
Почему pytest считает, что для этого теста требуется доступ к БД?