def test_restrict_all_permissive(self): JeevesLib.clear_cache() x = JeevesLib.mkLabel('x') JeevesLib.restrict(x, lambda _: True) self.assertTrue(JeevesLib.concretize(None, x)) # Now we test the cache. self.assertTrue(JeevesLib.concretize(None, x)) self.assertEqual(len(JeevesLib.get_cache()), 1)
def test_restrict_with_sensitive_value(self): JeevesLib.clear_cache() x = JeevesLib.mkLabel('x') JeevesLib.restrict(x, lambda y: y == 2) value = JeevesLib.mkSensitive(x, 42, 41) self.assertEquals(JeevesLib.concretize(2, value), 42) self.assertEquals(JeevesLib.concretize(2, value), 42) self.assertEquals(JeevesLib.concretize(1, value), 41) self.assertEquals(JeevesLib.concretize(1, value), 41) self.assertEquals(len(JeevesLib.get_cache()), 2)