예제 #1
0
    def test_internal_calls_multisubmit_failed_state(self):
        run_one_suffix = "base"
        run_two_suffix = "run2"
        case1root, _ = self.get_caseroots()
        case1 = CaseFake(case1root)

        def _set_initial_test_values(x):
            x.set_value("RESUBMIT", 1)

        case1.set_initial_test_values = functools.partial(
            _set_initial_test_values, case1)

        # Standard first phase
        case1.set_value("IS_FIRST_RUN", True)
        case1.set_value("RESUBMIT", 1)

        mytest = SystemTestsCompareTwoFake(
            case1=case1,
            run_one_suffix=run_one_suffix,
            run_two_suffix=run_two_suffix,
            multisubmit=True,
        )

        mytest.run()

        expected_calls = [
            Call(METHOD_case_one_custom_prerun_action, {}),
            Call(METHOD_run_indv, {
                "CASEROOT": case1root,
                "suffix": "base"
            }),
            Call(METHOD_case_one_custom_postrun_action, {}),
        ]

        self.assertEqual(expected_calls, mytest.log)

        # Emulate a rerun ensure phase 1 still runs
        case1.set_value("IS_FIRST_RUN", True)
        case1.set_value("RESUBMIT", 0)

        # Reset the log
        mytest.log = []

        mytest.run()

        expected_calls = [
            Call(METHOD_case_one_custom_prerun_action, {}),
            Call(METHOD_run_indv, {
                "CASEROOT": case1root,
                "suffix": "base"
            }),
            Call(METHOD_case_one_custom_postrun_action, {}),
        ]

        self.assertEqual(expected_calls, mytest.log)