Exemple #1
0
    def test_update_row_exception(self, mock_tj, mock_log):
        mock_tj.objects.get_subclass.side_effect = Exception('error')
        rows = [('1', '30'),
                ('2', '18'),
                ('3', '26')]
        column_names = ['id', 'creation_time']
        request = RequestFactory().post('/jobs', {'column_fields': column_names, 'row': rows})
        gizmo_jobs_table.update_row(request, job_id='1')

        # Check Result
        mock_log.warning.assert_called_with('Updating row for job 1 failed: error')
    def test_update_row_exception(self, mock_tj, mock_log):
        mock_tj.objects.get_subclass.side_effect = Exception('error')
        rows = [('1', '30'),
                ('2', '18'),
                ('3', '26')]
        column_names = ['id', 'creation_time']
        request = RequestFactory().post('/jobs', {'column_fields': column_names, 'row': rows})
        gizmo_jobs_table.update_row(request, job_id='1')

        # Check Result
        mock_log.error.assert_called_with('Updating row for job 1 failed: error')
Exemple #3
0
    def test_update_row_exception(self, mock_tj, mock_log):
        mock_tj.objects.get_subclass.side_effect = Exception('error')
        rows = [('1', '30'), ('2', '18'), ('3', '26')]
        column_names = ['ID', 'Time(s)']
        request = RequestFactory().post('/jobs', {
            'column_fields': column_names,
            'row': rows
        })
        gizmo_jobs_table.update_row(request, job_id='1')

        # Check Result
        mock_log.error.assert_called_with(
            'The following error occurred when updating row for job %s: %s',
            '1', str('error'))
Exemple #4
0
    def test_update_row_condor_workflow_no_statuses(self, mock_tj, mock_rts):
        # Another Case where job.label is not gizmos_showcase
        mock_rts.return_value = '{"job_statuses":[]}'
        mock_tj.objects.get_subclass.return_value = mock.MagicMock(
            spec=CondorWorkflow,
            status='Various',
            label='test_label',
            statuses={
                'Completed': 0,
                'Running': 0
            },
            num_jobs=1)
        rows = [('1', '30')]
        column_names = ['id', 'creation_time']
        request = RequestFactory().post('/jobs', {
            'column_fields': column_names,
            'row': rows
        })
        result = gizmo_jobs_table.update_row(request, job_id='1')

        # Check Result
        rts_call_args = mock_rts.call_args_list
        self.assertIn('job_statuses', rts_call_args[0][0][1])
        self.assertEqual(
            {
                'Aborted': 0,
                'Completed': 0,
                'Error': 0,
                'Running': 0
            }, rts_call_args[0][0][1]['job_statuses'])
        self.assertIn('job_status', rts_call_args[0][0][1])
        self.assertEqual('Submitted', rts_call_args[0][0][1]['job_status'])
        self.assertEqual(200, result.status_code)
    def test_update_row_dask_job_results_ready(self, mock_tj, mock_rts):
        # Another Case where job.label is not gizmos_showcase
        mock_rts.return_value = '{"job_statuses":[]}'
        mock_tj.objects.get_subclass.return_value = mock.MagicMock(
            spec=DaskJob, status='Results-Ready', label='test_label',
        )
        rows = [('1', '30')]
        column_names = ['id', 'creation_time']
        request = RequestFactory().post('/jobs', {'column_fields': column_names, 'row': rows})
        result = gizmo_jobs_table.update_row(request, job_id='1')

        # Check Result
        rts_call_args = mock_rts.call_args_list
        self.assertEqual('Running', rts_call_args[0][0][1]['job_status'])
        self.assertEqual(200, result.status_code)
Exemple #6
0
    def test_update_row_dask_job_results_ready(self, mock_tj, mock_rts):
        # Another Case where job.label is not gizmos_showcase
        mock_rts.return_value = '{"job_statuses":[]}'
        mock_tj.objects.get_subclass.return_value = mock.MagicMock(
            spec=DaskJob, status='Results-Ready', label='test_label',
        )
        rows = [('1', '30')]
        column_names = ['id', 'creation_time']
        request = RequestFactory().post('/jobs', {'column_fields': column_names, 'row': rows})
        result = gizmo_jobs_table.update_row(request, job_id='1')

        # Check Result
        rts_call_args = mock_rts.call_args_list
        self.assertEqual('Running', rts_call_args[0][0][1]['job_status'])
        self.assertEqual(200, result.status_code)
    def test_update_row_showcase_condor_workflow(self, mock_tj, mock_rts):
        mock_rts.return_value = '{"job_statuses":[]}'
        mock_tj.objects.get_subclass.return_value = mock.MagicMock(
            spec=CondorWorkflow, status='Various', label='gizmos_showcase'
        )
        rows = [('1', '30')]
        column_names = ['id', 'creation_time']
        request = RequestFactory().post('/jobs', {'column_fields': column_names, 'row': rows})
        result = gizmo_jobs_table.update_row(request, job_id='1')

        # Check Result
        rts_call_args = mock_rts.call_args_list
        self.assertEqual('Various', rts_call_args[0][0][1]['job_status'])
        self.assertIn('job_statuses', rts_call_args[0][0][1])
        self.assertEqual({'Completed': 20, 'Error': 20, 'Running': 40, 'Aborted': 0},
                         rts_call_args[0][0][1]['job_statuses'])
        self.assertEqual(200, result.status_code)
Exemple #8
0
    def test_update_row_showcase_various_complete(self, mock_tj, mock_rts):
        mock_rts.return_value = '{"job_statuses":[]}'
        mock_tj.objects.get_subclass.return_value = mock.MagicMock(
            spec=TethysJob, status='Various-Complete', label='gizmos_showcase'
        )
        rows = [('1', '30')]
        column_names = ['id', 'creation_time']
        request = RequestFactory().post('/jobs', {'column_fields': column_names, 'row': rows})
        result = gizmo_jobs_table.update_row(request, job_id='1')

        # Check Result
        rts_call_args = mock_rts.call_args_list
        self.assertEqual('Various-Complete', rts_call_args[0][0][1]['job_status'])
        self.assertIn('job_statuses', rts_call_args[0][0][1])
        self.assertEqual({'Completed': 80, 'Error': 15, 'Running': 0, 'Aborted': 5},
                         rts_call_args[0][0][1]['job_statuses'])
        self.assertEqual(200, result.status_code)
Exemple #9
0
    def test_update_row_not_gizmos(self, mock_tj, mock_rts):
        # Another Case where job.label is not gizmos_showcase
        mock_rts.return_value = '{"job_statuses":[]}'
        mock_tj.objects.get_subclass.return_value = mock.MagicMock(
            status='Various', label='test_label', statuses={'Completed': 1})
        rows = [('1', '30')]
        column_names = ['ID', 'Time(s)']
        request = RequestFactory().post('/jobs', {
            'column_fields': column_names,
            'row': rows
        })
        result = gizmo_jobs_table.update_row(request, job_id='1')

        # Check Result
        rts_call_args = mock_rts.call_args_list
        self.assertIn('job_statuses', rts_call_args[0][0][1])
        self.assertEqual({'Completed': 1},
                         rts_call_args[0][0][1]['job_statuses'])
        self.assertEqual(200, result.status_code)