Commit d25ac9ca by Kazuhiko Shiozaki

fixup! Predicate: ignore empty value in _identity_criterion.

1 parent e368cf4f
......@@ -591,6 +591,46 @@ class TestPredicates(TestPredicateMixIn):
)
self.assert_(test(predicate_with_membership_values.searchResults))
def test_PropertyCriterion(self):
movement = newTempMovement(self.portal, 'tmp')
predicate = self.createPredicate()
predicate.setCriterionPropertyList(['quantity'])
request = self.portal.REQUEST
request.set(
'listbox',
{'quantity': {'max': '', 'identity': [], 'min': ''}},
)
predicate.Predicate_edit('Predicate_view')
self.assertEqual(predicate._identity_criterion, {'quantity': []})
self.assertEqual(predicate._range_criterion, {})
self.assertTrue(predicate.test(movement))
request.set(
'listbox',
{'quantity': {'max': '', 'identity': [], 'min': 1.0}},
)
predicate.Predicate_edit('Predicate_view')
self.assertEqual(predicate._range_criterion, {'quantity': (1.0, None)})
self.assertFalse(predicate.test(movement.asContext(quantity=0.5)))
self.assertTrue(predicate.test(movement.asContext(quantity=1.0)))
request.set(
'listbox',
{'quantity': {'max': 2.0, 'identity': [], 'min': ''}},
)
predicate.Predicate_edit('Predicate_view')
self.assertEqual(predicate._range_criterion, {'quantity': (None, 2.0)})
self.assertFalse(predicate.test(movement.asContext(quantity=2.0)))
self.assertTrue(predicate.test(movement.asContext(quantity=1.5)))
request.set(
'listbox',
{'quantity': {'max': 2.0, 'identity': [], 'min': 1.0}},
)
predicate.Predicate_edit('Predicate_view')
self.assertEqual(predicate._range_criterion, {'quantity': (1.0, 2.0)})
self.assertFalse(predicate.test(movement.asContext(quantity=0.5)))
self.assertTrue(predicate.test(movement.asContext(quantity=1.0)))
self.assertTrue(predicate.test(movement.asContext(quantity=1.5)))
self.assertFalse(predicate.test(movement.asContext(quantity=2.0)))
def test_searchResultsWithParameters(self):
"""
Check that we can restrict filter used by predicate passing parameters to
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!