class PredicateFactoryTest(TestCase): def setUp(self): self.mox = mox.Mox() self.comp_name = "Test Predicate Or" self.predat = SimplePredicate("a", ThreadSafeObject({})) self.predat.set_met(True) self.predbt = SimplePredicate("b", ThreadSafeObject({})) self.predbt.set_met(True) self.predaf = SimplePredicate("a", ThreadSafeObject({})) self.predbf = SimplePredicate("b", ThreadSafeObject({})) self.list = [self.predaf, self.predbf, self.predat, self.predbt] self.factory = PredicateFactory(component_name="factory", zkclient=None, proc_client=None, system=None, pred_list=self.list, settings={}) def tearDown(self): pass def test_match(self): new = SimplePredicate("a", ThreadSafeObject({})) ret = self.factory._ensure_new(new) self.assertTrue(new is not ret) def test_no_match(self): new = SimplePredicate("c", ThreadSafeObject({})) ret = self.factory._ensure_new(new) self.assertTrue(new is ret)
class PredicateFactoryTest(TestCase): def setUp(self): self.mox = mox.Mox() self.comp_name = "Test Predicate Or" self.predat = SimplePredicate("a", ThreadSafeObject({})) self.predat.set_met(True) self.predbt = SimplePredicate("b", ThreadSafeObject({})) self.predbt.set_met(True) self.predaf = SimplePredicate("a", ThreadSafeObject({})) self.predbf = SimplePredicate("b", ThreadSafeObject({})) self.list = [self.predaf, self.predbf, self.predat, self.predbt] self.factory = PredicateFactory(component_name="factory", parent=None, zkclient=None, proc_client=None, system=None, pred_list=self.list, settings={}) def tearDown(self): pass def test_match(self): new = SimplePredicate("a", ThreadSafeObject({})) ret = self.factory._ensure_new(new) self.assertTrue(new is not ret) def test_no_match(self): new = SimplePredicate("c", ThreadSafeObject({})) ret = self.factory._ensure_new(new) self.assertTrue(new is ret)
def _create_simple_pred(self, cname=None, met=None): if cname is None: cname = self.comp_name s = SimplePredicate(cname, parent='foo') if met is not None: s.set_met(met) return s
def _create_dummy_predicate(self): # to catch the case where there are no predicates """ A dummy predicate will be returned by the factory if there are no predicates, or if the config has an unknown predicate type. :rtype: zoom.agent.predicate.simple.SimplePredicate """ dummy = SimplePredicate(self._component_name, self._settings, parent=self._parent) dummy.set_met(True) return dummy