Ejemplo n.º 1
0
    def test__find_unresponsive_workers_and_mark_runs_as_failed(self):
        """
        Test ``_find_unresponsive_workers_and_mark_runs_as_failed``.
        """
        Run.objects.filter(pk=1).update(worker=Worker.objects.get(pk=1))
        Run.objects.filter(pk=2).update(worker=Worker.objects.get(pk=2))

        # In testing.py:
        # JOB_RUNNER_WORKER_PING_INTERVAL = 60 * 5
        # JOB_RUNNER_WORKER_MARK_JOB_FAILED_AFTER_INTERVALS = 3
        acceptable = timezone.now() - timedelta(seconds=(60 * 5 * 3))
        unacceptable = acceptable - timedelta(seconds=15)

        Worker.objects.filter(pk=1).update(ping_response_dts=acceptable)
        Worker.objects.filter(pk=2).update(ping_response_dts=unacceptable)

        command = Command()
        command.publisher = Mock()

        command._find_unresponsive_workers_and_mark_runs_as_failed()

        runs = Run.objects.all()

        # Run pk=1 was marked as failed
        self.assertNotEqual(None, runs[0].return_dts)
        self.assertFalse(runs[0].return_success)

        # Run pk=2 was not touched
        self.assertEqual(None, runs[1].return_success)
        self.assertEqual(None, runs[1].return_dts)
Ejemplo n.º 2
0
    def test__find_unresponsive_workers_and_mark_runs_as_failed(self):
        """
        Test ``_find_unresponsive_workers_and_mark_runs_as_failed``.
        """
        Run.objects.filter(pk=1).update(worker=Worker.objects.get(pk=1))
        Run.objects.filter(pk=2).update(worker=Worker.objects.get(pk=2))

        # In testing.py:
        # JOB_RUNNER_WORKER_PING_INTERVAL = 60 * 5
        # JOB_RUNNER_WORKER_MARK_JOB_FAILED_AFTER_INTERVALS = 3
        acceptable = timezone.now() - timedelta(seconds=(60 * 5 * 3))
        unacceptable = acceptable - timedelta(seconds=15)

        Worker.objects.filter(pk=1).update(ping_response_dts=acceptable)
        Worker.objects.filter(pk=2).update(ping_response_dts=unacceptable)

        command = Command()
        command.publisher = Mock()

        command._find_unresponsive_workers_and_mark_runs_as_failed()

        runs = Run.objects.all()

        # Run pk=1 was marked as failed
        self.assertNotEqual(None, runs[0].return_dts)
        self.assertFalse(runs[0].return_success)

        # Run pk=2 was not touched
        self.assertEqual(None, runs[1].return_success)
        self.assertEqual(None, runs[1].return_dts)