Ejemplo n.º 1
0
 def test_ConstraintOperator_size(self):
     "Test the ConstraintOperator class sizes."
     obj = vv.ConstraintOperator('size>')
     self.failUnless(obj.is_size() and obj.is_size_gt())
     obj = vv.ConstraintOperator('size')
     self.failUnless(obj.is_size() and obj.is_size_eq())
     obj = vv.ConstraintOperator('size$')
     self.failUnless(obj.is_size() and obj.is_variable())
Ejemplo n.º 2
0
 def test_MongoClause(self):
     "Test MongoClause class"
     self.assertRaises(AssertionError, vv.MongoClause, None)
     fld = vv.Field('foo')
     op = vv.ConstraintOperator('>=')
     cn = vv.Constraint(fld, op, 10)
     obj = vv.MongoClause(cn)
     self.assert_(obj.query_loc == vv.MongoClause.LOC_MAIN)
Ejemplo n.º 3
0
 def test_Constraint(self):
     "Test the Constraint class"
     for f, o, v in ((None, None, None), (1, 2, 3), ('a', 'b', 'c')):
         self.assertRaises(ValueError, vv.Constraint, f, o, v)
     obj = vv.Constraint(vv.Field('foo'), vv.ConstraintOperator('>'), 10)
     self.failIf(obj.passes(None)[0])
     self.failIf(obj.passes('dude')[0])
     self.failIf(obj.passes(10)[0])
     self.failUnless(obj.passes(11)[0])
Ejemplo n.º 4
0
 def test_ConstraintGroup(self):
     "Test ConstraintGroup class"
     CG = vv.ConstraintGroup
     foobar = vv.Field('foo.bar/baz')
     obj = CG(foobar)
     self.failUnlessEqual(obj.has_array(), False)
     self.failUnlessEqual(obj.get_conflicts(), [])
     # add constraint
     op, val = vv.ConstraintOperator('>'), 10
     obj.add_constraint(op, val)
     self.failUnlessEqual(obj.has_array(), True)
Ejemplo n.º 5
0
 def test_MongoClause_where(self):
     "Test MongoClause class for where"
     fld = vv.Field('foo')
     for suffix, where in zip(('$', '>', ''), (True, True, True)):
         sz = 'size' + suffix
         op = vv.ConstraintOperator(sz)
         cn = vv.Constraint(fld, op, 10)
         obj = vv.MongoClause(cn)
         if where:
             self.failUnlessEqual(obj.query_loc, vv.MongoClause.LOC_WHERE)
         else:
             self.failIfEqual(obj.query_loc, vv.MongoClause.LOC_WHERE)
Ejemplo n.º 6
0
 def test_ConstraintGroup_exists(self):
     "Test ConstraintGroup class, exists addition"
     CG = vv.ConstraintGroup
     foobar = vv.Field('foo.bar')
     obj = CG(foobar)
     op, val = vv.ConstraintOperator('>'), 10
     obj.add_constraint(op, val)
     obj.add_existence(rev=False)
     # expect 1 constraint and auxiliary existence constraint
     self.failUnless(len(obj.constraints) == 1)
     self.failUnlessEqual(obj.constraints[0].op, op)
     self.failUnlessEqual(obj.constraints[0].value, val)
     self.failUnlessEqual(len(obj.existence_constraints), 1)
     self.failUnless(obj.existence_constraints[0].op.is_exists())
     self.failUnlessEqual(obj.existence_constraints[0].value, True)
Ejemplo n.º 7
0
 def test_Projection(self):
     """Test Projection class
     """
     # Empty
     p = vv.Projection()
     self.failUnlessEqual(p.to_mongo(), {})
     # 1 field
     p.add(vv.Field('one'))
     expect = {'one': 1}
     self.failUnlessEqual(p.to_mongo(), expect)
     # 1 field with static size
     szop = vv.ConstraintOperator(vv.ConstraintOperator.SIZE)
     p.add(vv.Field('one'), szop, 10)
     expect.update({'one': {'$slice': 11}})
     self.failUnlessEqual(p.to_mongo(), expect)
     # a field with variable size
     szop = vv.ConstraintOperator(vv.ConstraintOperator.SIZE + '$')
     p.add(vv.Field('two'), szop, 'foo')
     expect.update({'two': 1, 'foo': 1})
     self.failUnlessEqual(p.to_mongo(), expect)
     # subfields
     p = vv.Projection()
     p.add(vv.Field('a/bee'))
     self.failUnlessEqual(p.to_mongo(), {'a.bee': 1})
Ejemplo n.º 8
0
 def test_ConstraintOperator_type(self):
     "Test the ConstraintOperator class for types"
     obj = vv.ConstraintOperator('type')
     self.failUnless(obj.is_type())
Ejemplo n.º 9
0
 def test_ConstraintOperator_rev(self):
     "Test the ConstraintOperator class, reverse."
     obj = vv.ConstraintOperator('=')
     obj.reverse()
     self.failUnless(obj.is_neq())
Ejemplo n.º 10
0
 def test_ConstraintOperator_ineq(self):
     "Test the ConstraintOperator class, inequalities."
     for ineq in '<', '>', '>=', '<=':
         obj = vv.ConstraintOperator('>')
         self.failUnless(obj.is_inequality())
Ejemplo n.º 11
0
 def test_ConstraintOperator_type(self):
     "Test the ConstraintOperator class for types"
     obj = vv.ConstraintOperator('type')
     self.assertTrue(obj.is_type())