Source code for punchpipe.control.tests

from datetime import UTC, datetime

import numpy as np
import pytest
from astropy.nddata import StdDevUncertainty
from astropy.wcs import WCS
from ndcube import NDCube
from punchbowl.data import NormalizedMetadata

from punchpipe.control.db import File
from punchpipe.control.util import match_data_with_file_db_entry


[docs] @pytest.fixture() def sample_punchdata(shape=(50, 50), level=0): data = np.random.random(shape) uncertainty = StdDevUncertainty(np.sqrt(np.abs(data))) wcs = WCS(naxis=2) wcs.wcs.ctype = "HPLN-ARC", "HPLT-ARC" wcs.wcs.cunit = "deg", "deg" wcs.wcs.cdelt = 0.1, 0.1 wcs.wcs.crpix = 0, 0 wcs.wcs.crval = 1, 1 wcs.wcs.cname = "HPC lon", "HPC lat" meta = NormalizedMetadata({"LEVEL": level}) return NDCube(data=data, uncertainty=uncertainty, wcs=wcs, meta=meta)
[docs] def test_match_data_with_file_db_entry_fails_on_empty_list(sample_punchdata): file_db_entry_list = [] with pytest.raises(RuntimeError): match_data_with_file_db_entry(sample_punchdata, file_db_entry_list)
[docs] def test_match_data_with_file_db_entry(sample_punchdata): file_db_entry_list = [ File( level=1, file_type="XX", observatory="Y", file_version="0", software_version="0", date_created=datetime.now(UTC), date_obs=datetime.now(UTC), date_beg=datetime.now(UTC), date_end=datetime.now(UTC), polarization="ZZ", state="created", processing_flow=0, ), File( level=100, file_type="XX", observatory="Y", file_version="0", software_version="0", date_created=datetime.now(UTC), date_obs=datetime.now(UTC), date_beg=datetime.now(UTC), date_end=datetime.now(UTC), polarization="ZZ", state="created", processing_flow=0, ), ] output = match_data_with_file_db_entry(sample_punchdata, file_db_entry_list) assert len(output) == 1 assert output == file_db_entry_list[0]