class TestCase(DefaultTestFixture): def setUp(self): DefaultTestFixture.setUp(self) self.formatter = SGMLFormatter() return def test_complete_output(self): self.formatter.open_tag('html') self.formatter.open_tag('title') self.formatter.add_text('title text') self.formatter.close_tag() self.formatter.open_tag('body') self.formatter.add_text('body text') self.formatter.single_tag('br') self.formatter.open_close_tag('img', src='image_source', x='image_x', y='image_y') self.formatter.close_tag('body') output = self.formatter.output_complete() self.failUnless(output == _html, 'output = %r\n\nhtml = %r' % (output, _html)) def test_partial_output(self): self.formatter.open_tag('html') self.formatter.open_tag('title') self.formatter.add_text('title text') self.formatter.close_tag() output = self.formatter.output() self.failUnless(output == _html[0:35], 'output = %r\n\nhtml = %r' % (output, _html[0:35])) self.formatter.open_tag('body') output = self.formatter.output() self.failUnless(output == _html[35:43], 'output = %r\n\nhtml = %r' % (output, _html[35:43])) self.formatter.add_text('body text') self.formatter.single_tag('br') self.formatter.open_close_tag('img', src='image_source', x='image_x', y='image_y') self.formatter.close_tag('body') self.formatter.close_tag() output = self.formatter.output() self.failUnless(output == _html[43:], 'output = %r\n\nhtml = %r' % (output, _html[43:]))
def format(self, stateevent): actionevent = stateevent.action alarmevent = stateevent.get_alarm_event() alarm = alarmevent.source entry = {} entry['alarm'] = alarm.name entry['description'] = alarm.description entry['origin'] = alarmevent.origin entry['GUID'] = alarmevent.GUID entry['stateGUID'] = stateevent.GUID entry['actionGUID'] = actionevent.GUID entry['timestamp'] = actionevent.timestamp entry['datetime'] = self.datetime(actionevent.timestamp) entry['state'] = stateevent.name if alarm.priority: entry['priority'] = alarm.priority else: entry['priority'] = 'Normal' entry['actuator'] = actionevent.actuatorstr entry['context'] = actionevent.context entry['action'] = stateevent.tostring() message = '<?xml version="1.0" encoding="utf-8"?>\n' formatter = SGMLFormatter() formatter.open_tag('event') for name, value in entry.items(): formatter.open_tag(name) formatter.add_text(str(value)) formatter.close_tag(name, True) formatter.close_tag('event') return message + formatter.output_complete()