Django pytest AssertionError:应该返回body unicode

时间:2016-06-23 12:48:34

标签: python django pytest-django

我正在学习 django-pytest ,我正在尝试测试unicode,但是收到了错误

我的模特

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

我在测试unicode时遇到了困难,我只是做了100%的覆盖率

错误 enter image description here

通过测试非常感谢任何帮助。提前致谢

3 个答案:

答案 0 :(得分:2)

object = obj
result = object.__unicode__()

答案 1 :(得分:1)

当然,我不明白为什么你不接受(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'

答案 2 :(得分:1)

result = unicode(obj)
result == u'hello'