Coverage for tests/test_ingest.py : 53%

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 def setUp(self):
42 self.ingestDir = os.path.dirname(__file__)
43 self.instrument = lsst.obs.decam.DarkEnergyCamera()
44 # DecamRawIngestTask ingests every detector in each raw file, so we
45 # only have to specify one file here, but should get two dataIds
46 # in the output repo.
47 self.file = os.path.join(testDataDirectory, "rawData", "raw", "raw.fits")
48 self.dataIds = [dict(instrument="DECam", exposure=229388, detector=25),
49 dict(instrument="DECam", exposure=229388, detector=1)]
50 self.RawIngestTask = lsst.obs.decam.DecamRawIngestTask
52 super().setUp()
55@unittest.skipIf(testDataDirectory is None, "testdata_decam must be set up")
56class DecamIngestFullFileTestCase(IngestTestBase, lsst.utils.tests.TestCase):
57 """Test ingesting a file that contains all "normal" DECam HDUs.
58 """
59 def setUp(self):
60 self.ingestDir = os.path.dirname(__file__)
61 self.instrument = lsst.obs.decam.DarkEnergyCamera()
62 # DecamRawIngestTask ingests every detector in each raw file, so we
63 # only have to specify one file here, but should get many dataIds
64 # in the output repo.
65 self.file = os.path.join(testDataDirectory, "rawData", "raw",
66 "c4d_150227_012718_ori-stripped.fits.fz")
67 self.dataIds = [{"instrument": "DECam", "exposure": 415282, "detector": i} for i in range(1, 63)]
68 self.RawIngestTask = lsst.obs.decam.DecamRawIngestTask
70 super().setUp()
73@unittest.skipIf(testDataDirectory is None, "testdata_decam must be set up")
74class DecamIngestShuffledFullFileTestCase(IngestTestBase, lsst.utils.tests.TestCase):
75 """Test ingesting a file that contains all detectors in a random order.
76 """
77 def setUp(self):
78 self.ingestDir = os.path.dirname(__file__)
79 self.instrument = lsst.obs.decam.DarkEnergyCamera()
80 # DecamRawIngestTask ingests every detector in each raw file, so we
81 # only have to specify one file here, but should get many dataIds
82 # in the output repo.
83 self.file = os.path.join(testDataDirectory, "rawData", "raw",
84 "c4d_150227_012718_ori-stripped-shuffled.fits.fz")
85 self.dataIds = [{"instrument": "DECam", "exposure": 415282, "detector": i} for i in range(1, 63)]
86 self.RawIngestTask = lsst.obs.decam.DecamRawIngestTask
88 super().setUp()
91def setup_module(module):
92 lsst.utils.tests.init()
95if __name__ == "__main__": 95 ↛ 96line 95 didn't jump to line 96, because the condition on line 95 was never true
96 lsst.utils.tests.init()
97 unittest.main()