作为一般规则, [
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))