dkist-processing-cryonirsp 1.10.0rc1__py3-none-any.whl → 1.14.9rc1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- changelog/232.misc.rst +1 -0
- dkist_processing_cryonirsp/__init__.py +1 -0
- dkist_processing_cryonirsp/codecs/fits.py +1 -0
- dkist_processing_cryonirsp/config.py +1 -0
- dkist_processing_cryonirsp/models/beam_boundaries.py +1 -0
- dkist_processing_cryonirsp/models/constants.py +8 -30
- dkist_processing_cryonirsp/models/exposure_conditions.py +6 -5
- dkist_processing_cryonirsp/models/fits_access.py +40 -0
- dkist_processing_cryonirsp/models/parameters.py +1 -0
- dkist_processing_cryonirsp/models/tags.py +1 -0
- dkist_processing_cryonirsp/models/task_name.py +1 -0
- dkist_processing_cryonirsp/parsers/check_for_gains.py +1 -0
- dkist_processing_cryonirsp/parsers/cryonirsp_l0_fits_access.py +40 -48
- dkist_processing_cryonirsp/parsers/cryonirsp_l1_fits_access.py +1 -0
- dkist_processing_cryonirsp/parsers/exposure_conditions.py +14 -13
- dkist_processing_cryonirsp/parsers/map_repeats.py +1 -0
- dkist_processing_cryonirsp/parsers/measurements.py +29 -16
- dkist_processing_cryonirsp/parsers/modstates.py +5 -1
- dkist_processing_cryonirsp/parsers/optical_density_filters.py +1 -0
- dkist_processing_cryonirsp/parsers/polarimetric_check.py +18 -7
- dkist_processing_cryonirsp/parsers/scan_step.py +12 -4
- dkist_processing_cryonirsp/parsers/time.py +7 -7
- dkist_processing_cryonirsp/parsers/wavelength.py +6 -1
- dkist_processing_cryonirsp/tasks/__init__.py +1 -0
- dkist_processing_cryonirsp/tasks/assemble_movie.py +1 -0
- dkist_processing_cryonirsp/tasks/bad_pixel_map.py +6 -5
- dkist_processing_cryonirsp/tasks/beam_boundaries_base.py +9 -10
- dkist_processing_cryonirsp/tasks/ci_beam_boundaries.py +1 -0
- dkist_processing_cryonirsp/tasks/ci_science.py +1 -0
- dkist_processing_cryonirsp/tasks/cryonirsp_base.py +1 -0
- dkist_processing_cryonirsp/tasks/dark.py +5 -4
- dkist_processing_cryonirsp/tasks/gain.py +7 -6
- dkist_processing_cryonirsp/tasks/instrument_polarization.py +16 -15
- dkist_processing_cryonirsp/tasks/l1_output_data.py +1 -0
- dkist_processing_cryonirsp/tasks/linearity_correction.py +1 -0
- dkist_processing_cryonirsp/tasks/make_movie_frames.py +3 -2
- dkist_processing_cryonirsp/tasks/mixin/corrections.py +1 -0
- dkist_processing_cryonirsp/tasks/mixin/shift_measurements.py +1 -0
- dkist_processing_cryonirsp/tasks/parse.py +66 -61
- dkist_processing_cryonirsp/tasks/quality_metrics.py +15 -14
- dkist_processing_cryonirsp/tasks/science_base.py +8 -6
- dkist_processing_cryonirsp/tasks/sp_beam_boundaries.py +2 -1
- dkist_processing_cryonirsp/tasks/sp_geometric.py +11 -10
- dkist_processing_cryonirsp/tasks/sp_science.py +1 -0
- dkist_processing_cryonirsp/tasks/sp_solar_gain.py +15 -12
- dkist_processing_cryonirsp/tasks/sp_wavelength_calibration.py +9 -9
- dkist_processing_cryonirsp/tasks/write_l1.py +36 -7
- dkist_processing_cryonirsp/tests/conftest.py +6 -7
- dkist_processing_cryonirsp/tests/header_models.py +40 -3
- dkist_processing_cryonirsp/tests/local_trial_workflows/l0_cals_only.py +11 -31
- dkist_processing_cryonirsp/tests/local_trial_workflows/l0_to_l1.py +11 -30
- dkist_processing_cryonirsp/tests/local_trial_workflows/linearize_only.py +3 -3
- dkist_processing_cryonirsp/tests/local_trial_workflows/local_trial_helpers.py +3 -2
- dkist_processing_cryonirsp/tests/test_assemble_movie.py +4 -5
- dkist_processing_cryonirsp/tests/test_assemble_qualilty.py +5 -1
- dkist_processing_cryonirsp/tests/test_bad_pixel_maps.py +3 -4
- dkist_processing_cryonirsp/tests/test_ci_beam_boundaries.py +3 -4
- dkist_processing_cryonirsp/tests/test_ci_science.py +3 -4
- dkist_processing_cryonirsp/tests/test_corrections.py +3 -3
- dkist_processing_cryonirsp/tests/test_cryo_base.py +3 -5
- dkist_processing_cryonirsp/tests/test_cryo_constants.py +1 -2
- dkist_processing_cryonirsp/tests/test_dark.py +5 -6
- dkist_processing_cryonirsp/tests/test_fits_access.py +44 -0
- dkist_processing_cryonirsp/tests/test_gain.py +5 -6
- dkist_processing_cryonirsp/tests/test_instrument_polarization.py +9 -6
- dkist_processing_cryonirsp/tests/test_linearity_correction.py +4 -3
- dkist_processing_cryonirsp/tests/test_make_movie_frames.py +2 -3
- dkist_processing_cryonirsp/tests/test_parameters.py +3 -4
- dkist_processing_cryonirsp/tests/test_parse.py +14 -8
- dkist_processing_cryonirsp/tests/test_quality.py +2 -3
- dkist_processing_cryonirsp/tests/test_sp_beam_boundaries.py +4 -4
- dkist_processing_cryonirsp/tests/test_sp_geometric.py +3 -4
- dkist_processing_cryonirsp/tests/test_sp_make_movie_frames.py +2 -3
- dkist_processing_cryonirsp/tests/test_sp_science.py +3 -4
- dkist_processing_cryonirsp/tests/test_sp_solar.py +5 -4
- dkist_processing_cryonirsp/tests/test_sp_wavelength_calibration.py +4 -5
- dkist_processing_cryonirsp/tests/test_trial_create_quality_report.py +1 -1
- dkist_processing_cryonirsp/tests/test_workflows.py +1 -0
- dkist_processing_cryonirsp/tests/test_write_l1.py +12 -16
- dkist_processing_cryonirsp/workflows/__init__.py +1 -0
- dkist_processing_cryonirsp/workflows/ci_l0_processing.py +6 -5
- dkist_processing_cryonirsp/workflows/sp_l0_processing.py +6 -5
- dkist_processing_cryonirsp/workflows/trial_workflows.py +9 -8
- dkist_processing_cryonirsp-1.14.9rc1.dist-info/METADATA +552 -0
- dkist_processing_cryonirsp-1.14.9rc1.dist-info/RECORD +115 -0
- docs/conf.py +1 -0
- docs/wavelength_calibration.rst +1 -1
- changelog/167.feature.rst +0 -1
- dkist_processing_cryonirsp-1.10.0rc1.dist-info/METADATA +0 -458
- dkist_processing_cryonirsp-1.10.0rc1.dist-info/RECORD +0 -113
- {dkist_processing_cryonirsp-1.10.0rc1.dist-info → dkist_processing_cryonirsp-1.14.9rc1.dist-info}/WHEEL +0 -0
- {dkist_processing_cryonirsp-1.10.0rc1.dist-info → dkist_processing_cryonirsp-1.14.9rc1.dist-info}/top_level.txt +0 -0
|
@@ -11,15 +11,14 @@ from dkist_header_validator import spec122_validator
|
|
|
11
11
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
12
12
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
13
13
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
14
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
15
14
|
|
|
16
15
|
from dkist_processing_cryonirsp.models.exposure_conditions import AllowableOpticalDensityFilterNames
|
|
17
16
|
from dkist_processing_cryonirsp.models.exposure_conditions import ExposureConditions
|
|
18
17
|
from dkist_processing_cryonirsp.models.tags import CryonirspStemName
|
|
19
18
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
20
19
|
from dkist_processing_cryonirsp.tasks.ci_science import CIScienceCalibration
|
|
21
|
-
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
22
20
|
from dkist_processing_cryonirsp.tests.conftest import CryonirspConstantsDb
|
|
21
|
+
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
23
22
|
from dkist_processing_cryonirsp.tests.conftest import generate_fits_frame
|
|
24
23
|
from dkist_processing_cryonirsp.tests.header_models import CryonirspHeadersValidObserveFrames
|
|
25
24
|
|
|
@@ -228,7 +227,7 @@ def ci_compressed_headers_with_dates(
|
|
|
228
227
|
return comp_headers, start_time, exp_time, time_delta
|
|
229
228
|
|
|
230
229
|
|
|
231
|
-
def test_ci_science_calibration_task(ci_science_calibration_task, mocker):
|
|
230
|
+
def test_ci_science_calibration_task(ci_science_calibration_task, mocker, fake_gql_client):
|
|
232
231
|
"""
|
|
233
232
|
Given: A CIScienceCalibration task
|
|
234
233
|
When: Calling the task instance
|
|
@@ -236,7 +235,7 @@ def test_ci_science_calibration_task(ci_science_calibration_task, mocker):
|
|
|
236
235
|
"""
|
|
237
236
|
|
|
238
237
|
mocker.patch(
|
|
239
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
238
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
240
239
|
)
|
|
241
240
|
|
|
242
241
|
# When
|
|
@@ -4,12 +4,11 @@ import numpy as np
|
|
|
4
4
|
import pytest
|
|
5
5
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
6
6
|
from dkist_processing_common.tasks import WorkflowTaskBase
|
|
7
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
8
7
|
|
|
9
8
|
from dkist_processing_cryonirsp.models.constants import CryonirspConstants
|
|
10
9
|
from dkist_processing_cryonirsp.tasks.mixin.corrections import CorrectionsMixin
|
|
11
|
-
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
12
10
|
from dkist_processing_cryonirsp.tests.conftest import CryonirspConstantsDb
|
|
11
|
+
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
13
12
|
|
|
14
13
|
base_bad_pixel_map = np.zeros(shape=(10, 10))
|
|
15
14
|
|
|
@@ -38,11 +37,12 @@ def bad_pixel_mask_task(
|
|
|
38
37
|
recipe_run_id,
|
|
39
38
|
assign_input_dataset_doc_to_task,
|
|
40
39
|
mocker,
|
|
40
|
+
fake_gql_client,
|
|
41
41
|
request,
|
|
42
42
|
init_cryonirsp_constants_db,
|
|
43
43
|
):
|
|
44
44
|
mocker.patch(
|
|
45
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
45
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
46
46
|
)
|
|
47
47
|
constants_db = CryonirspConstantsDb(
|
|
48
48
|
ARM_ID=request.param,
|
|
@@ -8,8 +8,8 @@ from dkist_processing_common.codecs.fits import fits_hdu_decoder
|
|
|
8
8
|
from dkist_processing_cryonirsp.codecs.fits import cryo_fits_array_decoder
|
|
9
9
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
10
10
|
from dkist_processing_cryonirsp.tasks.cryonirsp_base import CryonirspTaskBase
|
|
11
|
-
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
12
11
|
from dkist_processing_cryonirsp.tests.conftest import CryonirspConstantsDb
|
|
12
|
+
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
13
13
|
|
|
14
14
|
NUM_BEAMS = 2
|
|
15
15
|
NUM_MODSTATES = 8
|
|
@@ -23,8 +23,7 @@ def cryo_science_task(
|
|
|
23
23
|
tmp_path, recipe_run_id, assign_input_dataset_doc_to_task, init_cryonirsp_constants_db
|
|
24
24
|
):
|
|
25
25
|
class Task(CryonirspTaskBase):
|
|
26
|
-
def run(self):
|
|
27
|
-
...
|
|
26
|
+
def run(self): ...
|
|
28
27
|
|
|
29
28
|
constants_db = CryonirspConstantsDb(
|
|
30
29
|
NUM_MODSTATES=NUM_MODSTATES,
|
|
@@ -153,8 +152,7 @@ def cryo_science_task_with_tagged_intermediates(
|
|
|
153
152
|
recipe_run_id, tmpdir_factory, init_cryonirsp_constants_db
|
|
154
153
|
):
|
|
155
154
|
class Task(CryonirspTaskBase):
|
|
156
|
-
def run(self):
|
|
157
|
-
...
|
|
155
|
+
def run(self): ...
|
|
158
156
|
|
|
159
157
|
init_cryonirsp_constants_db(recipe_run_id, CryonirspConstantsDb())
|
|
160
158
|
with Task(
|
|
@@ -49,8 +49,7 @@ def cryo_science_task_with_constants(
|
|
|
49
49
|
recipe_run_id, expected_constant_dict, init_cryonirsp_constants_db
|
|
50
50
|
):
|
|
51
51
|
class Task(CryonirspTaskBase):
|
|
52
|
-
def run(self):
|
|
53
|
-
...
|
|
52
|
+
def run(self): ...
|
|
54
53
|
|
|
55
54
|
init_cryonirsp_constants_db(recipe_run_id, expected_constant_dict)
|
|
56
55
|
task = Task(
|
|
@@ -7,14 +7,13 @@ from dkist_header_validator import spec122_validator
|
|
|
7
7
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
8
8
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
9
9
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
10
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
11
10
|
|
|
12
11
|
from dkist_processing_cryonirsp.models.exposure_conditions import AllowableOpticalDensityFilterNames
|
|
13
12
|
from dkist_processing_cryonirsp.models.exposure_conditions import ExposureConditions
|
|
14
13
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
15
14
|
from dkist_processing_cryonirsp.tasks.dark import DarkCalibration
|
|
16
|
-
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
17
15
|
from dkist_processing_cryonirsp.tests.conftest import CryonirspConstantsDb
|
|
16
|
+
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
18
17
|
from dkist_processing_cryonirsp.tests.conftest import generate_fits_frame
|
|
19
18
|
from dkist_processing_cryonirsp.tests.header_models import CryonirspHeadersValidDarkFrames
|
|
20
19
|
|
|
@@ -176,14 +175,14 @@ def ci_dark_calibration_task(
|
|
|
176
175
|
task._purge()
|
|
177
176
|
|
|
178
177
|
|
|
179
|
-
def test_sp_dark_calibration_task(sp_dark_calibration_task, mocker):
|
|
178
|
+
def test_sp_dark_calibration_task(sp_dark_calibration_task, mocker, fake_gql_client):
|
|
180
179
|
"""
|
|
181
180
|
Given: A DarkCalibration task with multiple task exposure times
|
|
182
181
|
When: Calling the task instance
|
|
183
182
|
Then: Only one average intermediate dark frame exists for each exposure time and unused times are not made
|
|
184
183
|
"""
|
|
185
184
|
mocker.patch(
|
|
186
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
185
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
187
186
|
)
|
|
188
187
|
# When
|
|
189
188
|
(
|
|
@@ -232,14 +231,14 @@ def test_sp_dark_calibration_task(sp_dark_calibration_task, mocker):
|
|
|
232
231
|
assert data["frames_not_used"] == 3
|
|
233
232
|
|
|
234
233
|
|
|
235
|
-
def test_ci_dark_calibration_task(ci_dark_calibration_task, mocker):
|
|
234
|
+
def test_ci_dark_calibration_task(ci_dark_calibration_task, mocker, fake_gql_client):
|
|
236
235
|
"""
|
|
237
236
|
Given: A DarkCalibration task with multiple task exposure times
|
|
238
237
|
When: Calling the task instance
|
|
239
238
|
Then: Only one average intermediate dark frame exists for each exposure time and unused times are not made
|
|
240
239
|
"""
|
|
241
240
|
mocker.patch(
|
|
242
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
241
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
243
242
|
)
|
|
244
243
|
# When
|
|
245
244
|
task, exp_conditions, unused_condition = ci_dark_calibration_task
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
from dkist_header_validator.translator import translate_spec122_to_spec214_l0
|
|
3
|
+
|
|
4
|
+
from dkist_processing_cryonirsp.models.fits_access import CryonirspMetadataKey
|
|
5
|
+
from dkist_processing_cryonirsp.parsers.cryonirsp_l0_fits_access import CryonirspL0FitsAccess
|
|
6
|
+
from dkist_processing_cryonirsp.parsers.cryonirsp_l0_fits_access import CryonirspRampFitsAccess
|
|
7
|
+
from dkist_processing_cryonirsp.parsers.cryonirsp_l1_fits_access import CryonirspL1FitsAccess
|
|
8
|
+
from dkist_processing_cryonirsp.tests.header_models import Cryonirsp122ObserveFrames
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@pytest.fixture(scope="session")
|
|
12
|
+
def complete_header():
|
|
13
|
+
dataset = Cryonirsp122ObserveFrames(array_shape=(1, 2, 2))
|
|
14
|
+
header = [translate_spec122_to_spec214_l0(d.header()) for d in dataset]
|
|
15
|
+
return header
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def test_metadata_keys_in_access_bases(complete_header):
|
|
19
|
+
"""
|
|
20
|
+
Given: the set of metadata key names in CryonirspMetadataKey
|
|
21
|
+
When: the Cryo FITS access classes define a set of new attributes
|
|
22
|
+
Then: the sets are the same and the attributes have the correct values
|
|
23
|
+
"""
|
|
24
|
+
cryo_metadata_key_names = {cmk.name for cmk in CryonirspMetadataKey}
|
|
25
|
+
all_cryo_fits_access_attrs = set()
|
|
26
|
+
for access_class in [CryonirspRampFitsAccess, CryonirspL0FitsAccess, CryonirspL1FitsAccess]:
|
|
27
|
+
fits_obj = access_class.from_header(complete_header[0])
|
|
28
|
+
cryo_instance_attrs = set(vars(fits_obj).keys())
|
|
29
|
+
parent_class = access_class.mro()[1]
|
|
30
|
+
parent_fits_obj = parent_class.from_header(complete_header[0])
|
|
31
|
+
parent_instance_attrs = set(vars(parent_fits_obj).keys())
|
|
32
|
+
cryo_fits_access_attrs = cryo_instance_attrs - parent_instance_attrs
|
|
33
|
+
# exposure_conditions is created from multiple header keys, so it is not in CryonirspMetadataKey:
|
|
34
|
+
cryo_fits_access_attrs -= {"exposure_conditions"}
|
|
35
|
+
for attr in cryo_fits_access_attrs:
|
|
36
|
+
match attr:
|
|
37
|
+
case "cn1_scan_step":
|
|
38
|
+
assert getattr(fits_obj, attr) == int(
|
|
39
|
+
fits_obj.header[CryonirspMetadataKey[attr]]
|
|
40
|
+
)
|
|
41
|
+
case _:
|
|
42
|
+
assert getattr(fits_obj, attr) == fits_obj.header[CryonirspMetadataKey[attr]]
|
|
43
|
+
all_cryo_fits_access_attrs |= cryo_fits_access_attrs
|
|
44
|
+
assert cryo_metadata_key_names == all_cryo_fits_access_attrs
|
|
@@ -8,15 +8,14 @@ from dkist_header_validator import spec122_validator
|
|
|
8
8
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
9
9
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
10
10
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
11
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
12
11
|
|
|
13
12
|
from dkist_processing_cryonirsp.models.exposure_conditions import AllowableOpticalDensityFilterNames
|
|
14
13
|
from dkist_processing_cryonirsp.models.exposure_conditions import ExposureConditions
|
|
15
14
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
16
15
|
from dkist_processing_cryonirsp.tasks.gain import CISolarGainCalibration
|
|
17
16
|
from dkist_processing_cryonirsp.tasks.gain import LampGainCalibration
|
|
18
|
-
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
19
17
|
from dkist_processing_cryonirsp.tests.conftest import CryonirspConstantsDb
|
|
18
|
+
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
20
19
|
from dkist_processing_cryonirsp.tests.conftest import generate_fits_frame
|
|
21
20
|
from dkist_processing_cryonirsp.tests.header_models import CryonirspHeadersValidLampGainFrames
|
|
22
21
|
|
|
@@ -201,14 +200,14 @@ def lamp_calibration_task(
|
|
|
201
200
|
task._purge()
|
|
202
201
|
|
|
203
202
|
|
|
204
|
-
def test_ci_solar_gain_calibration_task(ci_solar_gain_calibration_task, mocker):
|
|
203
|
+
def test_ci_solar_gain_calibration_task(ci_solar_gain_calibration_task, mocker, fake_gql_client):
|
|
205
204
|
"""
|
|
206
205
|
Given: A CISolarGainCalibration task
|
|
207
206
|
When: Calling the task instance
|
|
208
207
|
Then: The correct number of output solar gain frames exists, are tagged correctly, and are not normalized
|
|
209
208
|
"""
|
|
210
209
|
mocker.patch(
|
|
211
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
210
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
212
211
|
)
|
|
213
212
|
# When
|
|
214
213
|
task, solar_signal = ci_solar_gain_calibration_task
|
|
@@ -242,14 +241,14 @@ def test_ci_solar_gain_calibration_task(ci_solar_gain_calibration_task, mocker):
|
|
|
242
241
|
|
|
243
242
|
|
|
244
243
|
@pytest.mark.parametrize("number_of_beams", [pytest.param(1, id="CI"), pytest.param(2, id="SP")])
|
|
245
|
-
def test_lamp_calibration_task(lamp_calibration_task, number_of_beams, mocker):
|
|
244
|
+
def test_lamp_calibration_task(lamp_calibration_task, number_of_beams, mocker, fake_gql_client):
|
|
246
245
|
"""
|
|
247
246
|
Given: A LampGainCalibration task
|
|
248
247
|
When: Calling the task instance
|
|
249
248
|
Then: The correct number of output lamp gain frames exists, are tagged correctly, and are normalized
|
|
250
249
|
"""
|
|
251
250
|
mocker.patch(
|
|
252
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
251
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
253
252
|
)
|
|
254
253
|
# When
|
|
255
254
|
task = lamp_calibration_task
|
|
@@ -10,7 +10,6 @@ from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
|
10
10
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
11
11
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
12
12
|
from dkist_processing_common.models.task_name import TaskName
|
|
13
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
14
13
|
from dkist_processing_pac.fitter.polcal_fitter import PolcalFitter
|
|
15
14
|
from dkist_processing_pac.input_data.dresser import Dresser
|
|
16
15
|
|
|
@@ -23,8 +22,8 @@ from dkist_processing_cryonirsp.tasks.instrument_polarization import (
|
|
|
23
22
|
from dkist_processing_cryonirsp.tasks.instrument_polarization import (
|
|
24
23
|
SPInstrumentPolarizationCalibration,
|
|
25
24
|
)
|
|
26
|
-
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
27
25
|
from dkist_processing_cryonirsp.tests.conftest import CryonirspConstantsDb
|
|
26
|
+
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
28
27
|
from dkist_processing_cryonirsp.tests.conftest import generate_fits_frame
|
|
29
28
|
from dkist_processing_cryonirsp.tests.header_models import CryonirspHeadersValidPolcalFrames
|
|
30
29
|
|
|
@@ -399,7 +398,9 @@ def multiple_demodulation_matrices() -> np.ndarray:
|
|
|
399
398
|
|
|
400
399
|
|
|
401
400
|
def test_ci_instrument_polarization_calibration_task(
|
|
402
|
-
ci_instrument_polarization_calibration_task,
|
|
401
|
+
ci_instrument_polarization_calibration_task,
|
|
402
|
+
mocker,
|
|
403
|
+
fake_gql_client,
|
|
403
404
|
):
|
|
404
405
|
"""
|
|
405
406
|
Given: An InstrumentPolarizationCalibration task
|
|
@@ -408,7 +409,7 @@ def test_ci_instrument_polarization_calibration_task(
|
|
|
408
409
|
"""
|
|
409
410
|
|
|
410
411
|
mocker.patch(
|
|
411
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
412
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
412
413
|
)
|
|
413
414
|
|
|
414
415
|
# When
|
|
@@ -438,7 +439,9 @@ def test_ci_instrument_polarization_calibration_task(
|
|
|
438
439
|
|
|
439
440
|
|
|
440
441
|
def test_sp_instrument_polarization_calibration_task(
|
|
441
|
-
sp_instrument_polarization_calibration_task,
|
|
442
|
+
sp_instrument_polarization_calibration_task,
|
|
443
|
+
mocker,
|
|
444
|
+
fake_gql_client,
|
|
442
445
|
):
|
|
443
446
|
"""
|
|
444
447
|
Given: An InstrumentPolarizationCalibration task
|
|
@@ -447,7 +450,7 @@ def test_sp_instrument_polarization_calibration_task(
|
|
|
447
450
|
"""
|
|
448
451
|
|
|
449
452
|
mocker.patch(
|
|
450
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
453
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
451
454
|
)
|
|
452
455
|
|
|
453
456
|
# When
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"""Test the linearity correction task."""
|
|
2
|
+
|
|
2
3
|
import re
|
|
3
4
|
from dataclasses import dataclass
|
|
4
5
|
from datetime import datetime
|
|
@@ -10,15 +11,14 @@ from dkist_header_validator import spec122_validator
|
|
|
10
11
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
11
12
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
12
13
|
from dkist_processing_common.models.tags import Tag
|
|
13
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
14
14
|
from dkist_service_configuration.logging import logger
|
|
15
15
|
|
|
16
16
|
from dkist_processing_cryonirsp.models.constants import CryonirspBudName
|
|
17
17
|
from dkist_processing_cryonirsp.models.exposure_conditions import AllowableOpticalDensityFilterNames
|
|
18
18
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
19
19
|
from dkist_processing_cryonirsp.tasks.linearity_correction import LinearityCorrection
|
|
20
|
-
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
21
20
|
from dkist_processing_cryonirsp.tests.conftest import CryonirspConstantsDb
|
|
21
|
+
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
22
22
|
from dkist_processing_cryonirsp.tests.conftest import generate_fits_frame
|
|
23
23
|
from dkist_processing_cryonirsp.tests.header_models import CryonirspHeadersValidNonLinearizedFrames
|
|
24
24
|
|
|
@@ -143,6 +143,7 @@ def linearity_correction(
|
|
|
143
143
|
def test_linearity_correction(
|
|
144
144
|
linearity_correction,
|
|
145
145
|
mocker,
|
|
146
|
+
fake_gql_client,
|
|
146
147
|
arm_id,
|
|
147
148
|
frames_in_ramp,
|
|
148
149
|
num_chunks,
|
|
@@ -154,7 +155,7 @@ def test_linearity_correction(
|
|
|
154
155
|
Then: The non-linearized frames are linearized and produce the correct results.
|
|
155
156
|
"""
|
|
156
157
|
mocker.patch(
|
|
157
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
158
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
158
159
|
)
|
|
159
160
|
if num_chunks == 2:
|
|
160
161
|
mocker.patch(
|
|
@@ -5,7 +5,6 @@ from astropy.io import fits
|
|
|
5
5
|
from dkist_header_validator import spec122_validator
|
|
6
6
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
7
7
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
8
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
9
8
|
|
|
10
9
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
11
10
|
from dkist_processing_cryonirsp.tasks.make_movie_frames import MakeCryonirspMovieFrames
|
|
@@ -90,14 +89,14 @@ def movie_frames_task(tmp_path, recipe_run_id, init_cryonirsp_constants_db, requ
|
|
|
90
89
|
task._purge()
|
|
91
90
|
|
|
92
91
|
|
|
93
|
-
def test_make_movie_frames(movie_frames_task, mocker):
|
|
92
|
+
def test_make_movie_frames(movie_frames_task, mocker, fake_gql_client):
|
|
94
93
|
"""
|
|
95
94
|
Given: A MakeCryonirspMovieFrames task
|
|
96
95
|
When: Calling the task instance
|
|
97
96
|
Then: a fits file is made for each scan containing the movie frame for that scan
|
|
98
97
|
"""
|
|
99
98
|
mocker.patch(
|
|
100
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
99
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
101
100
|
)
|
|
102
101
|
task, map_scans, scan_steps, array_shape, is_polarimetric = movie_frames_task
|
|
103
102
|
expected_shape = array_shape
|
|
@@ -7,9 +7,9 @@ from astropy.units import Quantity
|
|
|
7
7
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
8
8
|
from dkist_processing_common.codecs.array import array_decoder
|
|
9
9
|
from dkist_processing_common.models.input_dataset import InputDatasetFilePointer
|
|
10
|
+
from hypothesis import HealthCheck
|
|
10
11
|
from hypothesis import example
|
|
11
12
|
from hypothesis import given
|
|
12
|
-
from hypothesis import HealthCheck
|
|
13
13
|
from hypothesis import settings
|
|
14
14
|
from hypothesis import strategies as st
|
|
15
15
|
from pydantic import BaseModel
|
|
@@ -20,9 +20,9 @@ from dkist_processing_cryonirsp.parsers.optical_density_filters import (
|
|
|
20
20
|
ALLOWABLE_OPTICAL_DENSITY_FILTERS,
|
|
21
21
|
)
|
|
22
22
|
from dkist_processing_cryonirsp.tasks.cryonirsp_base import CryonirspTaskBase
|
|
23
|
-
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
24
23
|
from dkist_processing_cryonirsp.tests.conftest import CryonirspConstantsDb
|
|
25
24
|
from dkist_processing_cryonirsp.tests.conftest import TestingParameters
|
|
25
|
+
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
26
26
|
|
|
27
27
|
# The property names of all parameters on `CryonirspParsingParameters`
|
|
28
28
|
PARSE_PARAMETER_NAMES = [
|
|
@@ -44,8 +44,7 @@ def basic_science_task_with_parameter_mixin(
|
|
|
44
44
|
obs_ip_start_time: str = testing_obs_ip_start_time,
|
|
45
45
|
):
|
|
46
46
|
class Task(CryonirspTaskBase):
|
|
47
|
-
def run(self):
|
|
48
|
-
...
|
|
47
|
+
def run(self): ...
|
|
49
48
|
|
|
50
49
|
init_cryonirsp_constants_db(recipe_run_id, CryonirspConstantsDb())
|
|
51
50
|
with Task(
|
|
@@ -11,7 +11,6 @@ from astropy.io import fits
|
|
|
11
11
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
12
12
|
from dkist_processing_common.models.constants import BudName
|
|
13
13
|
from dkist_processing_common.tasks import WorkflowTaskBase
|
|
14
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
15
14
|
|
|
16
15
|
from dkist_processing_cryonirsp.models.constants import CryonirspBudName
|
|
17
16
|
from dkist_processing_cryonirsp.models.exposure_conditions import AllowableOpticalDensityFilterNames
|
|
@@ -345,10 +344,10 @@ def make_non_linearized_test_frames(
|
|
|
345
344
|
|
|
346
345
|
@pytest.fixture
|
|
347
346
|
def parse_linearized_task(
|
|
348
|
-
tmp_path, recipe_run_id, assign_input_dataset_doc_to_task, mocker, arm_id
|
|
347
|
+
tmp_path, recipe_run_id, assign_input_dataset_doc_to_task, mocker, fake_gql_client, arm_id
|
|
349
348
|
):
|
|
350
349
|
mocker.patch(
|
|
351
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
350
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
352
351
|
)
|
|
353
352
|
if arm_id == "CI":
|
|
354
353
|
parsing_class = ParseL0CryonirspCILinearizedData
|
|
@@ -376,9 +375,9 @@ def parse_linearized_task(
|
|
|
376
375
|
|
|
377
376
|
|
|
378
377
|
@pytest.fixture
|
|
379
|
-
def parse_non_linearized_task(tmp_path, recipe_run_id, mocker):
|
|
378
|
+
def parse_non_linearized_task(tmp_path, recipe_run_id, mocker, fake_gql_client):
|
|
380
379
|
mocker.patch(
|
|
381
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
380
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
382
381
|
)
|
|
383
382
|
with ParseL0CryonirspRampData(
|
|
384
383
|
recipe_run_id=recipe_run_id,
|
|
@@ -981,6 +980,7 @@ def test_parse_cryonirsp_linearized_incomplete_raster_scan(
|
|
|
981
980
|
|
|
982
981
|
assert task.constants._db_dict[CryonirspBudName.num_scan_steps.value] == num_scan_steps - 1
|
|
983
982
|
assert task.constants._db_dict[CryonirspBudName.num_map_scans.value] == num_map_scans
|
|
983
|
+
assert task.constants._db_dict[CryonirspBudName.num_meas.value] == 2
|
|
984
984
|
|
|
985
985
|
|
|
986
986
|
@pytest.mark.parametrize("arm_id", ["CI", "SP"])
|
|
@@ -1275,6 +1275,12 @@ def test_parse_cryonirsp_linearized_data_constants(
|
|
|
1275
1275
|
task.constants._db_dict[CryonirspBudName.grating_constant.value] == 770970.3576216539
|
|
1276
1276
|
) # From `SimpleModulatedHeaders`
|
|
1277
1277
|
|
|
1278
|
+
assert task.constants._db_dict["CAMERA_NAME"] == "camera_name"
|
|
1279
|
+
assert task.constants._db_dict["DARK_GOS_LEVEL3_STATUS"] == "lamp"
|
|
1280
|
+
assert task.constants._db_dict["SOLAR_GAIN_GOS_LEVEL3_STATUS"] == "clear"
|
|
1281
|
+
assert task.constants._db_dict["SOLAR_GAIN_NUM_RAW_FRAMES_PER_FPA"] == 10
|
|
1282
|
+
assert task.constants._db_dict["POLCAL_NUM_RAW_FRAMES_PER_FPA"] == 10
|
|
1283
|
+
|
|
1278
1284
|
|
|
1279
1285
|
@pytest.mark.parametrize("arm_id", ["SP"])
|
|
1280
1286
|
def test_parse_cryonirsp_linearized_data_internal_scan_loops_as_map_scan_and_scan_step(
|
|
@@ -1307,9 +1313,9 @@ def test_parse_cryonirsp_linearized_data_internal_scan_loops_as_map_scan_and_sca
|
|
|
1307
1313
|
num_alt_scan_steps = 3
|
|
1308
1314
|
|
|
1309
1315
|
def make_dual_scan_loop_headers(translated_header):
|
|
1310
|
-
translated_header[
|
|
1311
|
-
|
|
1312
|
-
|
|
1316
|
+
translated_header["CNP2DSS"] = (
|
|
1317
|
+
0.0 # This triggers the parsing of the dual internal scan loops
|
|
1318
|
+
)
|
|
1313
1319
|
translated_header["CNP1DNSP"] = num_alt_scan_steps # inner loop -- becomes num scan steps
|
|
1314
1320
|
translated_header["CNP2DNSP"] = num_alt_maps # outer loop -- becomes num map scans
|
|
1315
1321
|
translated_header["CNP1DCUR"] = (translated_header["CNCURSCN"] - 1) % num_alt_scan_steps + 1
|
|
@@ -8,7 +8,6 @@ from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
|
8
8
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
9
9
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
10
10
|
from dkist_processing_common.models.task_name import TaskName
|
|
11
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
12
11
|
|
|
13
12
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
14
13
|
from dkist_processing_cryonirsp.tasks.quality_metrics import CryonirspL0QualityMetrics
|
|
@@ -161,7 +160,7 @@ def test_l0_quality_task(
|
|
|
161
160
|
assert len(files) > 0
|
|
162
161
|
|
|
163
162
|
|
|
164
|
-
def test_l1_quality_task(cryo_l1_quality_task, mocker):
|
|
163
|
+
def test_l1_quality_task(cryo_l1_quality_task, mocker, fake_gql_client):
|
|
165
164
|
"""
|
|
166
165
|
Given: A CryonirspL1QualityMetrics task
|
|
167
166
|
When: Calling the task instance
|
|
@@ -169,7 +168,7 @@ def test_l1_quality_task(cryo_l1_quality_task, mocker):
|
|
|
169
168
|
and a single noise measurement and datetime is recorded for L1 file for each Stokes Q, U, and V
|
|
170
169
|
"""
|
|
171
170
|
mocker.patch(
|
|
172
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
171
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
173
172
|
)
|
|
174
173
|
# When
|
|
175
174
|
task = cryo_l1_quality_task
|
|
@@ -7,12 +7,12 @@ from dkist_header_validator import spec122_validator
|
|
|
7
7
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
8
8
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
9
9
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
10
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
11
10
|
|
|
12
11
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
13
12
|
from dkist_processing_cryonirsp.tasks.sp_beam_boundaries import SPBeamBoundariesCalibration
|
|
14
|
-
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
15
13
|
from dkist_processing_cryonirsp.tests.conftest import CryonirspConstantsDb
|
|
14
|
+
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
15
|
+
from dkist_processing_cryonirsp.tests.conftest import fake_gql_client
|
|
16
16
|
from dkist_processing_cryonirsp.tests.conftest import generate_fits_frame
|
|
17
17
|
from dkist_processing_cryonirsp.tests.header_models import CryonirspHeadersValidSPSolarGainFrames
|
|
18
18
|
|
|
@@ -85,14 +85,14 @@ def compute_beam_boundaries_task(
|
|
|
85
85
|
task._purge()
|
|
86
86
|
|
|
87
87
|
|
|
88
|
-
def test_compute_beam_boundaries_task(compute_beam_boundaries_task, mocker):
|
|
88
|
+
def test_compute_beam_boundaries_task(compute_beam_boundaries_task, mocker, fake_gql_client):
|
|
89
89
|
"""
|
|
90
90
|
Given: A SPBeamBoundariesCalibration task
|
|
91
91
|
When: Calling the task instance with known input data
|
|
92
92
|
Then: The correct beam boundary values are created and saved as intermediate files
|
|
93
93
|
"""
|
|
94
94
|
mocker.patch(
|
|
95
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
95
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
96
96
|
)
|
|
97
97
|
# Given
|
|
98
98
|
task, arm_id = compute_beam_boundaries_task
|
|
@@ -5,7 +5,6 @@ import pytest
|
|
|
5
5
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
6
6
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
7
7
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
8
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
9
8
|
from dkist_processing_math import transform
|
|
10
9
|
|
|
11
10
|
from dkist_processing_cryonirsp.codecs.fits import cryo_fits_array_decoder
|
|
@@ -13,8 +12,8 @@ from dkist_processing_cryonirsp.models.exposure_conditions import AllowableOptic
|
|
|
13
12
|
from dkist_processing_cryonirsp.models.exposure_conditions import ExposureConditions
|
|
14
13
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
15
14
|
from dkist_processing_cryonirsp.tasks.sp_geometric import SPGeometricCalibration
|
|
16
|
-
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
17
15
|
from dkist_processing_cryonirsp.tests.conftest import CryonirspConstantsDb
|
|
16
|
+
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
18
17
|
from dkist_processing_cryonirsp.tests.conftest import generate_214_l0_fits_frame
|
|
19
18
|
from dkist_processing_cryonirsp.tests.header_models import CryonirspHeadersValidSPSolarGainFrames
|
|
20
19
|
|
|
@@ -287,7 +286,7 @@ def geometric_calibration_task_with_simple_raw_data(
|
|
|
287
286
|
task._purge()
|
|
288
287
|
|
|
289
288
|
|
|
290
|
-
def test_geometric_task(geometric_calibration_task_that_completes, mocker):
|
|
289
|
+
def test_geometric_task(geometric_calibration_task_that_completes, mocker, fake_gql_client):
|
|
291
290
|
"""
|
|
292
291
|
Given: A set of raw solar gain images and necessary intermediate calibrations
|
|
293
292
|
When: Running the geometric task
|
|
@@ -295,7 +294,7 @@ def test_geometric_task(geometric_calibration_task_that_completes, mocker):
|
|
|
295
294
|
"""
|
|
296
295
|
# See the note in the fixture above: this test does NOT test for accuracy of the calibration
|
|
297
296
|
mocker.patch(
|
|
298
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
297
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
299
298
|
)
|
|
300
299
|
task, beam_shape = geometric_calibration_task_that_completes
|
|
301
300
|
task()
|
|
@@ -6,7 +6,6 @@ from astropy.io import fits
|
|
|
6
6
|
from dkist_header_validator import spec122_validator
|
|
7
7
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
8
8
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
9
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
10
9
|
|
|
11
10
|
from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
12
11
|
from dkist_processing_cryonirsp.tasks.make_movie_frames import SPMakeCryonirspMovieFrames
|
|
@@ -95,14 +94,14 @@ def sp_movie_frames_task(tmp_path, recipe_run_id, init_cryonirsp_constants_db, r
|
|
|
95
94
|
task._purge()
|
|
96
95
|
|
|
97
96
|
|
|
98
|
-
def test_sp_make_movie_frames(sp_movie_frames_task, mocker):
|
|
97
|
+
def test_sp_make_movie_frames(sp_movie_frames_task, mocker, fake_gql_client):
|
|
99
98
|
"""
|
|
100
99
|
Given: A SPMakeCryonirspMovieFrames task
|
|
101
100
|
When: Calling the task instance
|
|
102
101
|
Then: a fits file is made for each scan containing the movie frame for that scan
|
|
103
102
|
"""
|
|
104
103
|
mocker.patch(
|
|
105
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
104
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
106
105
|
)
|
|
107
106
|
task, map_scans, scan_steps, array_shape, is_polarimetric = sp_movie_frames_task
|
|
108
107
|
if scan_steps > 1:
|
|
@@ -11,7 +11,6 @@ from dkist_header_validator import spec122_validator
|
|
|
11
11
|
from dkist_processing_common._util.scratch import WorkflowFileSystem
|
|
12
12
|
from dkist_processing_common.codecs.fits import fits_array_encoder
|
|
13
13
|
from dkist_processing_common.codecs.fits import fits_hdulist_encoder
|
|
14
|
-
from dkist_processing_common.tests.conftest import FakeGQLClient
|
|
15
14
|
|
|
16
15
|
from dkist_processing_cryonirsp.models.exposure_conditions import AllowableOpticalDensityFilterNames
|
|
17
16
|
from dkist_processing_cryonirsp.models.exposure_conditions import ExposureConditions
|
|
@@ -20,8 +19,8 @@ from dkist_processing_cryonirsp.models.tags import CryonirspTag
|
|
|
20
19
|
from dkist_processing_cryonirsp.parsers.cryonirsp_l0_fits_access import CryonirspL0FitsAccess
|
|
21
20
|
from dkist_processing_cryonirsp.tasks.sp_science import CalibrationCollection
|
|
22
21
|
from dkist_processing_cryonirsp.tasks.sp_science import SPScienceCalibration
|
|
23
|
-
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
24
22
|
from dkist_processing_cryonirsp.tests.conftest import CryonirspConstantsDb
|
|
23
|
+
from dkist_processing_cryonirsp.tests.conftest import cryonirsp_testing_parameters_factory
|
|
25
24
|
from dkist_processing_cryonirsp.tests.conftest import generate_fits_frame
|
|
26
25
|
from dkist_processing_cryonirsp.tests.header_models import CryonirspHeadersValidObserveFrames
|
|
27
26
|
|
|
@@ -320,7 +319,7 @@ def calibrated_array_and_header_dicts(
|
|
|
320
319
|
return array_dict, header_dict, array_shape
|
|
321
320
|
|
|
322
321
|
|
|
323
|
-
def test_sp_science_calibration_task(sp_science_calibration_task, mocker):
|
|
322
|
+
def test_sp_science_calibration_task(sp_science_calibration_task, mocker, fake_gql_client):
|
|
324
323
|
"""
|
|
325
324
|
Given: A SPScienceCalibration task
|
|
326
325
|
When: Calling the task instance
|
|
@@ -328,7 +327,7 @@ def test_sp_science_calibration_task(sp_science_calibration_task, mocker):
|
|
|
328
327
|
"""
|
|
329
328
|
|
|
330
329
|
mocker.patch(
|
|
331
|
-
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=
|
|
330
|
+
"dkist_processing_common.tasks.mixin.metadata_store.GraphQLClient", new=fake_gql_client
|
|
332
331
|
)
|
|
333
332
|
|
|
334
333
|
# When
|