Это частичный ответ на мой вопрос, и помочь кому-либо еще, кто нашел этот вопрос из поиска.
Django включает в себя средство, которое оно именует 'fixtures' для обработки первичной загрузки данных во время тестирования. Создание прибора состоит из двух этапов:
- Добавьте некоторые поддельные данные в модель приложения, используя инструмент администратора
- Запустите следующее: manage.py dumpdata [appname] --indent = 2> filename.json
Файл фикстуры * .json остается в корневой папке вашего проекта Django.
В вашем файле tests.py вы можете загрузить прибор в класс TestCase Django следующим образом:
class YourTestCase(TestCase):
fixtures = ['filename.json','whatever.json',]
Как только прибор будет загружен, вы можете использовать данные так же, как обычно используете ORM. Вот мой рабочий тестовый пример из приведенного выше кода, если вам нужен пример.
from django.test import TestCase
from django.contrib.auth.models import User
from mediamanager.models import Media
class MediaManagerTestCase(TestCase):
fixtures = ['auth_data.json','mediamanager_data.json',]
def setUp(self):
self.fakeuser = User.objects.get(username='fakeuser')
self.fakestaff = User.objects.get(username='fakestaff')
self.fakeadmin = User.objects.get(username='fakeadmin')
def test_media_can_edit(self):
um = Media.objects.get(pk=1) # Media owned by fakeuser
sm = Media.objects.get(pk=2) # Media owned by fakstaff
self.assertEquals(um.can_edit(self.fakeuser), True)
self.assertEquals(sm.can_edit(self.fakeuser), False)
self.assertEquals(um.can_edit(self.fakestaff), True)
self.assertEquals(sm.can_edit(self.fakestaff), True)
self.assertEquals(um.can_edit(self.fakeadmin), True)
self.assertEquals(sm.can_edit(self.fakeadmin), True)