Revision: 59ecb4e81996
Author: Mikko Korpela <[email protected]>
Date: Fri Nov 11 01:32:08 2011
Log: test for test case jsoning
http://code.google.com/p/robotframework/source/detail?r=59ecb4e81996
Modified:
/utest/result/test_jsoning.py
=======================================
--- /utest/result/test_jsoning.py Thu Nov 10 23:55:37 2011
+++ /utest/result/test_jsoning.py Fri Nov 11 01:32:08 2011
@@ -6,6 +6,8 @@
from robot.reporting.parsingcontext import Context
from robot.result.datamodel import DatamodelVisitor
from robot.result.jsondatamodelhandlers import _Handler, KeywordHandler,
_StatusHandler
+from robot.result.testcase import TestCase
+from robot.result.testsuite import TestSuite
from robot.utils.asserts import assert_equals
@@ -88,6 +90,54 @@
def _assert_html_text(self, text_index, text):
self._assert_text(text_index, utils.html_escape(text))
+ def test_testcase_jsoning(self):
+ self._context.start_suite()
+ test = TestCase(name='Foo Bar', doc='Test case doc',
tags=['foo', 'bar'],
+ timeout='1000 years',
+ status='FAIL',
+ message='iz failz!',
+ starttime='20000101 01:00:00.000',
+ endtime='30000101 01:00:00.001')
+ parent = lambda:0
+ parent.critical = parent
+ parent.test_is_critical = lambda *args: True
+ test.parent = parent
+ test.keywords.create(name=':FOR ${i} IN RANGE 123', type='for',
+ status='FAIL',
+ starttime='20000101 01:00:01.001',
+ endtime='30000101 01:00:00.001').\
+ keywords.create(type='foritem', status='FAIL',
+ starttime='20000101 01:00:00.999',
+ endtime='30000101 01:00:00.001').\
+ keywords.create(type='kw', name='Sleep forever',
+ status='FAIL',
+ starttime='20000101 01:00:01.000',
+ endtime='30000101 01:00:00.001')
+ test.visit(self)
+ self._verify_test(self.datamodel[0], test)
+
+ def _verify_test(self, test_json, test):
+ self._assert_text(test_json[0], test.name)
+ self._assert_text(test_json[1], test.timeout)
+ assert_equals(test_json[2], int(test.critical == 'yes'))
+ self._assert_text(test_json[3], test.doc)
+ self._verify_tags(test_json[4], test.tags)
+ self._assert_text(test_json[5][0],
_StatusHandler._statuses[test.status])
+ assert_equals(test_json[5][1], self._millis(test.starttime))
+ if test.starttime != 'N/A':
+ assert_equals(test_json[5][2],
self._millis(test.endtime)-self._millis(test.starttime))
+ if test.message != '':
+ self._assert_text(test_json[5][3], test.message)
+ for index, keyword in enumerate(test.keywords):
+ self._verify_keyword(test_json[6][index], keyword)
+
+
+ def _verify_tags(self, tags_json, tags):
+ assert_equals(len(tags_json), len(tags))
+ for tag_json, tag in zip(tags_json, tags):
+ self._assert_text(tag_json, tag)
+
+
if __name__ == '__main__':
unittest.main()