Esempio n. 1
0
 def setUp(self):
     self.ctx = StartApp(["--cfgengine=ConfigYaml", "--cfgfile=tests/test.yaml", "--testmode"])    
Esempio n. 2
0
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