Esempio n. 1
0
 def start_suite(self, suite):
     self._output.library_listeners.new_suite_scope()
     result = TestSuite(source=suite.source,
                        name=suite.name,
                        doc=suite.doc,
                        metadata=suite.metadata,
                        starttime=get_timestamp(),
                        rpa=self._settings.rpa)
     if not self.result:
         self.result = Result(root_suite=result, rpa=self._settings.rpa)
         self.result.configure(status_rc=self._settings.status_rc,
                               stat_config=self._settings.statistics_config)
     else:
         self._suite.suites.append(result)
     self._suite = result
     self._suite_status = SuiteStatus(self._suite_status,
                                      self._settings.exit_on_failure,
                                      self._settings.exit_on_error,
                                      self._settings.skip_teardown_on_exit)
     ns = Namespace(self._variables, result, suite.resource)
     ns.start_suite()
     ns.variables.set_from_variable_table(suite.resource.variables)
     EXECUTION_CONTEXTS.start_suite(result, ns, self._output,
                                    self._settings.dry_run)
     self._context.set_suite_variables(result)
     if not self._suite_status.failed:
         ns.handle_imports()
         ns.variables.resolve_delayed()
     result.doc = self._resolve_setting(result.doc)
     result.metadata = [(self._resolve_setting(n), self._resolve_setting(v))
                        for n, v in result.metadata.items()]
     self._context.set_suite_variables(result)
     self._output.start_suite(
         ModelCombiner(suite,
                       result,
                       tests=suite.tests,
                       suites=suite.suites,
                       test_count=suite.test_count))
     self._output.register_error_listener(self._suite_status.error_occurred)
     self._run_setup(suite.setup, self._suite_status)
     self._executed_tests = NormalizedDict(ignore='_')
 def setUp(self):
     self.suite = TestSuite()
     self.suite.setup.config(kwname='s')
     self.suite.teardown.config(kwname='t')
     s1 = self.suite.suites.create()
     s1.setup.config(kwname='s1')
     tc = s1.tests.create()
     tc.setup.config(kwname='tcs')
     tc.teardown.config(kwname='tct')
     tc.body = [Keyword(), Keyword(), Keyword()]
     tc.body[0].body = [
         Keyword(), Keyword(),
         Message(), Message(),
         Message()
     ]
     tc.body[0].teardown.config(kwname='kt')
     s2 = self.suite.suites.create()
     t1 = s2.tests.create()
     t2 = s2.tests.create()
     t1.body = [Keyword()]
     t2.body = [Keyword(), Keyword()]
Esempio n. 3
0
 def test_status_propertys(self):
     suite = TestSuite()
     assert_false(suite.passed)
     assert_false(suite.failed)
     assert_true(suite.skipped)
     assert_false(suite.not_run)
     suite.tests.create(status='SKIP')
     assert_false(suite.passed)
     assert_false(suite.failed)
     assert_true(suite.skipped)
     assert_false(suite.not_run)
     suite.tests.create(status='PASS')
     assert_true(suite.passed)
     assert_false(suite.failed)
     assert_false(suite.skipped)
     assert_false(suite.not_run)
     suite.tests.create(status='FAIL')
     assert_false(suite.passed)
     assert_true(suite.failed)
     assert_false(suite.skipped)
     assert_false(suite.not_run)
Esempio n. 4
0
 def start_suite(self, suite):
     variables = GLOBAL_VARIABLES.copy()
     variables.set_from_variable_table(suite.variables)
     result = TestSuite(source=suite.source,
                        name=suite.name,
                        doc=suite.doc,
                        metadata=suite.metadata,
                        starttime=get_timestamp())
     if not self.result:
         result.set_criticality(self._settings.critical_tags,
                                self._settings.non_critical_tags)
         self.result = Result(root_suite=result)
         self.result.configure(status_rc=self._settings.status_rc,
                               stat_config=self._settings.statistics_config)
     else:
         self._suite.suites.append(result)
     ns = Namespace(result, variables, self._variables,
                    suite.user_keywords, suite.imports)
     EXECUTION_CONTEXTS.start_suite(ns, self._output, self._settings.dry_run)
     self._context.set_suite_variables(result)
     if not (self._suite_status and self._suite_status.failures):
         ns.handle_imports()
     variables.resolve_delayed()
     result.doc = self._resolve_setting(result.doc)
     result.metadata = [(self._resolve_setting(n), self._resolve_setting(v))
                        for n, v in result.metadata.items()]
     self._context.set_suite_variables(result)
     self._suite = result
     self._suite_status = SuiteStatus(self._suite_status,
                                      self._settings.exit_on_failure,
                                      self._settings.exit_on_error,
                                      self._settings.skip_teardown_on_exit)
     self._output.start_suite(ModelCombiner(result, suite,
                                            tests=suite.tests,
                                            suites=suite.suites,
                                            test_count=suite.test_count))
     self._output.register_error_listener(self._suite_status.error_occurred)
     self._run_setup(suite.keywords.setup, self._suite_status)
     self._executed_tests = NormalizedDict(ignore='_')
