Ejemplo n.º 1
0
 def test_aggregation(self):
     reader = self.get_reader()
     obj = FunctionalAggregator()
     obj.prepare()
     obj.add_underling(reader)
     obj.process_readers()
     tree = obj.cumulative_results
     self.assertEqual({"Tests2", "Tests1"}, set(tree.test_suites()))
     self.assertEqual(len(tree.test_cases("Tests1")), 8)
     self.assertEqual(len(tree.test_cases("Tests2")), 3)
     obj.post_process()
Ejemplo n.º 2
0
 def test_aggregation(self):
     reader = self.get_reader()
     obj = FunctionalAggregator()
     obj.prepare()
     obj.add_underling(reader)
     obj.process_readers()
     tree = obj.cumulative_results
     self.assertEqual({"Tests2", "Tests1"}, set(tree.test_suites()))
     self.assertEqual(len(tree.test_cases("Tests1")), 8)
     self.assertEqual(len(tree.test_cases("Tests2")), 3)
     obj.post_process()
Ejemplo n.º 3
0
 def test_report_transactions_as_failed(self):
     self.configure({
         "execution": [{
             "test-mode": "apiritif",
             "iterations": 1,
             "scenario": {
                 "default-address":
                 "http://httpbin.org",
                 "requests": [{
                     "label": "failure by 404",
                     "url": "/status/404",
                 }]
             }
         }]
     })
     self.obj.engine.aggregator = FunctionalAggregator()
     self.obj.prepare()
     try:
         self.obj.startup()
         while not self.obj.check():
             time.sleep(self.obj.engine.check_interval)
     finally:
         self.obj.shutdown()
     self.obj.post_process()
     self.assertNotEquals(self.obj.process, None)
     reader = LoadSamplesReader(
         os.path.join(self.obj.engine.artifacts_dir, "apiritif.0.ldjson"),
         self.obj.log)
     samples = list(reader._read(last_pass=True))
     self.assertEqual(len(samples), 1)
     tstmp, label, concur, rtm, cnn, ltc, rcd, error, trname, byte_count = samples[
         0]
     self.assertIsNotNone(error)
Ejemplo n.º 4
0
 def test_setup_exception(self):
     """
     Do not crash when test's setUp/setUpClass fails
     :return:
     """
     self.obj.execution.merge({"scenario": {
         "script": RESOURCES_DIR + "selenium/python/test_setup_exception.py"
     }})
     self.obj.engine.aggregator = FunctionalAggregator()
     self.obj.prepare()
     self.obj.startup()
     while not self.obj.check():
         time.sleep(self.obj.engine.check_interval)
     diagnostics = "\n".join(self.obj.get_error_diagnostics())
     self.assertIn("Nothing to test", diagnostics)
Ejemplo n.º 5
0
 def test_func_mode(self):
     self.obj.engine.aggregator = FunctionalAggregator()
     self.obj.execution.merge({
         "iterations": 10,
         "scenario": {"script": RESOURCES_DIR + "selenium/invalid/SimpleTest.java"},
     })
     self.obj.settings.merge({"junit-version": 5})
     self.obj.prepare()
     self.obj.engine.aggregator.prepare()
     self.obj.startup()
     while not self.obj.check():
         time.sleep(self.obj.engine.check_interval)
     self.obj.shutdown()
     self.obj.post_process()
     self.obj.engine.aggregator.post_process()
     self.assertTrue(self.obj.has_results())
     self.assertTrue(self.obj.report_file.endswith(".ldjson"))
     self.assertIsInstance(self.obj.reader, FuncSamplesReader)
Ejemplo n.º 6
0
    def test_func_mode(self):
        self.obj.engine.aggregator = FunctionalAggregator()
        self.obj.execution.merge({
            "iterations": 10,
            "scenario": {"script": RESOURCES_DIR + "selenium/invalid/SimpleTest.java"},
        })
        self.obj.settings.merge({"junit-version": 5})
        self.obj._compile_scripts = lambda: None
        self.obj.prepare()
        self.obj.engine.aggregator.prepare()
        self.obj.engine.start_subprocess = lambda **kwargs: None
        self.obj.startup()
        self.obj.post_process()
        self.obj.engine.aggregator.post_process()

        self.obj.reader.report_reader.json_reader.file.close()

        self.assertTrue(self.obj.report_file.endswith(".ldjson"))
        self.assertIsInstance(self.obj.reader, FuncSamplesReader)
Ejemplo n.º 7
0
 def test_status_skipped(self):
     self.configure({
         "execution": [{
             "iterations": 1,
             "scenario": {
                 "script": RESOURCES_DIR + "functional/test_all.py"
             }
         }]
     })
     self.obj.engine.aggregator = FunctionalAggregator()
     self.obj_prepare()
     try:
         self.obj.startup()
         while not self.obj.check():
             time.sleep(self.obj.engine.check_interval)
     finally:
         self.obj.shutdown()
         self.obj.post_process()
     reader = FuncSamplesReader(os.path.join(self.obj.engine.artifacts_dir, "apiritif.0.ldjson"),
                                self.obj.engine, self.obj.log)
     samples = list(reader.read(last_pass=True))
     self.assertEqual(len(samples), 4)
     self.assertIsNotNone(samples[-1].status)
Ejemplo n.º 8
0
 def test_listeners(self):
     listener = MockFunctionalListener()
     obj = FunctionalAggregator()
     obj.prepare()
     obj.add_underling(self.get_reader())
     obj.add_listener(listener)
     obj.check()
     obj.post_process()
     self.assertEqual(len(listener.results), 1)
Ejemplo n.º 9
0
 def test_listeners(self):
     listener = MockFunctionalListener()
     obj = FunctionalAggregator()
     obj.prepare()
     obj.add_underling(self.get_reader())
     obj.add_listener(listener)
     obj.check()
     obj.post_process()
     self.assertEqual(len(listener.results), 1)