예제 #1
0
    def test_run_and_log_case_status(self):
        test_lines = [
            "00:00:00 default starting \n",
            "00:00:00 default success \n",
        ]

        with utils.TemporaryDirectory() as tempdir, MockTime():
            run_and_log_case_status(self.base_func,
                                    "default",
                                    caseroot=tempdir)

            self.assertMatchAllLines(tempdir, test_lines)
예제 #2
0
    def test_run_and_log_case_status_case_submit_no_batch(self):
        test_lines = [
            "00:00:00 case.submit starting \n",
            "00:00:00 case.submit success \n",
        ]

        with utils.TemporaryDirectory() as tempdir, MockTime():
            run_and_log_case_status(self.base_func,
                                    "case.submit",
                                    caseroot=tempdir,
                                    is_batch=False)

            self.assertMatchAllLines(tempdir, test_lines)
예제 #3
0
    def test_run_and_log_case_status_error(self):
        test_lines = [
            "00:00:00 default starting \n",
            "00:00:00 default error \n",
            "Something went wrong\n",
        ]

        with utils.TemporaryDirectory() as tempdir, MockTime():
            with self.assertRaises(Exception):
                run_and_log_case_status(self.error_func,
                                        "default",
                                        caseroot=tempdir)

            self.assertMatchAllLines(tempdir, test_lines)
예제 #4
0
    def test_run_and_log_case_status_case_submit_error_on_batch(self):
        test_lines = [
            "00:00:00 case.submit starting \n",
            "00:00:00 case.submit error \n",
            "Something went wrong\n",
        ]

        with utils.TemporaryDirectory() as tempdir, MockTime():
            with self.assertRaises(Exception):
                run_and_log_case_status(self.error_func,
                                        "case.submit",
                                        caseroot=tempdir,
                                        is_batch=True)

            self.assertMatchAllLines(tempdir, test_lines)
예제 #5
0
    def test_run_and_log_case_status_custom_msg(self):
        test_lines = [
            "00:00:00 default starting starting extra\n",
            "00:00:00 default success success extra\n",
        ]

        starting_func = mock.MagicMock(return_value="starting extra")
        success_func = mock.MagicMock(return_value="success extra")

        def normal_func():
            return "data"

        with utils.TemporaryDirectory() as tempdir, MockTime():
            run_and_log_case_status(normal_func,
                                    "default",
                                    custom_starting_msg_functor=starting_func,
                                    custom_success_msg_functor=success_func,
                                    caseroot=tempdir)

            self.assertMatchAllLines(tempdir, test_lines)

        starting_func.assert_called_with()
        success_func.assert_called_with("data")
예제 #6
0
    def test_run_and_log_case_status_custom_msg_error_on_batch(self):
        test_lines = [
            "00:00:00 default starting starting extra\n",
            "00:00:00 default success success extra\n",
        ]

        starting_func = mock.MagicMock(return_value="starting extra")
        success_func = mock.MagicMock(return_value="success extra")

        def error_func():
            raise Exception("Error")

        with utils.TemporaryDirectory() as tempdir, MockTime(), \
                self.assertRaises(Exception):
            run_and_log_case_status(error_func,
                                    "default",
                                    custom_starting_msg_functor=starting_func,
                                    custom_success_msg_functor=success_func,
                                    caseroot=tempdir)

            self.assertMatchAllLines(tempdir, test_lines)

        starting_func.assert_called_with()
        success_func.assert_not_called()