def test_no_next_task_is_not_a_flip(self):
        mock_task = _mock_task(activated=True, status="success")
        mock_task.is_success.return_value = False

        mock_prev_task = _mock_task(activated=True, status=mock_task.status)
        tasks_prev = {mock_task.display_name: mock_prev_task}

        assert not under_test._is_task_a_flip(mock_task, tasks_prev, {})
    def test_prev_and_current_same_status_is_not_a_flip(self):
        mock_task = _mock_task(activated=True, status="failed")
        mock_task.is_success.return_value = False

        mock_prev_task = _mock_task(activated=True, status=mock_task.status)
        tasks_prev = {mock_task.display_name: mock_prev_task}

        mock_next_task = _mock_task(activated=True, status="success")
        tasks_next = {mock_task.display_name: mock_next_task}

        assert not under_test._is_task_a_flip(mock_task, tasks_prev, tasks_next)
    def test_no_previous_task_is_not_a_flip(self):
        mock_task = _mock_task(activated=True, status="success")
        mock_task.is_success.return_value = False

        assert not under_test._is_task_a_flip(mock_task, {}, {})
    def test_not_a_success_or_failed_status_is_not_a_flip(self):
        mock_task = _mock_task(activated=True, status="started")

        assert not under_test._is_task_a_flip(mock_task, {}, {})
    def test_non_activated_task_is_not_a_flip(self):
        mock_task = _mock_task(activated=False)

        assert not under_test._is_task_a_flip(mock_task, {}, {})