Coverage for tests/test_cmd_line_embedder.py: 22%
45 statements
« prev ^ index » next coverage.py v7.3.0, created at 2023-09-02 09:51 +0000
« prev ^ index » next coverage.py v7.3.0, created at 2023-09-02 09:51 +0000
1"""Unit tests for cmd_line_embedder.py
2"""
3import unittest
5from lsst.ctrl.bps import GenericWorkflowFile
6from lsst.ctrl.bps.panda.cmd_line_embedder import CommandLineEmbedder
9class TestCmdLineEmbedder(unittest.TestCase):
10 """Test CmdLineEmbedder class"""
12 def setUp(self):
13 self.cmd_line_0 = "<ENV:CTRL_MPEXEC_DIR>/mycmd -b {key1} -c {key2} -d {key3} {key4}"
14 self.cmd_line_1 = "<ENV:CTRL_MPEXEC_DIR>/mycmd -b <FILE:file3> -c <FILE:file4> -d {key3} {key4}"
15 self.cmd_line_2 = (
16 "<ENV:CTRL_MPEXEC_DIR>/mycmd -b <FILE:sfile1> -c <FILE:file3> -d <FILE:sfile2> <FILE:file4>"
17 )
18 self.sfile1 = GenericWorkflowFile("sfile1", "/path/to/sfile1.yaml", False, True, True)
19 self.sfile2 = GenericWorkflowFile("sfile2", "/path/to/sfile2.yaml", False, True, True)
20 self.file3 = GenericWorkflowFile("file3", "/path/to/file3.yaml", True, False, False)
21 self.file4 = GenericWorkflowFile("file4", "/path/to/file4.yaml", True, False, False)
23 self.ans_cmd_line_0 = "<ENV:CTRL_MPEXEC_DIR>/mycmd -b {key1} -c {key2} -d {key3} {key4}"
24 self.ans_cmd_line_1 = "<ENV:CTRL_MPEXEC_DIR>/mycmd -b <FILE:file3> -c <FILE:file4> -d {key3} {key4}"
25 self.ans_cmd_line_2 = (
26 "<ENV:CTRL_MPEXEC_DIR>/mycmd -b /path/to/sfile1.yaml -c <FILE:file3> "
27 "-d /path/to/sfile2.yaml <FILE:file4>"
28 )
30 def testReplaceStaticFilesNoFiles(self):
31 orig_cmd_line = self.cmd_line_0
32 orig_cmd_line_copy = orig_cmd_line
34 cmd_line_embedder = CommandLineEmbedder({})
35 new_cmd_line = cmd_line_embedder.replace_static_files(orig_cmd_line, [])
37 # Ensure no side effect
38 self.assertEqual(orig_cmd_line, orig_cmd_line_copy)
39 self.assertEqual(new_cmd_line, orig_cmd_line_copy)
41 def testReplaceStaticFilesMissingFiles(self):
42 orig_cmd_line = self.cmd_line_1
43 orig_cmd_line_copy = orig_cmd_line
45 cmd_line_embedder = CommandLineEmbedder({})
46 with self.assertRaises(RuntimeError):
47 _ = cmd_line_embedder.replace_static_files(orig_cmd_line, [self.sfile1, self.file3])
49 self.assertEqual(orig_cmd_line, orig_cmd_line_copy)
51 def testReplaceStaticFilesNone(self):
52 orig_cmd_line = self.cmd_line_1
53 orig_cmd_line_copy = orig_cmd_line
55 cmd_line_embedder = CommandLineEmbedder({})
56 new_cmd_line = cmd_line_embedder.replace_static_files(
57 orig_cmd_line, [self.sfile1, self.sfile2, self.file3, self.file4]
58 )
60 self.assertEqual(orig_cmd_line, orig_cmd_line_copy)
61 self.assertEqual(new_cmd_line, self.ans_cmd_line_1)
63 def testReplaceStaticFilesSome(self):
64 orig_cmd_line = self.cmd_line_2
65 orig_cmd_line_copy = orig_cmd_line
67 cmd_line_embedder = CommandLineEmbedder({})
68 new_cmd_line = cmd_line_embedder.replace_static_files(
69 orig_cmd_line, [self.sfile1, self.sfile2, self.file3, self.file4]
70 )
72 self.assertEqual(orig_cmd_line, orig_cmd_line_copy)
73 self.assertEqual(new_cmd_line, self.ans_cmd_line_2)
76if __name__ == "__main__": 76 ↛ 77line 76 didn't jump to line 77, because the condition on line 76 was never true
77 unittest.main()