Esempio n. 5
0
 def test_deeper_level(self):
     PASS = TestCase(status='PASS')
     FAIL = TestCase(status='FAIL')
     suite = TestSuite(name='1')
     suite.suites = [TestSuite(name='1'), TestSuite(name='2'), TestSuite(name='3')]
     suite.suites[0].suites = [TestSuite(name='1')]
     suite.suites[1].suites = [TestSuite(name='1'), TestSuite(name='2')]
     suite.suites[2].tests = [PASS, FAIL]
     suite.suites[0].suites[0].suites = [TestSuite(name='1')]
     suite.suites[1].suites[0].tests = [PASS, PASS, PASS, FAIL]
     suite.suites[1].suites[1].tests = [PASS, PASS, FAIL, FAIL]
     suite.suites[0].suites[0].suites[0].tests = [FAIL, FAIL, FAIL]
     s1 = Statistics(suite, suite_stat_level=3).suite
     verify_suite(s1, '1', 's1', 6, 7)
     [s11, s12, s13] = s1.suites
     verify_suite(s11, '1.1', 's1-s1', 0, 3)
     verify_suite(s12, '1.2', 's1-s2', 5, 3)
     verify_suite(s13, '1.3', 's1-s3', 1, 1)
     [s111] = s11.suites
     verify_suite(s111, '1.1.1', 's1-s1-s1', 0, 3)
     [s121, s122] = s12.suites
     verify_suite(s121, '1.2.1', 's1-s2-s1', 3, 1)
     verify_suite(s122, '1.2.2', 's1-s2-s2', 2, 2)
     assert_equal(len(s111.suites), 0)
Esempio n. 6
0
 def test_suite_status_is_pass_if_only_passed_tests(self):
     suite = TestSuite()
     for i in range(10):
         suite.tests.create(status='PASS')
     assert_equal(suite.status, 'PASS')
Esempio n. 7
0
 def test_suite_status_is_skip_if_there_are_no_tests(self):
     assert_equal(TestSuite().status, 'SKIP')
Esempio n. 8
0
 def test_testsuite(self):
     self._verify(TestSuite())
Esempio n. 9
0
 def _test_suite_elapsed_time_is_test_time(self):
     suite = TestSuite()
     suite.tests.create(starttime='19991212 12:00:00.010',
                        endtime='19991212 13:00:01.010')
     assert_equal(suite.elapsedtime, 3610000)
Esempio n. 10
0
 def test_suite_status_is_fail_if_failed_subsuite(self):
     suite = TestSuite()
     suite.suites.create().tests.create(status='FAIL')
     assert_equal(suite.status, 'FAIL')
     suite.tests.create(status='PASS')
     assert_equal(suite.status, 'FAIL')
Esempio n. 11
0
 def test_suite_status_is_passed_by_default(self):
     assert_equal(TestSuite().status, 'PASS')
Esempio n. 12
0
 def setUp(self):
     self.suite = TestSuite()
     self.suite.tests = [TestCase()]
     self.suite.suites = [TestSuite()]
     self.suite.suites[0].tests = [TestCase(tags=['tag'])]
Esempio n. 13
0
 def _get_suite_with_keywords(self):
     suite = TestSuite(name='root')
     suite.keywords = [Keyword('k1', type='setup'), Keyword('k2', type='teardown')]
     suite.keywords[0].keywords = [Keyword('k1-k2')]
     return suite
Esempio n. 14
0
 def setUp(self):
     self.suite = TestSuite(name='Suite', metadata={'A A': '1', 'bb': '1'})
     self.suite.tests.create(name='Make suite non-empty')
