2

文档中to_python

作为一般规则, [ to_python] 应该优雅地处理以下任何参数:

  • 正确类型的实例(例如,Hand在我们正在进行的示例中)。
  • 一个字符串(例如,来自反序列化器)。
  • 无论数据库为您使用的列类型返回什么。

我正在查看我的测试覆盖率(使用coverage.py),以及我顶部的代码to_python

def to_python(self, value):
    if isinstance(value, Hand):
        return value

    # More code for handling strings below (I never get here)

是我的to_python方法中唯一被调用的部分。我还应该测试什么?我已经测试了从数据库中保存和检索对象,并且我已经测试了这样的序列化:

   cereal = serializers.serialize('json',
                                   Hand.objects.all())
   objects = list(serializers.deserialize("json", cereal))
4

1 回答 1

0

我找到了一个to_python以实例以外的东西结束的地方 - 在未提供值的情况下(例如,如果您的字段设置为允许为空)。在那种情况下,因为我实施get_prep_value得很糟糕,所以to_python传递了一个包含None.

于 2012-06-20T20:38:39.660 回答