Создание приспособления Django, игнорирование отношений между объектами - PullRequest
0 голосов
/ 08 мая 2018

Я тестирую представления в приложении django.Между моделями (пользователями, отделами, отчетами и т. Д.) Существует множество отношений OneToMany и ManyToMany. Требуется много времени для заполнения определенных полей, таких как имя, фамилия, дата рождения и т. Д., При создании прибора, который я вообще не использую.Как я могу их игнорировать?Также, каковы лучшие практики при создании приспособления?Мои сиськи вот так

class TestReportModel(TestCase):
allow_database_queries = True

@classmethod
def setUpTestData(cls):
    cls.report_id = 99
    cls.factory = RequestFactory()

    cls.user_with_access = User.objects.create(username="user1", password="password")
    cls.employee = Employee.objects.create(user=cls.user_with_access, fio="name1 surname1",
                                           date_of_birth="2012-12-12")
    cls.indicator = Indicator.objects.create(context_id=10, set_id=10)
    cls.ife = IndicatorsForEmployees.objects.create(employee=cls.employee, indicator=cls.indicator)
    cls.report = Report.objects.create(owner=cls.ife)
    cls.report.id = cls.report_id
    cls.report.save()

    cls.user_with_no_access = User.objects.create(username="user_with_no_access", password="password")
    cls.employee_with_no_access = Employee.objects.create(user=cls.user_with_no_access, fio="name2 surname2",
                                                          date_of_birth="2018-12-12")

1 Ответ

0 голосов
/ 08 мая 2018

Похоже, вам нужно указать тестовую базу данных в файле настроек, загрузить прибор с помощью syncdb, а затем использовать флаг keepdb.

В вашем файле настроек вы можете указать имя тестовой базы данных в базах данных. https://docs.djangoproject.com/en/2.0/ref/settings/#std:setting-DATABASE-TEST

Если эта база данных не найдена, она будет создана при запуске тестов. Как только ваш прибор создан, вы можете использовать syncdb для загрузки этой базы данных. https://code.djangoproject.com/wiki/Fixtures#Fixtures

Затем, когда вы запустите свои модульные тесты, передайте --keepdb вместе с ним, и база данных сохранится между тестами. https://docs.djangoproject.com/en/2.0/ref/django-admin/#cmdoption-test-keepdb

...