Coverage for tests/test_import.py: 31%

26 statements  

« prev     ^ index     » next       coverage.py v7.2.5, created at 2023-05-13 02:56 -0700

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/>. 

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 pipe_tasks does not import all the task code by default and not 

33 every file currently has a test. 

34 """ 

35 

36 def test_import(self): 

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

38 

39 def test_import_script(self): 

40 self.assertImport("lsst.pipe.tasks.script") 

41 

42 def test_import_dataFrameActions(self): 

43 self.assertImport("lsst.pipe.tasks.dataFrameActions") 

44 

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 

58 

59 

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

61 unittest.main()