Всем привет.
Использую стандартную библиотеку: django.test и unittest.mock, хочу проверить следующий момент:
class Dynamical_Pages(TestCase):
def test_advertisement(self):
response = self.client.get('/advertisement')
self.assertEqual(response.status_code, 200)
Т.е. проверяю - работает ли эта страница или нет.
При попытке запуска получаю ошибку по типу:
File "C:\python35\lib\site-packages\django\db\models\query.py", line 387, in get
self.model._meta.object_name
faceset.models.DoesNotExist: Banner matching query does not exist.
Т.е. ругается, что нет данных от модели Banner.
Подскажите, пожалуйста, как можно модель мокнуть? Чтобы тест перестал на него ругаться?
Модель Banner
class Banner(models.Model):
bancode = models.TextField()
banlink = models.TextField()
banimg = models.ImageField()
________________________________
Как подсказали ребята, попробовал factory-boy:
from django.test import TestCase
from django.test import Client
import factory
from faceset.models import Banner
#factory_boy data
class BannerFactory(factory.Factory):
class Meta:
model = Banner
bancode = 'test_code_for_deploy'
banlink = 'test_link_for_deploy'
banimg = ''
class Dynamic_pages(TestCase):
def test_upmenu(self):
Banner = BannerFactory.create()
response = self.client.get('/upmenu')
self.assertEqual(response.status_code, 200)
Такая же ошибка появляется, я как-то его не так использую? Если передать данные в Banner.objects.create(...), то пашет. Как факториала использовать?