Esempio n. 1
0
    def test_can_read_output(self, tempdir):
        report = TestReport()
        runner = TestRunner(report, tempdir)

        test_case = self.create_test("test", True)
        test_list = TestList()
        test_list.add_test(test_case)

        def side_effect(read_output, **kwargs):  # pylint: disable=unused-argument
            """
            Side effect that print output to stdout
            """
            print("out1", end="")
            print("out2", end="")
            assert read_output() == "out1out2"
            print("out3", end="")
            print("out4", end="")
            assert read_output() == "out1out2out3out4"
            print("out5", end="")
            return True

        test_case.run_side_effect = side_effect
        runner.run(test_list)
        self.assertTrue(report.result_of("test").passed)
        self.assertEqual(report.result_of("test").output, "out1out2out3out4out5")
Esempio n. 2
0
 def _run_test(self, test_cases):
     report = TestReport(printer=self._printer)
     runner = TestRunner(report,
                         join(self._output_path, "tests"),
                         verbose=self._verbose)
     runner.run(test_cases)
     return report
Esempio n. 3
0
    def setUp(self):
        self._tests = []
        self.output_path = join(dirname(__file__), "test_runner_out")

        if exists(self.output_path):
            rmtree(self.output_path)

        self.report = TestReport()
        self.runner = TestRunner(self.report, self.output_path)
Esempio n. 4
0
 def _run_test(self, test_cases, report):
     """
     Run the test suites and return the report
     """
     runner = TestRunner(report,
                         join(self._output_path, "tests"),
                         verbose=self._verbose,
                         num_threads=self._num_threads)
     runner.run(test_cases)
Esempio n. 5
0
    def test_handles_python_exeception(self):
        report = TestReport()
        runner = TestRunner(report, self.output_path)

        test_case = self.create_test("test", True)
        test_list = TestList()
        test_list.add_test(test_case)
        test_case.run.side_effect = KeyError
        runner.run(test_list)
        self.assertTrue(report.result_of("test").failed)
Esempio n. 6
0
    def test_handles_python_exeception(self, tempdir):
        report = TestReport()
        runner = TestRunner(report, tempdir)

        test_case = self.create_test("test", True)
        test_list = TestList()
        test_list.add_test(test_case)

        def side_effect(*args, **kwargs):  # pylint: disable=unused-argument
            raise KeyError

        test_case.run_side_effect = side_effect
        runner.run(test_list)
        self.assertTrue(report.result_of("test").failed)
Esempio n. 7
0
    def test_runs_testcases_in_order(self):
        report = TestReport()
        runner = TestRunner(report, self.output_path)

        test_case1 = self.create_test("test1", True)
        test_case2 = self.create_test("test2", False)
        test_case3 = self.create_test("test3", True)
        test_list = TestList()
        test_list.add_test(test_case1)
        test_list.add_test(test_case2)
        runner.run(test_list)
        test_case1.run.assert_called_once_with(
            create_output_path(self.output_path, "test1"))
        test_case2.run.assert_called_once_with(
            create_output_path(self.output_path, "test2"))
        self.assertFalse(test_case3.run.called)
        self.assertEqual(self._tests, ["test1", "test2"])
        self.assertTrue(report.result_of("test1").passed)
        self.assertTrue(report.result_of("test2").failed)
Esempio n. 8
0
    def test_fail_fast(self):
        report = TestReport()
        runner = TestRunner(report, self.output_path, fail_fast=True)

        test_case1 = self.create_test("test1", True)
        test_case2 = self.create_test("test2", False)
        test_list = TestList()
        test_list.add_test(test_case1)
        test_list.add_test(test_case2)
        try:
            runner.run(test_list)
        except KeyboardInterrupt:
            pass
        test_case1.run.assert_called_once_with(
            create_output_path(self.output_path, "test1"))
        test_case2.run.assert_called_once_with(
            create_output_path(self.output_path, "test2"))
        self.assertEqual(self._tests, ["test1", "test2"])
        self.assertTrue(report.result_of("test1").passed)
        self.assertTrue(report.result_of("test2").failed)
Esempio n. 9
0
    def test_runs_testcases_in_order(self, tempdir):
        report = TestReport()
        runner = TestRunner(report, tempdir)

        order = []
        test_case1 = self.create_test("test1", True, order=order)
        test_case2 = self.create_test("test2", False, order=order)
        test_case3 = self.create_test("test3", True, order=order)
        test_list = TestList()
        test_list.add_test(test_case1)
        test_list.add_test(test_case2)
        test_list.add_test(test_case3)
        runner.run(test_list)
        self.assertEqual(test_case1.output_path, create_output_path(tempdir, "test1"))
        self.assertEqual(test_case2.output_path, create_output_path(tempdir, "test2"))
        self.assertEqual(test_case3.output_path, create_output_path(tempdir, "test3"))
        self.assertEqual(order, ["test1", "test2", "test3"])
        self.assertTrue(report.result_of("test1").passed)
        self.assertTrue(report.result_of("test2").failed)
        self.assertTrue(report.result_of("test3").passed)
Esempio n. 10
0
    def test_collects_output(self):
        report = TestReport()
        runner = TestRunner(report, self.output_path)

        test_case = self.create_test("test", True)
        test_list = TestList()
        test_list.add_test(test_case)

        output = "Output string, <xml>, </xml>\n"

        def side_effect(*args, **kwargs):  # pylint: disable=unused-argument
            """
            Side effect that print output to stdout
            """
            print(output, end="")
            return True

        test_case.run.side_effect = side_effect
        runner.run(test_list)
        self.assertTrue(report.result_of("test").passed)
        self.assertEqual(report.result_of("test").output, output)
Esempio n. 11
0
    def test_fail_fast(self, tempdir):
        report = TestReport()
        runner = TestRunner(report, tempdir, fail_fast=True)

        order = []
        test_case1 = self.create_test("test1", True, order=order)
        test_case2 = self.create_test("test2", False, order=order)
        test_case3 = self.create_test("test3", True, order=order)
        test_list = TestList()
        test_list.add_test(test_case1)
        test_list.add_test(test_case2)
        test_list.add_test(test_case3)
        try:
            runner.run(test_list)
        except KeyboardInterrupt:
            pass
        self.assertEqual(test_case1.output_path, create_output_path(tempdir, "test1"))
        self.assertEqual(test_case2.output_path, create_output_path(tempdir, "test2"))
        self.assertEqual(test_case3.called, False)
        self.assertEqual(order, ["test1", "test2"])
        self.assertTrue(report.result_of("test1").passed)
        self.assertTrue(report.result_of("test2").failed)
Esempio n. 12
0
 def setUp(self):
     self._tests = []
     self.output_path = join(dirname(__file__), "test_runner_out")
     renew_path(self.output_path)
     self.report = TestReport()
     self.runner = TestRunner(self.report, self.output_path)