написание модульного теста для модели многие ко многим в программе django - PullRequest
0 голосов
/ 21 ноября 2018

в моих проектах django у меня есть два класса, таких как:

class DataTag(models.Model):
title = models.CharField(max_length=120, unique=True)
relations = models.ManyToManyField('DataTag',
related_name='related_data_tags', blank=True)

, а другой класс:

class Data(models.Model):
    tags = models.ManyToManyField('DataTag',related_name = 'data')
    def tag_name(self):
        if self.tags.all():
            return self.tags.all()[0].title
        return '' 

обе мои модели работают, но теперь я хочунаписать тест для main_tag_name и проверить, возвращает ли эта функция истинное значение или нет. Пока я пишу следующее:

from unittest import TestCase
class DataTest(TestCase):
    def test_tag_name(self):
        self.data = Data.objects.create()
        self.tag1 = DataTag.objects.create()

Я новичок в написании теста.Пожалуйста, помогите мне для написания этого теста.Заранее спасибо

1 Ответ

0 голосов
/ 21 ноября 2018

Что вы можете сделать:

Создать объект данных: data_object = Data.objects.create()

Теперь создайте тег для этого: data_object.tags.create(name='Foo')

Вы можете утверждать, чтосвязь существует: self.assertTrue(data_objects.tags.exists())

И теперь вы можете утверждать, что tag_name возвращает то, что вы ожидаете: self.assertEqual(data_object.tag_name, 'Foo')

...