Coverage for tests/test_import.py: 31%
26 statements
« prev ^ index » next coverage.py v6.5.0, created at 2023-04-15 10:49 +0000
« prev ^ index » next coverage.py v6.5.0, created at 2023-04-15 10:49 +0000
1# This file is part of pipe_tasks.
2#
3# LSST Data Management System
4# This product includes software developed by the
5# LSST Project (http://www.lsst.org/).
6# See COPYRIGHT file at the top of the source tree.
7#
8# This program is free software: you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation, either version 3 of the License, or
11# (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the LSST License Statement and
19# the GNU General Public License along with this program. If not,
20# see <https://www.lsstcorp.org/LegalNotices/>.
22import importlib.resources
23import os.path
24import unittest
26from lsst.utils import doImport
29class ImportTestCase(unittest.TestCase):
30 """Test that every file can be imported.
32 pipe_tasks does not import all the task code by default and not
33 every file currently has a test.
34 """
36 def test_import(self):
37 self.assertImport("lsst.pipe.tasks")
39 def test_import_script(self):
40 self.assertImport("lsst.pipe.tasks.script")
42 def test_import_dataFrameActions(self):
43 self.assertImport("lsst.pipe.tasks.dataFrameActions")
45 def assertImport(self, root_pkg):
46 for file in importlib.resources.contents(root_pkg):
47 if not file.endswith(".py"):
48 continue
49 if file.startswith("__"):
50 continue
51 root, ext = os.path.splitext(file)
52 module_name = f"{root_pkg}.{root}"
53 with self.subTest(module=module_name):
54 try:
55 doImport(module_name)
56 except ImportError as e:
57 raise AssertionError(f"Error importing module {module_name}: {e}") from e
60if __name__ == "__main__": 60 ↛ 61line 60 didn't jump to line 61, because the condition on line 60 was never true
61 unittest.main()