Тестирование VSCode использует производственную базу данных вместо тестовой базы данных
В тестировании VSCode используется реальная производственная база данных. Что должно произойти, так это Company.objects.create(name='kfc')
создание единственного объекта Queue для ассоциированной компании (показано в models.py, если интересно) для тестовой базы данных, которая создается для этого теста, затем тестовая база данных уничтожается в конце теста.
Вместо этого VSCode использует мою производственную базу данных, которая включает mcdonald's queue
. Поскольку мое представление использует pk для определения очереди, а поскольку mcdonald's queue
присутствует, оно получает неправильную очередь, и тест проваливается.
Однако, когда я пытаюсь запустить тесты вручную, python manage.py test api.tests
тест проходит, поскольку я думаю, что сами тесты django используют тестовые базы данных.
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, спасибо.