Coverage for tests/test_import.py: 28%

22 statements  

« prev     ^ index     » next       coverage.py v6.5.0, created at 2023-04-01 02:57 -0700

1# This file is part of drp_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/>. 

21 

22import importlib.resources 

23import os.path 

24import unittest 

25 

26from lsst.utils import doImport 

27 

28 

29class ImportTestCase(unittest.TestCase): 

30 """Test that every file can be imported. 

31 

32 drp_tasks does not import all the task code by default and not 

33 every file will always have a test. 

34 """ 

35 

36 def test_import(self): 

37 self.assertImport("lsst.drp.tasks") 

38 

39 def assertImport(self, root_pkg): 

40 for file in importlib.resources.contents(root_pkg): 

41 if not file.endswith(".py"): 

42 continue 

43 if file.startswith("__"): 

44 continue 

45 root, ext = os.path.splitext(file) 

46 module_name = f"{root_pkg}.{root}" 

47 with self.subTest(module=module_name): 

48 try: 

49 doImport(module_name) 

50 except ImportError as e: 

51 raise AssertionError(f"Error importing module {module_name}: {e}") from e 

52 

53 

54if __name__ == "__main__": 54 ↛ 55line 54 didn't jump to line 55, because the condition on line 54 was never true

55 unittest.main()