Coverage for tests/test_ingest.py : 55%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1# This file is part of obs_decam.
2#
3# Developed for the LSST Data Management System.
4# This product includes software developed by the LSST Project
5# (http://www.lsst.org).
6# See the COPYRIGHT file at the top-level directory of this distribution
7# for details of code ownership.
8#
9# This program is free software: you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation, either version 3 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program. If not, see <http://www.gnu.org/licenses/>.
22"""Unit tests for gen3 DECam raw data ingest.
23"""
25import unittest
26import os
27import lsst.utils.tests
29from lsst.obs.base.ingest_tests import IngestTestBase
30import lsst.obs.decam
32testDataPackage = "testdata_decam"
33try:
34 testDataDirectory = lsst.utils.getPackageDir(testDataPackage)
35except LookupError:
36 testDataDirectory = None
39@unittest.skipIf(testDataDirectory is None, "testdata_decam must be set up")
40class DecamIngestTestCase(IngestTestBase, lsst.utils.tests.TestCase):
41 curatedCalibrationDatasetTypes = ("camera", "defects")
43 def setUp(self):
44 self.ingestDir = os.path.dirname(__file__)
45 self.instrument = lsst.obs.decam.DarkEnergyCamera()
46 # DecamRawIngestTask ingests every detector in each raw file, so we
47 # only have to specify one file here, but should get two dataIds
48 # in the output repo.
49 self.file = os.path.join(testDataDirectory, "rawData", "raw", "raw.fits")
50 self.dataIds = [dict(instrument="DECam", exposure=229388, detector=25),
51 dict(instrument="DECam", exposure=229388, detector=1)]
52 self.RawIngestTask = lsst.obs.decam.DecamRawIngestTask
54 super().setUp()
57@unittest.skipIf(testDataDirectory is None, "testdata_decam must be set up")
58class DecamIngestFullFileTestCase(IngestTestBase, lsst.utils.tests.TestCase):
59 """Test ingesting a file that contains all "normal" DECam HDUs.
60 """
61 # No need to test writeCuratedCalibrations again
62 curatedCalibrationDatasetTypes = None
64 def setUp(self):
65 self.ingestDir = os.path.dirname(__file__)
66 self.instrument = lsst.obs.decam.DarkEnergyCamera()
67 # DecamRawIngestTask ingests every detector in each raw file, so we
68 # only have to specify one file here, but should get many dataIds
69 # in the output repo.
70 self.file = os.path.join(testDataDirectory, "rawData", "raw",
71 "c4d_150227_012718_ori-stripped.fits.fz")
72 self.dataIds = [{"instrument": "DECam", "exposure": 415282, "detector": i} for i in range(1, 63)]
73 self.RawIngestTask = lsst.obs.decam.DecamRawIngestTask
75 super().setUp()
78@unittest.skipIf(testDataDirectory is None, "testdata_decam must be set up")
79class DecamIngestShuffledFullFileTestCase(IngestTestBase, lsst.utils.tests.TestCase):
80 """Test ingesting a file that contains all detectors in a random order.
81 """
82 # No need to test writeCuratedCalibrations again
83 curatedCalibrationDatasetTypes = None
85 def setUp(self):
86 self.ingestDir = os.path.dirname(__file__)
87 self.instrument = lsst.obs.decam.DarkEnergyCamera()
88 # DecamRawIngestTask ingests every detector in each raw file, so we
89 # only have to specify one file here, but should get many dataIds
90 # in the output repo.
91 self.file = os.path.join(testDataDirectory, "rawData", "raw",
92 "c4d_150227_012718_ori-stripped-shuffled.fits.fz")
93 self.dataIds = [{"instrument": "DECam", "exposure": 415282, "detector": i} for i in range(1, 63)]
94 self.RawIngestTask = lsst.obs.decam.DecamRawIngestTask
96 super().setUp()
99def setup_module(module):
100 lsst.utils.tests.init()
103if __name__ == "__main__": 103 ↛ 104line 103 didn't jump to line 104, because the condition on line 103 was never true
104 lsst.utils.tests.init()
105 unittest.main()