Тестирование VSCode использует производственную базу данных вместо тестовой базы данных

enter image description here

В тестировании VSCode используется реальная производственная база данных. Что должно произойти, так это Company.objects.create(name='kfc') создание единственного объекта Queue для ассоциированной компании (показано в models.py, если интересно) для тестовой базы данных, которая создается для этого теста, затем тестовая база данных уничтожается в конце теста.

Вместо этого VSCode использует мою производственную базу данных, которая включает mcdonald's queue. Поскольку мое представление использует pk для определения очереди, а поскольку mcdonald's queue присутствует, оно получает неправильную очередь, и тест проваливается.

Однако, когда я пытаюсь запустить тесты вручную, python manage.py test api.tests тест проходит, поскольку я думаю, что сами тесты django используют тестовые базы данных.

enter image description here

models.py

class Company(models.Model):
    name = models.CharField(max_length=15)

    def save(self, *args, **kwargs) -> None:
        created = bool(self.pk)
        super().save(*args, **kwargs)
        if not created:
            Queue.objects.create(company=self)

class Queue(models.Model):
    company = models.OneToOneField(
        Company, on_delete=models.CASCADE, related_name="queue")
    users = models.ManyToManyField(User, through="QueueDetails")

    @property
    def length(self):
        return len(self.users.all())

    @property
    def sorted_users(self):
        return self.users.all().order_by("queue_details__joined_at")

    def __str__(self) -> str:
        return f"{self.company}'s queue"

Пожалуйста, дайте мне знать, если я что-то упустил и как заставить VSCode работать с тестами Django, спасибо.

Вернуться на верх