代码之家  ›  专栏  ›  技术社区  ›  l0b0

如何检查Django REST框架中哪个字段引发了ValidationError

  •  0
  • l0b0  · 技术社区  · 6 年前

    self.assertRaisesMessage(rest_framework_exceptions.ValidationError, expected_message) 测试我的自定义验证器。有什么方法可以用它或类似的东西吗

    用例是,我有两个验证器,它们对不同的字段产生相同的错误,并且由于它们之间的关系(开始日期和结束日期),所以不可能编写一个在引入结束日期之前失败并且也会成功的测试 因为正确的理由

    1 回复  |  直到 6 年前
        1
  •  4
  •   YKL    6 年前

    class FooSerializer(Serializer):
        start_date = DateField()
        end_date = DateField()
    
    foo = FooSerializer(data={'start_date': '2018-01-01', 'end_date': 'incorrect value'})
    self.assertFalse(foo.is_valid())
    self.assertNotIn('start_date', foo.errors)
    self.assertIn('end_date', foo.errors)