def test_should_get_DAGs_output_dir(self): # given workdir = os.path.dirname(__file__) # when dags_dir = get_dags_output_dir(workdir) # then self.assertEqual(dags_dir.as_posix(), workdir + "/.dags")
def test_should_clear_DAGs_output_dir(self): # given workdir = os.path.dirname(__file__) dags_dir = get_dags_output_dir(workdir) f = dags_dir / 'zonk.txt' f.touch() # when clear_dags_output_dir(workdir) # then self.assertFalse(f.exists())
def test_should_upload_files_from_DAGs_output_dir_to_GCS_DAGs_folder(self): # given workdir = os.path.dirname(__file__) clear_dags_output_dir(workdir) dags_dir = get_dags_output_dir(workdir) f1 = dags_dir / 'zonk_1.txt' f1.touch() f2 = dags_dir / 'zonk_2.txt' f2.touch() # mocking gs_client_mock = mock.Mock() bucket_mock = mock.Mock() f1_blob_mock = mock.Mock() f2_blob_mock = mock.Mock() def blobs(name): if name == 'dags/zonk_1.txt': return f1_blob_mock if name == 'dags/zonk_2.txt': return f2_blob_mock return None gs_client_mock.bucket.return_value = bucket_mock bucket_mock.blob.side_effect = blobs # when deploy_dags_folder(dags_dir=workdir + '/.dags', dags_bucket='europe-west1-1-bucket', project_id='', clear_dags_folder=False, auth_method='local_account', gs_client=gs_client_mock) # then gs_client_mock.bucket.assert_called_with('europe-west1-1-bucket') f1_blob_mock.upload_from_filename.assert_called_with( f1.as_posix(), content_type='application/octet-stream') f2_blob_mock.upload_from_filename.assert_called_with( f2.as_posix(), content_type='application/octet-stream')