Django pytest AssertionError: должен возвращать юникод тела

Я изучал django-pytest и я пытался протестировать юникод, но получал ошибку

Мои модели

class Post(models.Model):
    body = models.TextField()
    value = models.CharField(max_length=5)

    def __unicode__(self):
        return self.body

тестовое задание

class TestPost:
    def test_model(self):
        obj = mixer.blend('birdie.Post')
        assert obj.pk == 1, 'should create a post instance '

    def test_uniccode(self):
        obj = mixer.blend('birdie.Post',body='hello')
        result = obj.__unicode__
        assert result == 'hello', 'should return body unicode

У меня проблемы с тестированием юникода, я просто делал это, чтобы охватить все 100%

ошибка

Любая помощь высоко ценится при прохождении теста. заранее спасибо

3 ответа

Решение
object = obj
result = object.__unicode__()
result = unicode(obj)
result == u'hello'

Конечно, я не понимаю, почему вы не приняли (это было принято 1 месяц назад) мой ответ. Это помогло тебе. Это ясно. Возможно, вы приняли ответ вашего друга. Что ж, удачи с таким отношением.

Вы должны позвонить

obj.__unicode__()

это должно работать нормально.

Это метод, поэтому вызывайте его как метод. Не забывайте о скобках.

class Group(models.Model):
    name = models.TextField()

    def __unicode__(self):
        return self.name

obj = Group(name='test')
obj.save()

obj.__unicode__
<bound method Group.__unicode__ of <Group: test>>

obj.__unicode__()
u'test'
Другие вопросы по тегам