import unittest from narval import AL_NS from narval.reader import REGISTRY as reg from narval.elements import core reg.register_class(core.ErrorElement) reg.register_class(core.StartPlanElement) reg.register_class(core.ListenOnElement) reg.register_class(core.QuitElement) class BaseElementTC(unittest.TestCase): xml_string = None def setUp(self): self.elmt = reg.from_string(self.xml_string)[0] def _test_roundtrip(self): clone = reg.from_string(self.elmt.as_xml())[0] self.assertEquals(self.elmt._ns_attrs, clone._ns_attrs) return clone # error ####################################################################### class ErrorElementTC(BaseElementTC): xml_string = 'message' % AL_NS def test_base(self): self.assertEquals(self.elmt.type, "gargl") self.assertEquals(self.elmt.msg, 'message') def test_roundtrip(self): self._test_roundtrip() # start plan ################################################################## class StartPlanElementTC(BaseElementTC): xml_string = ''% AL_NS def test_base(self): self.assertEquals(self.elmt.recipe, "truc.bidule") self.assertEquals(self.elmt.time, None) self.assertEquals(self.elmt.delay, None) def test_roundtrip(self): clone = self._test_roundtrip() self.assertEquals(self.elmt.time, clone.time) self.assertEquals(self.elmt.delay, clone.delay) class StartPlanElementTC1(StartPlanElementTC): xml_string = ''' ''' % AL_NS def test_base(self): self.assertEquals(self.elmt.recipe, "truc.bidule") self.assertEquals(self.elmt.time, ('*', '*', u'4', '*', '*', u'5') ) self.assertEquals(self.elmt.delay, None) class StartPlanElementTC2(StartPlanElementTC): xml_string = ''' ''' % AL_NS def test_base(self): self.assertEquals(self.elmt.recipe, "truc.bidule") self.assertEquals(self.elmt.time, None) self.assertEquals(self.elmt.delay, 4+5*60*60 ) # listen on ################################################################### class ListenOnElementTC(BaseElementTC): xml_string = '' % AL_NS def test_base(self): self.assertEquals(self.elmt.port, 80) self.assertEquals(self.elmt.type, 'web') self.assertEquals(self.elmt.host, 'localhost') def test_roundtrip(self): self._test_roundtrip() class ListenOnElementTC2(ListenOnElementTC): xml_string = '' % AL_NS def test_base(self): self.assertEquals(self.elmt.port, 80) self.assertEquals(self.elmt.type, 'web') self.assertEquals(self.elmt.host, 'crater') # quit ######################################################################## class QuitElementTC(BaseElementTC): xml_string = '' % AL_NS def test_roundtrip(self): self._test_roundtrip() if __name__ == '__main__': unittest.main()