def setUp(self): self.ctx = StartApp(["--cfgengine=ConfigYaml", "--cfgfile=tests/test.yaml", "--testmode"])
class attribTest(unittest.TestCase): def setUp(self): self.ctx = StartApp(["--cfgengine=ConfigYaml", "--cfgfile=tests/test.yaml", "--testmode"]) def tearDown(self,): self.ctx.close() def testCreate(self): p = fakeParent() attr=MMAttribute("document","test\n----\n\n\nA Message",p) #sys.stderr.write(str(attr.get_raw_rst)) self.assertEqual(attr.get_raw_rst(),"test\n----\n\n\nA Message") attr2 =MMAttribute("otherdoc",attr.get_value(),p) self.assertEqual(attr.get_value(),attr2.get_value()) self.assertFalse(attr.get_value() is attr2.get_value()) attr3 =MMAttribute("otherdoc",attr.get_value(),p ,copy = False) self.assertEqual(attr.get_value(),attr3.get_value()) self.assertTrue(attr.get_value() is attr3.get_value()) # TODO # Test MMObject fetching # Test handling of parse errors. # Test AttributeValue export resolution. def testAttrValExport(self): attr=MMAttribute("document","test\n----\n\n\nA Message",None) self.assertEquals("test\n----\n\n\nA Message",attr.get_raw()) # XXX Commented out as I don't believe this test # makes sense since we've added transactions. # as Attribute no handle saving themselves to the store # and don't rely on the owners (or parents in the old nomenclature) # # I've left this code to jog memories in case I'm wrong. # # def testAttrParentStuff(self): # p = fakeParent() # attr=MMAttribute("document","test\n----\n\n\nA Message",p) # # attr.set_value("diff") # self.assertTrue(p.Updated()) # v1 = attr.get_value() # self.assertEquals("diff",str(v1)) def testNotify(self): def testexpect(obj): self.exception = None try: self.assertEquals(str(obj) , self.val) except Exception, e: self.exception =e def update(obj): update.count+=1 update.count = 0 p = fakeParent() attr=MMAttribute("document","test\n----\n\n\nA Message",p) attr.register_notify(update) attr.register_notify(testexpect) self.assertEquals(update.count,0) self.val = "diff" attr.set_value(self.val) self.assertEquals(update.count,1) if self.exception: raise self.exception self.val = "diff" attr.unregister_notify(update) self.val ="baz" attr.set_value(self.val) self.assertEquals(update.count,1) if self.exception: raise self.exception