Esempio n. 1
0
    def test_successful_hca_import_workflows_only_includes_succeeded_workflows(
            self):
        archived_workflows = [
            mock_argo_workflow('import-hca-total-defg', 'abc123uid',
                               'Succeeded'),
            mock_argo_workflow('import-hca-total-abcd',
                               'abc234uid',
                               'Supsneeded',
                               params={'data-repo-name': 'datarepo_dataset1'}),
            mock_argo_workflow('import-hca-total-cdef',
                               'abc345uid',
                               'Succeeded',
                               params={'data-repo-name': 'datarepo_dataset2'}),
        ]

        with patch(
                'dagster_utils.contrib.argo_workflows.ArgoArchivedWorkflowsClient.list_archived_workflows',
                return_value=archived_workflows):
            workflows = list(
                ArgoHcaImportCompletionSensor(
                    argo_url='https://nonexistentsite.test',
                    access_token='token').successful_hca_import_workflows())

            self.assertIn(extend_workflow(archived_workflows[0]), workflows)
            self.assertNotIn(extend_workflow(archived_workflows[1]), workflows)
            self.assertIn(extend_workflow(archived_workflows[2]), workflows)
Esempio n. 2
0
 def test_generate_run_request_inflates_workflow(self):
     sensor = ArgoHcaImportCompletionSensor(
         argo_url='https://nonexistentsite.test', access_token='token')
     workflow = extend_workflow(
         mock_argo_workflow('import-hca-total-defg',
                            'abc123uid',
                            'Succeeded',
                            params={'data-repo-name':
                                    'datarepo_snatasnet'}))
     with patch(
             'dagster_utils.contrib.argo_workflows.ExtendedArgoWorkflow.inflate',
             return_value=workflow) as mocked_inflate:
         sensor.generate_run_request(workflow)
         mocked_inflate.assert_called_once()
Esempio n. 3
0
    def test_successful_hca_import_workflows_ignores_workflows_finished_before_epoch(
            self):
        archived_workflows = [
            mock_argo_workflow(
                'import-hca-total-defg',
                'abc123uid',
                'Succeeded',
                datetime(2021, 3, 17, tzinfo=tzlocal()),
                {'data-repo-name': 'datarepo_dataset0'},
            ),
            mock_argo_workflow(
                'import-hca-total-abcd',
                'abc234uid',
                'Succeeded',
                datetime(2021, 3, 16, tzinfo=tzlocal()),
                {'data-repo-name': 'datarepo_dataset1'},
            ),
            mock_argo_workflow(
                'import-hca-total-cdef',
                'abc345uid',
                'Succeeded',
                datetime(2020, 2, 27, tzinfo=tzlocal()),
                {'data-repo-name': 'datarepo_dataset2'},
            ),
        ]

        with patch(
                'dagster_utils.contrib.argo_workflows.ArgoArchivedWorkflowsClient.list_archived_workflows',
                return_value=archived_workflows):
            workflows = list(
                ArgoHcaImportCompletionSensor(
                    argo_url='https://nonexistentsite.test',
                    access_token='token').successful_hca_import_workflows())

            self.assertIn(extend_workflow(archived_workflows[0]), workflows)
            self.assertIn(extend_workflow(archived_workflows[1]), workflows)
            self.assertNotIn(extend_workflow(archived_workflows[2]), workflows)
Esempio n. 4
0
 def test_generate_run_request_provides_correct_pipeline_params(self):
     sensor = ArgoHcaImportCompletionSensor(
         argo_url='https://nonexistentsite.test', access_token='token')
     workflow = extend_workflow(
         mock_argo_workflow('import-hca-total-defg',
                            'abc123uid',
                            'Succeeded',
                            params={'data-repo-name':
                                    'datarepo_snatasnet'}))
     with patch(
             'dagster_utils.contrib.argo_workflows.ExtendedArgoWorkflow.inflate',
             return_value=workflow):
         req = sensor.generate_run_request(workflow)
         self.assertEqual(
             req.run_config['resources']['hca_dataset_operation_config']
             ['config']['dataset_name'], 'snatasnet')