Esempio n. 15
0
 def test_remove_passed_does_not_remove_when_test_contains_warning(self):
     suite = TestSuite()
     test = self._test_with_warning(suite)
     self._remove_passed(suite)
     assert_equal(len(test.keywords[0].keywords), 1)
     assert_equal(len(test.keywords[1].messages), 1)
Esempio n. 16
0
 def test_empty_suite(self):
     suite = TestSuite(name='x')
     suite.visit(SuiteConfigurer(empty_suite_ok=True))
     assert_raises_with_msg(DataError, "Suite 'x' contains no tests.",
                            suite.visit, SuiteConfigurer())
Esempio n. 17
0
 def setUp(self):
     self.suite = TestSuite()
     self.sub = self.suite.suites.create()
Esempio n. 18
0
 def test_critical_with_parent(self):
     suite = TestSuite()
     assert_equal(suite.tests.create().critical, True)
     suite.set_criticality(critical_tags=['crit'])
     assert_equal(suite.tests.create().critical, False)
     assert_equal(suite.tests.create(tags=['crit']).critical, True)
Esempio n. 19
0
 def test_suite_status_is_pass_if_passed_and_skipped(self):
     suite = TestSuite()
     for i in range(5):
         suite.tests.create(status='PASS')
         suite.tests.create(status='SKIP')
     assert_equal(suite.status, 'PASS')
Esempio n. 20
0
 def test_relative_source(self):
     self._verify_suite(TestSuite(source='non-existing'), source='non-existing')
     source = join(CURDIR, 'test_jsmodelbuilders.py')
     self._verify_suite(TestSuite(source=source), source=source,
                        relsource=basename(source))
Esempio n. 21
0
 def test_suite_status_is_skip_if_only_skipped_tests(self):
     suite = TestSuite()
     for i in range(10):
         suite.tests.create(status='SKIP')
     assert_equal(suite.status, 'SKIP')
     assert_true(suite.skipped)
 def _get_suite_with_keywords(self):
     suite = TestSuite(name='root')
     suite.setup.config(kwname='k1', type='setup')
     suite.teardown.config(kwname='k2', type='teardown')
     suite.setup.keywords.create('k1-k2')
     return suite
Esempio n. 23
0
 def _get_suite_with_keywords(self):
     suite = TestSuite(name='root')
     suite.setup.config(kwname='k1')
     suite.teardown.config(kwname='k2')
     suite.setup.body.create_keyword('k1-k2')
     return suite
Esempio n. 24
0
 def test_suite_passed(self):
     suite = TestSuite()
     assert_equal(suite.passed, True)
     suite.tests.create(status='FAIL')
     assert_equal(suite.passed, False)
     assert_raises(AttributeError, setattr, TestSuite(), 'passed', True)
Esempio n. 25
0
 def test_suite_with_values(self):
     suite = TestSuite('Name', 'Doc', {'m1': 'v1', 'M2': 'V2'}, None, 'Message',
                       '20111204 19:00:00.000', '20111204 19:00:42.001')
     self._verify_suite(suite, 'Name', 'Doc', ('m1', '<p>v1</p>', 'M2', '<p>V2</p>'),
                        message='Message', start=0, elapsed=42001)
Esempio n. 26
0
 def test_suite_status_cannot_be_set_directly(self):
     suite = TestSuite()
     for attr in 'status', 'passed', 'failed', 'skipped', 'not_run':
         assert_true(hasattr(suite, attr))
         assert_raises(AttributeError, setattr, suite, attr, True)
Esempio n. 27
0
 def test_suite_html_formatting(self):
     self._verify_suite(TestSuite(name='*xxx*', doc='*bold* <&>',
                                  metadata={'*x*': '*b*', '<': '>'}),
                        name='*xxx*', doc='<b>bold</b> &lt;&amp;&gt;',
                        metadata=('*x*', '<p><b>b</b></p>', '&lt;', '<p>&gt;</p>'))
Esempio n. 28
0
 def test_suite_elapsed_time_when_start_and_end_given(self):
     suite = TestSuite()
     suite.starttime = '20010101 10:00:00.000'
     suite.endtime = '20010101 10:00:01.234'
     assert_equal(suite.elapsedtime, 1234)
 def test_default_suite(self):
     self._verify_suite(TestSuite())
Esempio n. 30
0
 def test_suite_elapsed_time_is_zero_by_default(self):
     suite = TestSuite()
     assert_equal(suite.elapsedtime, 0)