pytest django требует доступа к базе данных для теста, который не обращается к базе данных - PullRequest
1 голос
/ 30 мая 2019

Я начал переносить некоторые тесты на использование 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 считает, что для этого теста требуется доступ к БД?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...