test_validate.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:maggma 作者: materialsproject 项目源码 文件源码
def test_violations(self):
        "Test error determination in CollectionValidator.why_bad"
        obj = vv.Validator()
        # main & where clause, both fail
        q = vv.MongoQuery()
        q.add_clause(vv.MongoClause(vv.Constraint('foo', 'size>', 2)))
        q.add_clause(vv.MongoClause(vv.Constraint('bar', '>', 1)))
        rec = {'foo': [0], 'bar': 0}
        reasons = obj._get_violations(q, rec)
        self.failUnlessEqual(len(reasons), 2)
        for r in reasons:
            if r.field == 'bar':
                self.failUnless(r.op == '>' and r.got_value == 0 and r.expected_value == 1)
        # all pass
        q = vv.MongoQuery()
        q.add_clause(vv.MongoClause(vv.Constraint('foo', 'size>', 2)))
        q.add_clause(vv.MongoClause(vv.Constraint('bar', '>', 1)))
        rec = {'foo': [0, 1, 2], 'bar': 9}
        reasons = obj._get_violations(q, rec)
        rtuples = [r.as_tuple() for r in reasons]
        print('\n'.join(map(str, rtuples)))
        self.failUnlessEqual(len(reasons), 0)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号