Commit b28ac8301f17e0cf3e8639c9a806a832eba31ebf
1 parent
42e375b0
Use testing.py base class for unit testing
Showing
38 changed files
with
987 additions
and
1329 deletions
cscripts/Makefile.am
| ... | ... | @@ -69,8 +69,8 @@ linkscripts = cscaldb \ |
| 69 | 69 | |
| 70 | 70 | # Test scripts to be distributed in $(pyexecdir)/cscripts/tests |
| 71 | 71 | testscripts = tests/__init__.py \ |
| 72 | + ../test/testing.py \ | |
| 72 | 73 | ../test/test_python_cscripts.py \ |
| 73 | - ../test/test_cscripts_class.py \ | |
| 74 | 74 | ../test/test_cscaldb.py \ |
| 75 | 75 | ../test/test_csmodelinfo.py \ |
| 76 | 76 | ../test/test_csmodelmerge.py \ | ... | ... |
pyext/Makefile.am
test/test_cscaldb.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import cscripts |
| 23 | +import test_cscripts_class | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ============================= # |
| 27 | 27 | # Test class for cscaldb script # |
| 28 | 28 | # ============================= # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test_cscripts_class.cscripts_test): | |
| 30 | 30 | """ |
| 31 | - Test class for cscaldb script. | |
| 31 | + Test class for cscaldb script | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the cslightcrv script by using it |
| 34 | 34 | from the command line and from Python. |
| ... | ... | @@ -40,7 +40,7 @@ class Test(gammalib.GPythonTestSuite): |
| 40 | 40 | Constructor. |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test_cscripts_class.cscripts_test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Return |
| 46 | 46 | return |
| ... | ... | @@ -65,24 +65,19 @@ class Test(gammalib.GPythonTestSuite): |
| 65 | 65 | """ |
| 66 | 66 | Test cscaldb on the command line. |
| 67 | 67 | """ |
| 68 | - # Kluge to set the command (installed version has no README file) | |
| 69 | - if os.path.isfile('README.md'): | |
| 70 | - cscaldb = '../cscripts/cscaldb.py' | |
| 71 | - else: | |
| 72 | - cscaldb = 'cscaldb' | |
| 68 | + # Set script name | |
| 69 | + cscaldb = self._script('cscaldb') | |
| 73 | 70 | |
| 74 | 71 | # Setup cscaldb command |
| 75 | 72 | cmd = cscaldb+' logfile="cscaldb_cmd1.log" chatter=1' |
| 76 | 73 | |
| 77 | - # Execute cscaldb, make sure we catch any exception | |
| 78 | - try: | |
| 79 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 80 | - except: | |
| 81 | - pass | |
| 74 | + # Check if execution of wrong command fails | |
| 75 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 76 | + 'Self test of test script') | |
| 82 | 77 | |
| 83 | 78 | # Check if execution was successful |
| 84 | - self.test_assert(rc == 0, | |
| 85 | - 'Successful cscaldb execution on command line') | |
| 79 | + self.test_assert(self._execute(cmd) == 0, | |
| 80 | + 'Check successful execution from command line') | |
| 86 | 81 | |
| 87 | 82 | # Return |
| 88 | 83 | return |
| ... | ... | @@ -94,8 +89,8 @@ class Test(gammalib.GPythonTestSuite): |
| 94 | 89 | """ |
| 95 | 90 | # Set-up cscaldb |
| 96 | 91 | caldb = cscripts.cscaldb() |
| 97 | - caldb['logfile'] = 'cscaldb_py1.log' | |
| 98 | - caldb['chatter'] = 2 | |
| 92 | + caldb['logfile'] = 'cscaldb_py1.log' | |
| 93 | + caldb['chatter'] = 2 | |
| 99 | 94 | |
| 100 | 95 | # Run script |
| 101 | 96 | caldb.logFileOpen() # Make sure we get a log file | ... | ... |
test/test_csfindobs.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import cscripts |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | -# ================================ # | |
| 26 | +# =============================== # | |
| 27 | 27 | # Test class for csfindobs script # |
| 28 | -# ================================ # | |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 28 | +# =============================== # | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for csfindobs script. | |
| 31 | + Test class for csfindobs script | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the csfindobs script by using it |
| 34 | 34 | from the command line and from Python. |
| ... | ... | @@ -40,7 +40,7 @@ class Test(gammalib.GPythonTestSuite): |
| 40 | 40 | Constructor. |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Return |
| 46 | 46 | return |
| ... | ... | @@ -65,11 +65,8 @@ class Test(gammalib.GPythonTestSuite): |
| 65 | 65 | """ |
| 66 | 66 | Test csfindobs on the command line. |
| 67 | 67 | """ |
| 68 | - # Kluge to set the command (installed version has no README file) | |
| 69 | - if os.path.isfile('README.md'): | |
| 70 | - csfindobs = '../cscripts/csfindobs.py' | |
| 71 | - else: | |
| 72 | - csfindobs = 'csfindobs' | |
| 68 | + # Set script name | |
| 69 | + csfindobs = self._script('csfindobs') | |
| 73 | 70 | |
| 74 | 71 | # Setup csfindobs command |
| 75 | 72 | cmd = csfindobs+' datapath="iactdata/"'+ \ |
| ... | ... | @@ -78,15 +75,13 @@ class Test(gammalib.GPythonTestSuite): |
| 78 | 75 | ' outfile="runlist_cmd1.dat"'+ \ |
| 79 | 76 | ' logfile="csfindobs_cmd1.log" chatter=1' |
| 80 | 77 | |
| 81 | - # Execute csfindobs, make sure we catch any exception | |
| 82 | - try: | |
| 83 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 84 | - except: | |
| 85 | - pass | |
| 78 | + # Check if execution of wrong command fails | |
| 79 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 80 | + 'Self test of test script') | |
| 86 | 81 | |
| 87 | 82 | # Check if execution was successful |
| 88 | - self.test_assert(rc == 0, | |
| 89 | - 'Successful csfindobs execution on command line') | |
| 83 | + self.test_assert(self._execute(cmd) == 0, | |
| 84 | + 'Check successful execution from command line') | |
| 90 | 85 | |
| 91 | 86 | # Check run list |
| 92 | 87 | self._check_runlist('runlist_cmd1.dat') |
| ... | ... | @@ -98,15 +93,9 @@ class Test(gammalib.GPythonTestSuite): |
| 98 | 93 | ' outfile="runlist_cmd2.dat"'+ \ |
| 99 | 94 | ' logfile="csfindobs_cmd2.log"' |
| 100 | 95 | |
| 101 | - # Execute csfindobs, make sure we catch any exception | |
| 102 | - try: | |
| 103 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 104 | - except: | |
| 105 | - pass | |
| 106 | - | |
| 107 | 96 | # Check if execution failed |
| 108 | - self.test_assert(rc != 0, | |
| 109 | - 'Failure of csfindobs execution on command line') | |
| 97 | + self.test_assert(self._execute(cmd) != 0, | |
| 98 | + 'Check invalid input file when executed from command line') | |
| 110 | 99 | |
| 111 | 100 | # Return |
| 112 | 101 | return | ... | ... |
test/test_csiactcopy.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import cscripts |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ================================ # |
| 27 | 27 | # Test class for csiactcopy script # |
| 28 | 28 | # ================================ # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for csiactcopy script. | |
| 31 | + Test class for csiactcopy script | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the csiactcopy script by using it |
| 34 | 34 | from the command line and from Python. |
| ... | ... | @@ -40,7 +40,7 @@ class Test(gammalib.GPythonTestSuite): |
| 40 | 40 | Constructor. |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Return |
| 46 | 46 | return |
| ... | ... | @@ -48,14 +48,14 @@ class Test(gammalib.GPythonTestSuite): |
| 48 | 48 | # Set test functions |
| 49 | 49 | def set(self): |
| 50 | 50 | """ |
| 51 | - Set all test functions. | |
| 51 | + Set all test functions | |
| 52 | 52 | """ |
| 53 | 53 | # Set test name |
| 54 | - self.name("csiactcopy") | |
| 54 | + self.name('csiactcopy') | |
| 55 | 55 | |
| 56 | 56 | # Append tests |
| 57 | - self.append(self._test_cmd, "Test csiactcopy on command line") | |
| 58 | - self.append(self._test_python, "Test csiactcopy from Python") | |
| 57 | + self.append(self._test_cmd, 'Test csiactcopy on command line') | |
| 58 | + self.append(self._test_python, 'Test csiactcopy from Python') | |
| 59 | 59 | |
| 60 | 60 | # Return |
| 61 | 61 | return |
| ... | ... | @@ -63,13 +63,10 @@ class Test(gammalib.GPythonTestSuite): |
| 63 | 63 | # Test csiactcopy on command line |
| 64 | 64 | def _test_cmd(self): |
| 65 | 65 | """ |
| 66 | - Test csiactcopy on the command line. | |
| 66 | + Test csiactcopy on the command line | |
| 67 | 67 | """ |
| 68 | - # Kluge to set the command (installed version has no README file) | |
| 69 | - if os.path.isfile("README.md"): | |
| 70 | - csiactcopy = "../cscripts/csiactcopy.py" | |
| 71 | - else: | |
| 72 | - csiactcopy = "csiactcopy" | |
| 68 | + # Set script name | |
| 69 | + csiactcopy = self._script('csiactcopy') | |
| 73 | 70 | |
| 74 | 71 | # Setup csiactcopy command |
| 75 | 72 | cmd = csiactcopy+' remote_master="iactdata/master.json"'+ \ |
| ... | ... | @@ -77,18 +74,16 @@ class Test(gammalib.GPythonTestSuite): |
| 77 | 74 | ' outpath="iactdata_cmd1"'+ \ |
| 78 | 75 | ' logfile="csiactcopy_cmd1.log" chatter=1' |
| 79 | 76 | |
| 80 | - # Execute csiactcopy, make sure we catch any exception | |
| 81 | - try: | |
| 82 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 83 | - except: | |
| 84 | - pass | |
| 77 | + # Check if execution of wrong command fails | |
| 78 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 79 | + 'Self test of test script') | |
| 85 | 80 | |
| 86 | 81 | # Check if execution was successful |
| 87 | - self.test_assert(rc == 0, | |
| 88 | - "Successful csiactcopy execution on command line") | |
| 82 | + self.test_assert(self._execute(cmd) == 0, | |
| 83 | + 'Check successful execution from command line') | |
| 89 | 84 | |
| 90 | 85 | # Check copy |
| 91 | - self._check_copy("iactdata_cmd1") | |
| 86 | + self._check_copy('iactdata_cmd1') | |
| 92 | 87 | |
| 93 | 88 | # Setup csiactcopy command |
| 94 | 89 | cmd = csiactcopy+' remote_master="master_that_does_not_exist"'+ \ |
| ... | ... | @@ -96,15 +91,9 @@ class Test(gammalib.GPythonTestSuite): |
| 96 | 91 | ' outpath="iactdata_test"'+ \ |
| 97 | 92 | ' logfile="csiactcopy_cmd2.log"' |
| 98 | 93 | |
| 99 | - # Execute csiactcopy, make sure we catch any exception | |
| 100 | - try: | |
| 101 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 102 | - except: | |
| 103 | - pass | |
| 104 | - | |
| 105 | 94 | # Check if execution failed |
| 106 | - self.test_assert(rc != 0, | |
| 107 | - "Failure of csiactcopy execution on command line") | |
| 95 | + self.test_assert(self._execute(cmd) != 0, | |
| 96 | + 'Check invalid input file when executed from command line') | |
| 108 | 97 | |
| 109 | 98 | # Return |
| 110 | 99 | return |
| ... | ... | @@ -112,15 +101,15 @@ class Test(gammalib.GPythonTestSuite): |
| 112 | 101 | # Test csiactcopy from Python |
| 113 | 102 | def _test_python(self): |
| 114 | 103 | """ |
| 115 | - Test csiactcopy from Python. | |
| 104 | + Test csiactcopy from Python | |
| 116 | 105 | """ |
| 117 | 106 | # Set-up csiactcopy |
| 118 | 107 | findobs = cscripts.csiactcopy() |
| 119 | - findobs["remote_master"] = "iactdata/master.json" | |
| 120 | - findobs["prodname"] = "unit-test" | |
| 121 | - findobs["outpath"] = "iactdata_py1" | |
| 122 | - findobs["logfile"] = "csiactcopy_py1.log" | |
| 123 | - findobs["chatter"] = 2 | |
| 108 | + findobs['remote_master'] = 'iactdata/master.json' | |
| 109 | + findobs['prodname'] = 'unit-test' | |
| 110 | + findobs['outpath'] = 'iactdata_py1' | |
| 111 | + findobs['logfile'] = 'csiactcopy_py1.log' | |
| 112 | + findobs['chatter'] = 2 | |
| 124 | 113 | |
| 125 | 114 | # Run csiactcopy script and save run list |
| 126 | 115 | findobs.logFileOpen() # Make sure we get a log file |
| ... | ... | @@ -128,7 +117,7 @@ class Test(gammalib.GPythonTestSuite): |
| 128 | 117 | findobs.save() |
| 129 | 118 | |
| 130 | 119 | # Check copy |
| 131 | - self._check_copy("iactdata_py1") | |
| 120 | + self._check_copy('iactdata_py1') | |
| 132 | 121 | |
| 133 | 122 | # Return |
| 134 | 123 | return |
| ... | ... | @@ -139,9 +128,9 @@ class Test(gammalib.GPythonTestSuite): |
| 139 | 128 | Check copy. |
| 140 | 129 | """ |
| 141 | 130 | # Set file names |
| 142 | - hdu_index_name = gammalib.GFilename(pathname+"/hdu-index.fits") | |
| 143 | - obs_index_name = gammalib.GFilename(pathname+"/obs-index.fits") | |
| 144 | - master_name = gammalib.GFilename(pathname+"/master.json") | |
| 131 | + hdu_index_name = gammalib.GFilename(pathname+'/hdu-index.fits') | |
| 132 | + obs_index_name = gammalib.GFilename(pathname+'/obs-index.fits') | |
| 133 | + master_name = gammalib.GFilename(pathname+'/master.json') | |
| 145 | 134 | |
| 146 | 135 | # Check for existence of files |
| 147 | 136 | self.test_assert(hdu_index_name.exists(), | ... | ... |
test/test_csiactdata.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import cscripts |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ================================ # |
| 27 | 27 | # Test class for csiactdata script # |
| 28 | 28 | # ================================ # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for csiactdata script. | |
| 31 | + Test class for csiactdata script | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the csiactdata script by using it |
| 34 | 34 | from the command line and from Python. |
| ... | ... | @@ -40,7 +40,7 @@ class Test(gammalib.GPythonTestSuite): |
| 40 | 40 | Constructor. |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Return |
| 46 | 46 | return |
| ... | ... | @@ -48,14 +48,14 @@ class Test(gammalib.GPythonTestSuite): |
| 48 | 48 | # Set test functions |
| 49 | 49 | def set(self): |
| 50 | 50 | """ |
| 51 | - Set all test functions. | |
| 51 | + Set all test functions | |
| 52 | 52 | """ |
| 53 | 53 | # Set test name |
| 54 | - self.name("csiactdata") | |
| 54 | + self.name('csiactdata') | |
| 55 | 55 | |
| 56 | 56 | # Append tests |
| 57 | - self.append(self._test_cmd, "Test csiactdata on command line") | |
| 58 | - self.append(self._test_python, "Test csiactdata from Python") | |
| 57 | + self.append(self._test_cmd, 'Test csiactdata on command line') | |
| 58 | + self.append(self._test_python, 'Test csiactdata from Python') | |
| 59 | 59 | |
| 60 | 60 | # Return |
| 61 | 61 | return |
| ... | ... | @@ -63,41 +63,30 @@ class Test(gammalib.GPythonTestSuite): |
| 63 | 63 | # Test csiactdata on command line |
| 64 | 64 | def _test_cmd(self): |
| 65 | 65 | """ |
| 66 | - Test csiactdata on the command line. | |
| 66 | + Test csiactdata on the command line | |
| 67 | 67 | """ |
| 68 | - # Kluge to set the command (installed version has no README file) | |
| 69 | - if os.path.isfile("README.md"): | |
| 70 | - csiactdata = "../cscripts/csiactdata.py" | |
| 71 | - else: | |
| 72 | - csiactdata = "csiactdata" | |
| 68 | + # Set script name | |
| 69 | + csiactdata = self._script('csiactdata') | |
| 73 | 70 | |
| 74 | 71 | # Setup csiactdata command |
| 75 | 72 | cmd = csiactdata+' datapath="iactdata"'+ \ |
| 76 | 73 | ' logfile="csiactdata_cmd1.log" chatter=1' |
| 77 | 74 | |
| 78 | - # Execute csiactdata, make sure we catch any exception | |
| 79 | - try: | |
| 80 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 81 | - except: | |
| 82 | - pass | |
| 75 | + # Check if execution of wrong command fails | |
| 76 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 77 | + 'Self test of test script') | |
| 83 | 78 | |
| 84 | 79 | # Check if execution was successful |
| 85 | - self.test_assert(rc == 0, | |
| 86 | - "Successful csiactdata execution on command line") | |
| 80 | + self.test_assert(self._execute(cmd) == 0, | |
| 81 | + 'Check successful execution from command line') | |
| 87 | 82 | |
| 88 | 83 | # Setup csiactdata command |
| 89 | 84 | cmd = csiactdata+' datapath="data_path_that_does_not_exist"'+ \ |
| 90 | 85 | ' logfile="csiactdata_cmd2.log"' |
| 91 | 86 | |
| 92 | - # Execute csiactdata, make sure we catch any exception | |
| 93 | - try: | |
| 94 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 95 | - except: | |
| 96 | - pass | |
| 97 | - | |
| 98 | 87 | # Check if execution failed |
| 99 | - self.test_assert(rc != 0, | |
| 100 | - "Failure of csiactdata execution on command line") | |
| 88 | + self.test_assert(self._execute(cmd) != 0, | |
| 89 | + 'Check invalid input file when executed from command line') | |
| 101 | 90 | |
| 102 | 91 | # Return |
| 103 | 92 | return |
| ... | ... | @@ -105,13 +94,13 @@ class Test(gammalib.GPythonTestSuite): |
| 105 | 94 | # Test csiactdata from Python |
| 106 | 95 | def _test_python(self): |
| 107 | 96 | """ |
| 108 | - Test csiactdata from Python. | |
| 97 | + Test csiactdata from Python | |
| 109 | 98 | """ |
| 110 | 99 | # Set-up csiactdata |
| 111 | 100 | iactdata = cscripts.csiactdata() |
| 112 | - iactdata["datapath"] = "iactdata" | |
| 113 | - iactdata["logfile"] = "csiactdata_py1.log" | |
| 114 | - iactdata["chatter"] = 2 | |
| 101 | + iactdata['datapath'] = 'iactdata' | |
| 102 | + iactdata['logfile'] = 'csiactdata_py1.log' | |
| 103 | + iactdata['chatter'] = 2 | |
| 115 | 104 | |
| 116 | 105 | # Run csiactdata script and save run list |
| 117 | 106 | iactdata.logFileOpen() # Make sure we get a log file | ... | ... |
test/test_csiactobs.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import cscripts |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # =============================== # |
| 27 | 27 | # Test class for csiactobs script # |
| 28 | 28 | # =============================== # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for csiactobs script. | |
| 31 | + Test class for csiactobs script | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the csiactobs script by using it |
| 34 | 34 | from the command line and from Python. |
| ... | ... | @@ -37,10 +37,10 @@ class Test(gammalib.GPythonTestSuite): |
| 37 | 37 | # Constructor |
| 38 | 38 | def __init__(self): |
| 39 | 39 | """ |
| 40 | - Constructor. | |
| 40 | + Constructor | |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Return |
| 46 | 46 | return |
| ... | ... | @@ -48,14 +48,14 @@ class Test(gammalib.GPythonTestSuite): |
| 48 | 48 | # Set test functions |
| 49 | 49 | def set(self): |
| 50 | 50 | """ |
| 51 | - Set all test functions. | |
| 51 | + Set all test functions | |
| 52 | 52 | """ |
| 53 | 53 | # Set test name |
| 54 | - self.name("csiactobs") | |
| 54 | + self.name('csiactobs') | |
| 55 | 55 | |
| 56 | 56 | # Append tests |
| 57 | - self.append(self._test_cmd, "Test csiactobs on command line") | |
| 58 | - self.append(self._test_python, "Test csiactobs from Python") | |
| 57 | + self.append(self._test_cmd, 'Test csiactobs on command line') | |
| 58 | + self.append(self._test_python, 'Test csiactobs from Python') | |
| 59 | 59 | |
| 60 | 60 | # Return |
| 61 | 61 | return |
| ... | ... | @@ -63,13 +63,10 @@ class Test(gammalib.GPythonTestSuite): |
| 63 | 63 | # Test csiactobs on command line |
| 64 | 64 | def _test_cmd(self): |
| 65 | 65 | """ |
| 66 | - Test csiactobs on the command line. | |
| 66 | + Test csiactobs on the command line | |
| 67 | 67 | """ |
| 68 | - # Kluge to set the command (installed version has no README file) | |
| 69 | - if os.path.isfile("README.md"): | |
| 70 | - csiactobs = "../cscripts/csiactobs.py" | |
| 71 | - else: | |
| 72 | - csiactobs = "csiactobs" | |
| 68 | + # Set script name | |
| 69 | + csiactobs = self._script('csiactobs') | |
| 73 | 70 | |
| 74 | 71 | # Setup csiactobs command |
| 75 | 72 | cmd = csiactobs+' datapath="iactdata"'+ \ |
| ... | ... | @@ -80,21 +77,19 @@ class Test(gammalib.GPythonTestSuite): |
| 80 | 77 | ' outmodel="bgd_iactobs_cmd1.xml"'+ \ |
| 81 | 78 | ' logfile="csiactobs_cmd1.log" chatter=1' |
| 82 | 79 | |
| 83 | - # Execute csiactobs, make sure we catch any exception | |
| 84 | - try: | |
| 85 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 86 | - except: | |
| 87 | - pass | |
| 80 | + # Check if execution of wrong command fails | |
| 81 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 82 | + 'Self test of test script') | |
| 88 | 83 | |
| 89 | 84 | # Check if execution was successful |
| 90 | - self.test_assert(rc == 0, | |
| 91 | - "Successful csiactobs execution on command line") | |
| 85 | + self.test_assert(self._execute(cmd) == 0, | |
| 86 | + 'Check successful execution from command line') | |
| 92 | 87 | |
| 93 | 88 | # Check observation definition XML file |
| 94 | - self._check_obsdef("obs_iactobs_cmd1.xml") | |
| 89 | + self._check_obsdef('obs_iactobs_cmd1.xml') | |
| 95 | 90 | |
| 96 | 91 | # Check model definition XML file |
| 97 | - self._check_moddef("bgd_iactobs_cmd1.xml") | |
| 92 | + self._check_moddef('bgd_iactobs_cmd1.xml') | |
| 98 | 93 | |
| 99 | 94 | # Setup csiactobs command |
| 100 | 95 | cmd = csiactobs+' datapath="data_path_that_does_not_exist"'+ \ |
| ... | ... | @@ -105,15 +100,9 @@ class Test(gammalib.GPythonTestSuite): |
| 105 | 100 | ' outmodel="bgd_iactobs_cmd2.xml"'+ \ |
| 106 | 101 | ' logfile="csiactobs_cmd2.log" chatter=1' |
| 107 | 102 | |
| 108 | - # Execute csiactobs, make sure we catch any exception | |
| 109 | - try: | |
| 110 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 111 | - except: | |
| 112 | - pass | |
| 113 | - | |
| 114 | 103 | # Check if execution failed |
| 115 | - self.test_assert(rc != 0, | |
| 116 | - "Failure of csiactobs execution on command line") | |
| 104 | + self.test_assert(self._execute(cmd) != 0, | |
| 105 | + 'Check invalid input file when executed from command line') | |
| 117 | 106 | |
| 118 | 107 | # Return |
| 119 | 108 | return |
| ... | ... | @@ -121,18 +110,18 @@ class Test(gammalib.GPythonTestSuite): |
| 121 | 110 | # Test csiactobs from Python |
| 122 | 111 | def _test_python(self): |
| 123 | 112 | """ |
| 124 | - Test csiactobs from Python. | |
| 113 | + Test csiactobs from Python | |
| 125 | 114 | """ |
| 126 | 115 | # Set-up csiactobs |
| 127 | 116 | iactobs = cscripts.csiactobs() |
| 128 | - iactobs["datapath"] = "iactdata" | |
| 129 | - iactobs["prodname"] = "unit-test" | |
| 130 | - iactobs["infile"] = "runlist_py1.dat" | |
| 131 | - iactobs["bkgpars"] = 1 | |
| 132 | - iactobs["outobs"] = "obs_iactobs_py1.xml" | |
| 133 | - iactobs["outmodel"] = "bgd_iactobs_py1.xml" | |
| 134 | - iactobs["logfile"] = "csiactobs_py1.log" | |
| 135 | - iactobs["chatter"] = 2 | |
| 117 | + iactobs['datapath'] = 'iactdata' | |
| 118 | + iactobs['prodname'] = 'unit-test' | |
| 119 | + iactobs['infile'] = 'runlist_py1.dat' | |
| 120 | + iactobs['bkgpars'] = 1 | |
| 121 | + iactobs['outobs'] = 'obs_iactobs_py1.xml' | |
| 122 | + iactobs['outmodel'] = 'bgd_iactobs_py1.xml' | |
| 123 | + iactobs['logfile'] = 'csiactobs_py1.log' | |
| 124 | + iactobs['chatter'] = 2 | |
| 136 | 125 | |
| 137 | 126 | # Run csiactobs script and save run list |
| 138 | 127 | iactobs.logFileOpen() # Make sure we get a log file |
| ... | ... | @@ -140,10 +129,10 @@ class Test(gammalib.GPythonTestSuite): |
| 140 | 129 | iactobs.save() |
| 141 | 130 | |
| 142 | 131 | # Check observation definition XML file |
| 143 | - self._check_obsdef("obs_iactobs_py1.xml") | |
| 132 | + self._check_obsdef('obs_iactobs_py1.xml') | |
| 144 | 133 | |
| 145 | 134 | # Check model definition XML file |
| 146 | - self._check_moddef("bgd_iactobs_py1.xml") | |
| 135 | + self._check_moddef('bgd_iactobs_py1.xml') | |
| 147 | 136 | |
| 148 | 137 | # Return |
| 149 | 138 | return |
| ... | ... | @@ -151,7 +140,7 @@ class Test(gammalib.GPythonTestSuite): |
| 151 | 140 | # Check observation definition XML file |
| 152 | 141 | def _check_obsdef(self, filename): |
| 153 | 142 | """ |
| 154 | - Check observation definition XML file. | |
| 143 | + Check observation definition XML file | |
| 155 | 144 | """ |
| 156 | 145 | # Load observation definition XML file |
| 157 | 146 | obs = gammalib.GObservations(filename) |
| ... | ... | @@ -197,7 +186,7 @@ class Test(gammalib.GPythonTestSuite): |
| 197 | 186 | # Check model XML file |
| 198 | 187 | def _check_moddef(self, filename): |
| 199 | 188 | """ |
| 200 | - Check model definition XML file. | |
| 189 | + Check model definition XML file | |
| 201 | 190 | """ |
| 202 | 191 | # Load model definition XML file |
| 203 | 192 | models = gammalib.GModels(filename) | ... | ... |
test/test_cslightcrv.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import cscripts |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ================================ # |
| 27 | 27 | # Test class for cslightcrv script # |
| 28 | 28 | # ================================ # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for cslightcrv script. | |
| 31 | + Test class for cslightcrv script | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the cslightcrv script by using it |
| 34 | 34 | from the command line and from Python. |
| ... | ... | @@ -37,10 +37,10 @@ class Test(gammalib.GPythonTestSuite): |
| 37 | 37 | # Constructor |
| 38 | 38 | def __init__(self): |
| 39 | 39 | """ |
| 40 | - Constructor. | |
| 40 | + Constructor | |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Set members |
| 46 | 46 | self._events_name = 'data/crab_events.fits' |
| ... | ... | @@ -69,11 +69,8 @@ class Test(gammalib.GPythonTestSuite): |
| 69 | 69 | """ |
| 70 | 70 | Test cslightcrv on the command line. |
| 71 | 71 | """ |
| 72 | - # Kluge to set the command (installed version has no README file) | |
| 73 | - if os.path.isfile('README.md'): | |
| 74 | - cslightcrv = '../cscripts/cslightcrv.py' | |
| 75 | - else: | |
| 76 | - cslightcrv = 'cslightcrv' | |
| 72 | + # Set script name | |
| 73 | + cslightcrv = self._script('cslightcrv') | |
| 77 | 74 | |
| 78 | 75 | # Setup cslightcrv command |
| 79 | 76 | cmd = cslightcrv+' inobs="'+self._events_name+'"'+ \ |
| ... | ... | @@ -84,15 +81,13 @@ class Test(gammalib.GPythonTestSuite): |
| 84 | 81 | ' outfile="lightcurve_cmd1.fits"'+ \ |
| 85 | 82 | ' logfile="cslightcrv_cmd1.log" chatter=1' |
| 86 | 83 | |
| 87 | - # Execute cslightcrv, make sure we catch any exception | |
| 88 | - try: | |
| 89 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 90 | - except: | |
| 91 | - pass | |
| 84 | + # Check if execution of wrong command fails | |
| 85 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 86 | + 'Self test of test script') | |
| 92 | 87 | |
| 93 | 88 | # Check if execution was successful |
| 94 | - self.test_assert(rc == 0, | |
| 95 | - 'Successful cslightcrv execution on command line') | |
| 89 | + self.test_assert(self._execute(cmd) == 0, | |
| 90 | + 'Check successful execution from command line') | |
| 96 | 91 | |
| 97 | 92 | # Check light curve |
| 98 | 93 | self._check_light_curve('lightcurve_cmd1.fits', 3) |
| ... | ... | @@ -106,15 +101,9 @@ class Test(gammalib.GPythonTestSuite): |
| 106 | 101 | ' outfile="lightcurve_cmd1.fits"'+ \ |
| 107 | 102 | ' logfile="cslightcrv_cmd2.log"' |
| 108 | 103 | |
| 109 | - # Execute cslightcrv, make sure we catch any exception | |
| 110 | - try: | |
| 111 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 112 | - except: | |
| 113 | - pass | |
| 114 | - | |
| 115 | 104 | # Check if execution failed |
| 116 | - self.test_assert(rc != 0, | |
| 117 | - 'Failure of cslightcrv execution on command line') | |
| 105 | + self.test_assert(self._execute(cmd) != 0, | |
| 106 | + 'Check invalid input file when executed from command line') | |
| 118 | 107 | |
| 119 | 108 | # Return |
| 120 | 109 | return |
| ... | ... | @@ -122,7 +111,7 @@ class Test(gammalib.GPythonTestSuite): |
| 122 | 111 | # Test cslightcrv from Python |
| 123 | 112 | def _test_python(self): |
| 124 | 113 | """ |
| 125 | - Test cslightcrv from Python. | |
| 114 | + Test cslightcrv from Python | |
| 126 | 115 | """ |
| 127 | 116 | # Set-up unbinned cslightcrv |
| 128 | 117 | lcrv = cscripts.cslightcrv() |
| ... | ... | @@ -249,7 +238,7 @@ class Test(gammalib.GPythonTestSuite): |
| 249 | 238 | # Check light curve result file |
| 250 | 239 | def _check_light_curve(self, filename, bins): |
| 251 | 240 | """ |
| 252 | - Check light curve file. | |
| 241 | + Check light curve file | |
| 253 | 242 | """ |
| 254 | 243 | # Expected column names |
| 255 | 244 | cols = ['MJD', 'e_MJD', 'Prefactor', 'e_Prefactor', | ... | ... |
test/test_csmodelinfo.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import cscripts |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ================================= # |
| 27 | 27 | # Test class for csmodelinfo script # |
| 28 | 28 | # ================================= # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for csmodelinfo script. | |
| 31 | + Test class for csmodelinfo script | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the csmodelinfo script by using it |
| 34 | 34 | from the command line and from Python. |
| ... | ... | @@ -40,7 +40,7 @@ class Test(gammalib.GPythonTestSuite): |
| 40 | 40 | Constructor. |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Set members |
| 46 | 46 | self._model_name = "data/crab.xml" |
| ... | ... | @@ -54,11 +54,11 @@ class Test(gammalib.GPythonTestSuite): |
| 54 | 54 | Set all test functions. |
| 55 | 55 | """ |
| 56 | 56 | # Set test name |
| 57 | - self.name("csmodelinfo") | |
| 57 | + self.name('csmodelinfo') | |
| 58 | 58 | |
| 59 | 59 | # Append tests |
| 60 | - self.append(self._test_cmd, "Test csmodelinfo on command line") | |
| 61 | - self.append(self._test_python, "Test csmodelinfo from Python") | |
| 60 | + self.append(self._test_cmd, 'Test csmodelinfo on command line') | |
| 61 | + self.append(self._test_python, 'Test csmodelinfo from Python') | |
| 62 | 62 | |
| 63 | 63 | # Return |
| 64 | 64 | return |
| ... | ... | @@ -66,46 +66,35 @@ class Test(gammalib.GPythonTestSuite): |
| 66 | 66 | # Test csmodelinfo on command line |
| 67 | 67 | def _test_cmd(self): |
| 68 | 68 | """ |
| 69 | - Test csmodelinfo on the command line. | |
| 69 | + Test csmodelinfo on the command line | |
| 70 | 70 | """ |
| 71 | - # Kluge to set the command (installed version has no README file) | |
| 72 | - if os.path.isfile("README.md"): | |
| 73 | - csmodelinfo = "../cscripts/csmodelinfo.py" | |
| 74 | - else: | |
| 75 | - csmodelinfo = "csmodelinfo" | |
| 71 | + # Set script name | |
| 72 | + csmodelinfo = self._script('csmodelinfo') | |
| 76 | 73 | |
| 77 | 74 | # Setup csmodelinfo command |
| 78 | 75 | cmd = csmodelinfo+' inmodel="'+self._model_name+'"'+ \ |
| 79 | 76 | ' ds9file="model_cmd1.reg"'+ \ |
| 80 | 77 | ' logfile="csmodelinfo_cmd1.log" chatter=1' |
| 81 | 78 | |
| 82 | - # Execute csmodelinfo, make sure we catch any exception | |
| 83 | - try: | |
| 84 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 85 | - except: | |
| 86 | - pass | |
| 79 | + # Check if execution of wrong command fails | |
| 80 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 81 | + 'Self test of test script') | |
| 87 | 82 | |
| 88 | 83 | # Check if execution was successful |
| 89 | - self.test_assert(rc == 0, | |
| 90 | - "Successful csmodelinfo execution on command line") | |
| 84 | + self.test_assert(self._execute(cmd) == 0, | |
| 85 | + 'Check successful execution from command line') | |
| 91 | 86 | |
| 92 | 87 | # Check region file |
| 93 | - self._check_ds9_file("model_cmd1.reg") | |
| 88 | + self._check_ds9_file('model_cmd1.reg') | |
| 94 | 89 | |
| 95 | 90 | # Setup csmodelinfo command |
| 96 | 91 | cmd = csmodelinfo+' inmodel="model_that_does_not_exist.xml"'+ \ |
| 97 | 92 | ' ds9file="model_cmd2.reg"'+ \ |
| 98 | 93 | ' logfile="csmodelinfo_cmd2.log"' |
| 99 | 94 | |
| 100 | - # Execute csmodelinfo, make sure we catch any exception | |
| 101 | - try: | |
| 102 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 103 | - except: | |
| 104 | - pass | |
| 105 | - | |
| 106 | 95 | # Check if execution failed |
| 107 | - self.test_assert(rc != 0, | |
| 108 | - "Failure of csmodelinfo execution on command line") | |
| 96 | + self.test_assert(self._execute(cmd) != 0, | |
| 97 | + 'Check invalid input file when executed from command line') | |
| 109 | 98 | |
| 110 | 99 | # Return |
| 111 | 100 | return |
| ... | ... | @@ -113,14 +102,14 @@ class Test(gammalib.GPythonTestSuite): |
| 113 | 102 | # Test csmodelinfo from Python |
| 114 | 103 | def _test_python(self): |
| 115 | 104 | """ |
| 116 | - Test csmodelinfo from Python. | |
| 105 | + Test csmodelinfo from Python | |
| 117 | 106 | """ |
| 118 | 107 | # Set-up csmodelinfo |
| 119 | 108 | modelinfo = cscripts.csmodelinfo() |
| 120 | - modelinfo["inmodel"] = self._model_name | |
| 121 | - modelinfo["ds9file"] = "csmodelinfo_py1.reg" | |
| 122 | - modelinfo["logfile"] = "csmodelinfo_py1.log" | |
| 123 | - modelinfo["chatter"] = 2 | |
| 109 | + modelinfo['inmodel'] = self._model_name | |
| 110 | + modelinfo['ds9file'] = 'csmodelinfo_py1.reg' | |
| 111 | + modelinfo['logfile'] = 'csmodelinfo_py1.log' | |
| 112 | + modelinfo['chatter'] = 2 | |
| 124 | 113 | |
| 125 | 114 | # Run csmodelinfo script and save DS9 file |
| 126 | 115 | modelinfo.logFileOpen() # Make sure we get a log file |
| ... | ... | @@ -128,20 +117,20 @@ class Test(gammalib.GPythonTestSuite): |
| 128 | 117 | modelinfo.save() |
| 129 | 118 | |
| 130 | 119 | # Check region file |
| 131 | - self._check_ds9_file("csmodelinfo_py1.reg") | |
| 120 | + self._check_ds9_file('csmodelinfo_py1.reg') | |
| 132 | 121 | |
| 133 | 122 | # Set-up csmodelinfo |
| 134 | 123 | modelinfo = cscripts.csmodelinfo() |
| 135 | - modelinfo["inmodel"] = self._model_name | |
| 136 | - modelinfo["ds9file"] = "csmodelinfo_py2.reg" | |
| 137 | - modelinfo["logfile"] = "csmodelinfo_py2.log" | |
| 138 | - modelinfo["chatter"] = 3 | |
| 124 | + modelinfo['inmodel'] = self._model_name | |
| 125 | + modelinfo['ds9file'] = 'csmodelinfo_py2.reg' | |
| 126 | + modelinfo['logfile'] = 'csmodelinfo_py2.log' | |
| 127 | + modelinfo['chatter'] = 3 | |
| 139 | 128 | |
| 140 | 129 | # Execute csmodelinfo script |
| 141 | 130 | modelinfo.execute() |
| 142 | 131 | |
| 143 | 132 | # Check region file |
| 144 | - self._check_ds9_file("csmodelinfo_py2.reg") | |
| 133 | + self._check_ds9_file('csmodelinfo_py2.reg') | |
| 145 | 134 | |
| 146 | 135 | # Return |
| 147 | 136 | return |
| ... | ... | @@ -149,10 +138,10 @@ class Test(gammalib.GPythonTestSuite): |
| 149 | 138 | # Check region file |
| 150 | 139 | def _check_ds9_file(self, filename): |
| 151 | 140 | """ |
| 152 | - Check region file. | |
| 141 | + Check region file | |
| 153 | 142 | """ |
| 154 | 143 | # Open file |
| 155 | - f = open(filename,"r") | |
| 144 | + f = open(filename,'r') | |
| 156 | 145 | |
| 157 | 146 | # Expect "fk5" in first line |
| 158 | 147 | line = f.readline().strip('\n') | ... | ... |
test/test_csmodelmerge.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import cscripts |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ================================== # |
| 27 | 27 | # Test class for csmodelmerge script # |
| 28 | 28 | # ================================== # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for csmodelmerge script. | |
| 31 | + Test class for csmodelmerge script | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the csmodelmerge script by using it |
| 34 | 34 | from the command line and from Python. |
| ... | ... | @@ -40,7 +40,7 @@ class Test(gammalib.GPythonTestSuite): |
| 40 | 40 | Constructor. |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Return |
| 46 | 46 | return |
| ... | ... | @@ -51,11 +51,11 @@ class Test(gammalib.GPythonTestSuite): |
| 51 | 51 | Set all test functions. |
| 52 | 52 | """ |
| 53 | 53 | # Set test name |
| 54 | - self.name("csmodelmerge") | |
| 54 | + self.name('csmodelmerge') | |
| 55 | 55 | |
| 56 | 56 | # Append tests |
| 57 | - self.append(self._test_cmd, "Test csmodelmerge on command line") | |
| 58 | - self.append(self._test_python, "Test csmodelmerge from Python") | |
| 57 | + self.append(self._test_cmd, 'Test csmodelmerge on command line') | |
| 58 | + self.append(self._test_python, 'Test csmodelmerge from Python') | |
| 59 | 59 | |
| 60 | 60 | # Return |
| 61 | 61 | return |
| ... | ... | @@ -63,46 +63,35 @@ class Test(gammalib.GPythonTestSuite): |
| 63 | 63 | # Test csmodelmerge on command line |
| 64 | 64 | def _test_cmd(self): |
| 65 | 65 | """ |
| 66 | - Test csmodelmerge on the command line. | |
| 66 | + Test csmodelmerge on the command line | |
| 67 | 67 | """ |
| 68 | - # Kluge to set the command (installed version has no README file) | |
| 69 | - if os.path.isfile("README.md"): | |
| 70 | - csmodelmerge = "../cscripts/csmodelmerge.py" | |
| 71 | - else: | |
| 72 | - csmodelmerge = "csmodelmerge" | |
| 68 | + # Set script name | |
| 69 | + csmodelmerge = self._script('csmodelmerge') | |
| 73 | 70 | |
| 74 | 71 | # Setup csmodelmerge command |
| 75 | 72 | cmd = csmodelmerge+' inmodels="data/crab.xml data/model_cube_background.xml"'+ \ |
| 76 | 73 | ' outmodel="mergedmodel_cmd1.xml"'+ \ |
| 77 | 74 | ' logfile="csmodelmerge_cmd1.log" chatter=1' |
| 78 | 75 | |
| 79 | - # Execute csmodelmerge, make sure we catch any exception | |
| 80 | - try: | |
| 81 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 82 | - except: | |
| 83 | - pass | |
| 76 | + # Check if execution of wrong command fails | |
| 77 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 78 | + 'Self test of test script') | |
| 84 | 79 | |
| 85 | 80 | # Check if execution was successful |
| 86 | - self.test_assert(rc == 0, | |
| 87 | - "Successful csmodelmerge execution on command line") | |
| 81 | + self.test_assert(self._execute(cmd) == 0, | |
| 82 | + 'Check successful execution from command line') | |
| 88 | 83 | |
| 89 | 84 | # Check model file |
| 90 | - self._check_model_file("mergedmodel_cmd1.xml", 3) | |
| 85 | + self._check_model_file('mergedmodel_cmd1.xml', 3) | |
| 91 | 86 | |
| 92 | 87 | # Setup csmodelmerge command |
| 93 | 88 | cmd = csmodelmerge+' inmodels="model_that_does_not_exist.xml"'+ \ |
| 94 | 89 | ' outmodel="mergedmodel_cmd2.xml"'+ \ |
| 95 | 90 | ' logfile="csmodelmerge_cmd2.log"' |
| 96 | 91 | |
| 97 | - # Execute csmodelmerge, make sure we catch any exception | |
| 98 | - try: | |
| 99 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 100 | - except: | |
| 101 | - pass | |
| 102 | - | |
| 103 | 92 | # Check if execution failed |
| 104 | - self.test_assert(rc != 0, | |
| 105 | - "Failure of csmodelmerge execution on command line") | |
| 93 | + self.test_assert(self._execute(cmd) != 0, | |
| 94 | + 'Check invalid input file when executed from command line') | |
| 106 | 95 | |
| 107 | 96 | # Return |
| 108 | 97 | return |
| ... | ... | @@ -110,14 +99,14 @@ class Test(gammalib.GPythonTestSuite): |
| 110 | 99 | # Test csmodelmerge from Python |
| 111 | 100 | def _test_python(self): |
| 112 | 101 | """ |
| 113 | - Test csmodelmerge from Python. | |
| 102 | + Test csmodelmerge from Python | |
| 114 | 103 | """ |
| 115 | 104 | # Set-up csmodelmerge for space-separated input |
| 116 | 105 | modelmerge = cscripts.csmodelmerge() |
| 117 | - modelmerge["inmodels"] = "data/crab.xml data/model_cube_background.xml" | |
| 118 | - modelmerge["outmodel"] = "mergedmodel_py1.xml" | |
| 119 | - modelmerge["logfile"] = "csmodelmerge_py1.log" | |
| 120 | - modelmerge["chatter"] = 2 | |
| 106 | + modelmerge['inmodels'] = 'data/crab.xml data/model_cube_background.xml' | |
| 107 | + modelmerge['outmodel'] = 'mergedmodel_py1.xml' | |
| 108 | + modelmerge['logfile'] = 'csmodelmerge_py1.log' | |
| 109 | + modelmerge['chatter'] = 2 | |
| 121 | 110 | |
| 122 | 111 | # Run csmodelmerge script and save models |
| 123 | 112 | modelmerge.logFileOpen() # Make sure we get a log file |
| ... | ... | @@ -125,46 +114,46 @@ class Test(gammalib.GPythonTestSuite): |
| 125 | 114 | modelmerge.save() |
| 126 | 115 | |
| 127 | 116 | # Check model file |
| 128 | - self._check_model_file("mergedmodel_py1.xml", 3) | |
| 117 | + self._check_model_file('mergedmodel_py1.xml', 3) | |
| 129 | 118 | |
| 130 | 119 | # Set-up csmodelmerge for semi-colon separated input |
| 131 | 120 | modelmerge = cscripts.csmodelmerge() |
| 132 | - modelmerge["inmodels"] = "data/crab.xml;data/model_cube_background.xml" | |
| 133 | - modelmerge["outmodel"] = "mergedmodel_py2.xml" | |
| 134 | - modelmerge["logfile"] = "csmodelmerge_py2.log" | |
| 135 | - modelmerge["chatter"] = 3 | |
| 121 | + modelmerge['inmodels'] = 'data/crab.xml;data/model_cube_background.xml' | |
| 122 | + modelmerge['outmodel'] = 'mergedmodel_py2.xml' | |
| 123 | + modelmerge['logfile'] = 'csmodelmerge_py2.log' | |
| 124 | + modelmerge['chatter'] = 3 | |
| 136 | 125 | |
| 137 | 126 | # Execute csmodelmerge script |
| 138 | 127 | modelmerge.execute() |
| 139 | 128 | |
| 140 | 129 | # Check model file |
| 141 | - self._check_model_file("mergedmodel_py2.xml", 3) | |
| 130 | + self._check_model_file('mergedmodel_py2.xml', 3) | |
| 142 | 131 | |
| 143 | 132 | # Set-up csmodelmerge for wildcard input |
| 144 | 133 | modelmerge = cscripts.csmodelmerge() |
| 145 | - modelmerge["inmodels"] = "data/model_cube_background*.xml" | |
| 146 | - modelmerge["outmodel"] = "mergedmodel_py3.xml" | |
| 147 | - modelmerge["logfile"] = "csmodelmerge_py3.log" | |
| 148 | - modelmerge["chatter"] = 4 | |
| 134 | + modelmerge['inmodels'] = 'data/model_cube_background*.xml' | |
| 135 | + modelmerge['outmodel'] = 'mergedmodel_py3.xml' | |
| 136 | + modelmerge['logfile'] = 'csmodelmerge_py3.log' | |
| 137 | + modelmerge['chatter'] = 4 | |
| 149 | 138 | |
| 150 | 139 | # Execute csmodelmerge script |
| 151 | 140 | modelmerge.execute() |
| 152 | 141 | |
| 153 | 142 | # Check model file |
| 154 | - self._check_model_file("mergedmodel_py3.xml", 2) | |
| 143 | + self._check_model_file('mergedmodel_py3.xml', 2) | |
| 155 | 144 | |
| 156 | 145 | # Set-up csmodelmerge for ASCII file |
| 157 | 146 | modelmerge = cscripts.csmodelmerge() |
| 158 | - modelmerge["inmodels"] = "@data/models.txt" | |
| 159 | - modelmerge["outmodel"] = "mergedmodel_py4.xml" | |
| 160 | - modelmerge["logfile"] = "csmodelmerge_py4.log" | |
| 161 | - modelmerge["chatter"] = 4 | |
| 147 | + modelmerge['inmodels'] = '@data/models.txt' | |
| 148 | + modelmerge['outmodel'] = 'mergedmodel_py4.xml' | |
| 149 | + modelmerge['logfile'] = 'csmodelmerge_py4.log' | |
| 150 | + modelmerge['chatter'] = 4 | |
| 162 | 151 | |
| 163 | 152 | # Execute csmodelmerge script |
| 164 | 153 | modelmerge.execute() |
| 165 | 154 | |
| 166 | 155 | # Check model file |
| 167 | - self._check_model_file("mergedmodel_py4.xml", 2) | |
| 156 | + self._check_model_file('mergedmodel_py4.xml', 2) | |
| 168 | 157 | |
| 169 | 158 | # Return |
| 170 | 159 | return |
| ... | ... | @@ -172,7 +161,7 @@ class Test(gammalib.GPythonTestSuite): |
| 172 | 161 | # Check model file |
| 173 | 162 | def _check_model_file(self, filename, number): |
| 174 | 163 | """ |
| 175 | - Check model file. | |
| 164 | + Check model file | |
| 176 | 165 | """ |
| 177 | 166 | # Open models |
| 178 | 167 | models = gammalib.GModels(filename) | ... | ... |
test/test_csobs2caldb.py
| ... | ... | @@ -21,14 +21,15 @@ |
| 21 | 21 | import os |
| 22 | 22 | import gammalib |
| 23 | 23 | import cscripts |
| 24 | +from testing import test | |
| 24 | 25 | |
| 25 | 26 | |
| 26 | 27 | # ================================= # |
| 27 | 28 | # Test class for csobs2caldb script # |
| 28 | 29 | # ================================= # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 30 | +class Test(test): | |
| 30 | 31 | """ |
| 31 | - Test class for csobs2caldb script. | |
| 32 | + Test class for csobs2caldb script | |
| 32 | 33 | |
| 33 | 34 | This test class makes unit tests for the csobs2caldb script by using it |
| 34 | 35 | from the command line and from Python. |
| ... | ... | @@ -37,17 +38,17 @@ class Test(gammalib.GPythonTestSuite): |
| 37 | 38 | # Constructor |
| 38 | 39 | def __init__(self): |
| 39 | 40 | """ |
| 40 | - Constructor. | |
| 41 | + Constructor | |
| 41 | 42 | """ |
| 42 | 43 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 44 | + test.__init__(self) | |
| 44 | 45 | |
| 45 | 46 | # Set members |
| 46 | - self._inobs = "data/obs_unbinned.xml" | |
| 47 | + self._inobs = 'data/obs_unbinned.xml' | |
| 47 | 48 | |
| 48 | 49 | # Clean calibration database |
| 49 | - os.system("rm -rf caldb >/dev/null 2>&1") | |
| 50 | - os.system("mkdir -p caldb >/dev/null 2>&1") | |
| 50 | + os.system('rm -rf caldb >/dev/null 2>&1') | |
| 51 | + os.system('mkdir -p caldb >/dev/null 2>&1') | |
| 51 | 52 | |
| 52 | 53 | # Return |
| 53 | 54 | return |
| ... | ... | @@ -55,14 +56,14 @@ class Test(gammalib.GPythonTestSuite): |
| 55 | 56 | # Set test functions |
| 56 | 57 | def set(self): |
| 57 | 58 | """ |
| 58 | - Set all test functions. | |
| 59 | + Set all test functions | |
| 59 | 60 | """ |
| 60 | 61 | # Set test name |
| 61 | - self.name("csobs2caldb") | |
| 62 | + self.name('csobs2caldb') | |
| 62 | 63 | |
| 63 | 64 | # Append tests |
| 64 | - self.append(self._test_cmd, "Test csobs2caldb on command line") | |
| 65 | - self.append(self._test_python, "Test csobs2caldb from Python") | |
| 65 | + self.append(self._test_cmd, 'Test csobs2caldb on command line') | |
| 66 | + self.append(self._test_python, 'Test csobs2caldb from Python') | |
| 66 | 67 | |
| 67 | 68 | # Return |
| 68 | 69 | return |
| ... | ... | @@ -70,46 +71,35 @@ class Test(gammalib.GPythonTestSuite): |
| 70 | 71 | # Test csobs2caldb on command line |
| 71 | 72 | def _test_cmd(self): |
| 72 | 73 | """ |
| 73 | - Test csobs2caldb on the command line. | |
| 74 | + Test csobs2caldb on the command line | |
| 74 | 75 | """ |
| 75 | - # Kluge to set the command (installed version has no README file) | |
| 76 | - if os.path.isfile("README.md"): | |
| 77 | - csobs2caldb = "../cscripts/csobs2caldb.py" | |
| 78 | - else: | |
| 79 | - csobs2caldb = "csobs2caldb" | |
| 76 | + # Set script name | |
| 77 | + csobs2caldb = self._script('csobs2caldb') | |
| 80 | 78 | |
| 81 | 79 | # Setup csobs2caldb command |
| 82 | 80 | cmd = csobs2caldb+' inobs="'+self._inobs+'"'+ \ |
| 83 | 81 | ' caldb="cta" irf="Cmd1" rootdir="caldb"'+ \ |
| 84 | 82 | ' logfile="csobs2caldb_cmd1.log" chatter=1' |
| 85 | 83 | |
| 86 | - # Execute csobs2caldb, make sure we catch any exception | |
| 87 | - try: | |
| 88 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 89 | - except: | |
| 90 | - pass | |
| 84 | + # Check if execution of wrong command fails | |
| 85 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 86 | + 'Self test of test script') | |
| 91 | 87 | |
| 92 | 88 | # Check if execution was successful |
| 93 | - self.test_assert(rc == 0, | |
| 94 | - "Successful csobs2caldb execution on command line") | |
| 89 | + self.test_assert(self._execute(cmd) == 0, | |
| 90 | + 'Check successful execution from command line') | |
| 95 | 91 | |
| 96 | 92 | # Check response |
| 97 | - self._check_response("cta", "Cmd1") | |
| 93 | + self._check_response('cta', 'Cmd1') | |
| 98 | 94 | |
| 99 | 95 | # Setup csobs2caldb command |
| 100 | 96 | cmd = csobs2caldb+' inobs="xml_file_that_does_not_exist.xml"'+ \ |
| 101 | 97 | ' caldb="cta" irf="Cmd2" rootdir="caldb"'+ \ |
| 102 | 98 | ' logfile="csobs2caldb_cmd2.log"' |
| 103 | 99 | |
| 104 | - # Execute csobs2caldb, make sure we catch any exception | |
| 105 | - try: | |
| 106 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 107 | - except: | |
| 108 | - pass | |
| 109 | - | |
| 110 | 100 | # Check if execution failed |
| 111 | - self.test_assert(rc != 0, | |
| 112 | - "Failure of csobs2caldb execution on command line") | |
| 101 | + self.test_assert(self._execute(cmd) != 0, | |
| 102 | + 'Check invalid input file when executed from command line') | |
| 113 | 103 | |
| 114 | 104 | # Return |
| 115 | 105 | return |
| ... | ... | @@ -117,16 +107,16 @@ class Test(gammalib.GPythonTestSuite): |
| 117 | 107 | # Test csobs2caldb from Python |
| 118 | 108 | def _test_python(self): |
| 119 | 109 | """ |
| 120 | - Test csobs2caldb from Python. | |
| 110 | + Test csobs2caldb from Python | |
| 121 | 111 | """ |
| 122 | 112 | # Set-up csobs2caldb using "inobs" parameter |
| 123 | 113 | irf = cscripts.csobs2caldb() |
| 124 | - irf["inobs"] = self._inobs | |
| 125 | - irf["caldb"] = "cta" | |
| 126 | - irf["irf"] = "Py1" | |
| 127 | - irf["rootdir"] = "caldb" | |
| 128 | - irf["logfile"] = "csobs2caldb_py1.log" | |
| 129 | - irf["chatter"] = 2 | |
| 114 | + irf['inobs'] = self._inobs | |
| 115 | + irf['caldb'] = 'cta' | |
| 116 | + irf['irf'] = 'Py1' | |
| 117 | + irf['rootdir'] = 'caldb' | |
| 118 | + irf['logfile'] = 'csobs2caldb_py1.log' | |
| 119 | + irf['chatter'] = 2 | |
| 130 | 120 | |
| 131 | 121 | # Run csobs2caldb script and save IRF |
| 132 | 122 | irf.logFileOpen() # Make sure we get a log file |
| ... | ... | @@ -134,24 +124,24 @@ class Test(gammalib.GPythonTestSuite): |
| 134 | 124 | irf.save() |
| 135 | 125 | |
| 136 | 126 | # Check response |
| 137 | - self._check_response("cta", "Py1") | |
| 127 | + self._check_response('cta', 'Py1') | |
| 138 | 128 | |
| 139 | 129 | # Load observation container |
| 140 | 130 | obs = gammalib.GObservations(self._inobs) |
| 141 | 131 | |
| 142 | 132 | # Set-up csobs2caldb using observation container |
| 143 | 133 | irf = cscripts.csobs2caldb(obs) |
| 144 | - irf["caldb"] = "cta" | |
| 145 | - irf["irf"] = "Py2" | |
| 146 | - irf["rootdir"] = "caldb" | |
| 147 | - irf["logfile"] = "csobs2caldb_py2.log" | |
| 148 | - irf["chatter"] = 3 | |
| 134 | + irf['caldb'] = 'cta' | |
| 135 | + irf['irf'] = 'Py2' | |
| 136 | + irf['rootdir'] = 'caldb' | |
| 137 | + irf['logfile'] = 'csobs2caldb_py2.log' | |
| 138 | + irf['chatter'] = 3 | |
| 149 | 139 | |
| 150 | 140 | # Execute csobs2caldb script |
| 151 | 141 | irf.execute() |
| 152 | 142 | |
| 153 | 143 | # Check response |
| 154 | - self._check_response("cta", "Py2") | |
| 144 | + self._check_response('cta', 'Py2') | |
| 155 | 145 | |
| 156 | 146 | # Return |
| 157 | 147 | return |
| ... | ... | @@ -159,24 +149,24 @@ class Test(gammalib.GPythonTestSuite): |
| 159 | 149 | # Check response |
| 160 | 150 | def _check_response(self, caldb, irf): |
| 161 | 151 | """ |
| 162 | - Check response. | |
| 152 | + Check response | |
| 163 | 153 | """ |
| 164 | 154 | # Open calibration database |
| 165 | - db = gammalib.GCaldb("caldb") | |
| 166 | - db.open("cta", caldb) | |
| 155 | + db = gammalib.GCaldb('caldb') | |
| 156 | + db.open('cta', caldb) | |
| 167 | 157 | |
| 168 | 158 | # Get filenames of response components |
| 169 | - expr = "NAME("+irf+")" | |
| 170 | - aeff = gammalib.GFilename(db.filename("","","EFF_AREA","","",expr)) | |
| 171 | - psf = gammalib.GFilename(db.filename("","","RPSF","","",expr)) | |
| 172 | - edisp = gammalib.GFilename(db.filename("","","EDISP","","",expr)) | |
| 173 | - bgd = gammalib.GFilename(db.filename("","","BGD","","",expr)) | |
| 159 | + expr = 'NAME('+irf+')' | |
| 160 | + aeff = gammalib.GFilename(db.filename('','','EFF_AREA','','',expr)) | |
| 161 | + psf = gammalib.GFilename(db.filename('','','RPSF','','',expr)) | |
| 162 | + edisp = gammalib.GFilename(db.filename('','','EDISP','','',expr)) | |
| 163 | + bgd = gammalib.GFilename(db.filename('','','BGD','','',expr)) | |
| 174 | 164 | |
| 175 | 165 | # Check whether files exist |
| 176 | - self.test_assert(aeff.exists(), "Effective area file exists") | |
| 177 | - self.test_assert(psf.exists(), "Point spread function file exists") | |
| 178 | - self.test_assert(edisp.exists(), "Energy dispersion file exists") | |
| 179 | - self.test_assert(bgd.exists(), "Background file exists") | |
| 166 | + self.test_assert(aeff.exists(), 'Effective area file exists') | |
| 167 | + self.test_assert(psf.exists(), 'Point spread function file exists') | |
| 168 | + self.test_assert(edisp.exists(), 'Energy dispersion file exists') | |
| 169 | + self.test_assert(bgd.exists(), 'Background file exists') | |
| 180 | 170 | |
| 181 | 171 | # Return |
| 182 | 172 | return | ... | ... |
test/test_csobsdef.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import cscripts |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ============================== # |
| 27 | 27 | # Test class for csobsdef script # |
| 28 | 28 | # ============================== # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for csobsdef script. | |
| 31 | + Test class for csobsdef script | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the csobsdef script by using it |
| 34 | 34 | from the command line and from Python. |
| ... | ... | @@ -37,10 +37,10 @@ class Test(gammalib.GPythonTestSuite): |
| 37 | 37 | # Constructor |
| 38 | 38 | def __init__(self): |
| 39 | 39 | """ |
| 40 | - Constructor. | |
| 40 | + Constructor | |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Return |
| 46 | 46 | return |
| ... | ... | @@ -48,7 +48,7 @@ class Test(gammalib.GPythonTestSuite): |
| 48 | 48 | # Set test functions |
| 49 | 49 | def set(self): |
| 50 | 50 | """ |
| 51 | - Set all test functions. | |
| 51 | + Set all test functions | |
| 52 | 52 | """ |
| 53 | 53 | # Set test name |
| 54 | 54 | self.name('csobsdef') |
| ... | ... | @@ -63,13 +63,10 @@ class Test(gammalib.GPythonTestSuite): |
| 63 | 63 | # Test csobsdef on command line |
| 64 | 64 | def _test_cmd(self): |
| 65 | 65 | """ |
| 66 | - Test csobsdef on the command line. | |
| 66 | + Test csobsdef on the command line | |
| 67 | 67 | """ |
| 68 | - # Kluge to set the command (installed version has no README file) | |
| 69 | - if os.path.isfile('README.md'): | |
| 70 | - csobsdef = '../cscripts/csobsdef.py' | |
| 71 | - else: | |
| 72 | - csobsdef = 'csobsdef' | |
| 68 | + # Set script name | |
| 69 | + csobsdef = self._script('csobsdef') | |
| 73 | 70 | |
| 74 | 71 | # Setup csobsdef command |
| 75 | 72 | cmd = csobsdef+' inpnt="data/pntdef.dat"'+ \ |
| ... | ... | @@ -78,15 +75,13 @@ class Test(gammalib.GPythonTestSuite): |
| 78 | 75 | ' emin=0.1 emax=100.0 duration=1800.0 rad=5.0'+ \ |
| 79 | 76 | ' logfile="csobsdef_cmd1.log" chatter=1' |
| 80 | 77 | |
| 81 | - # Execute csobsdef, make sure we catch any exception | |
| 82 | - try: | |
| 83 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 84 | - except: | |
| 85 | - pass | |
| 78 | + # Check if execution of wrong command fails | |
| 79 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 80 | + 'Self test of test script') | |
| 86 | 81 | |
| 87 | 82 | # Check if execution was successful |
| 88 | - self.test_assert(rc == 0, | |
| 89 | - 'Successful csobsdef execution on command line') | |
| 83 | + self.test_assert(self._execute(cmd) == 0, | |
| 84 | + 'Check successful execution from command line') | |
| 90 | 85 | |
| 91 | 86 | # Check observation definition file |
| 92 | 87 | self._check_obsdef_file('csobsdef_cmd1.xml') |
| ... | ... | @@ -98,15 +93,9 @@ class Test(gammalib.GPythonTestSuite): |
| 98 | 93 | ' emin=0.1 emax=100.0 duration=1800.0 rad=5.0'+ \ |
| 99 | 94 | ' logfile="csobsdef_cmd2.log"' |
| 100 | 95 | |
| 101 | - # Execute csobsdef, make sure we catch any exception | |
| 102 | - try: | |
| 103 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 104 | - except: | |
| 105 | - pass | |
| 106 | - | |
| 107 | 96 | # Check if execution failed |
| 108 | - self.test_assert(rc != 0, | |
| 109 | - 'Failure of csobsdef execution on command line') | |
| 97 | + self.test_assert(self._execute(cmd) != 0, | |
| 98 | + 'Check invalid input file when executed from command line') | |
| 110 | 99 | |
| 111 | 100 | # Return |
| 112 | 101 | return |
| ... | ... | @@ -114,7 +103,7 @@ class Test(gammalib.GPythonTestSuite): |
| 114 | 103 | # Test csobsdef from Python |
| 115 | 104 | def _test_python(self): |
| 116 | 105 | """ |
| 117 | - Test csobsdef from Python. | |
| 106 | + Test csobsdef from Python | |
| 118 | 107 | """ |
| 119 | 108 | # Set-up csobsdef |
| 120 | 109 | obsdef = cscripts.csobsdef() |
| ... | ... | @@ -184,7 +173,7 @@ class Test(gammalib.GPythonTestSuite): |
| 184 | 173 | # Check observation definition file |
| 185 | 174 | def _check_obsdef_file(self, filename): |
| 186 | 175 | """ |
| 187 | - Check observation definition file. | |
| 176 | + Check observation definition file | |
| 188 | 177 | """ |
| 189 | 178 | # Load observation definition file |
| 190 | 179 | obs = gammalib.GObservations(filename) | ... | ... |
test/test_csobsinfo.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import cscripts |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # =============================== # |
| 27 | 27 | # Test class for csobsinfo script # |
| 28 | 28 | # =============================== # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for csobsinfo script. | |
| 31 | + Test class for csobsinfo script | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the csobsinfo script by using it |
| 34 | 34 | from the command line and from Python. |
| ... | ... | @@ -37,10 +37,10 @@ class Test(gammalib.GPythonTestSuite): |
| 37 | 37 | # Constructor |
| 38 | 38 | def __init__(self): |
| 39 | 39 | """ |
| 40 | - Constructor. | |
| 40 | + Constructor | |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Return |
| 46 | 46 | return |
| ... | ... | @@ -48,14 +48,14 @@ class Test(gammalib.GPythonTestSuite): |
| 48 | 48 | # Set test functions |
| 49 | 49 | def set(self): |
| 50 | 50 | """ |
| 51 | - Set all test functions. | |
| 51 | + Set all test functions | |
| 52 | 52 | """ |
| 53 | 53 | # Set test name |
| 54 | - self.name("csobsinfo") | |
| 54 | + self.name('csobsinfo') | |
| 55 | 55 | |
| 56 | 56 | # Append tests |
| 57 | - self.append(self._test_cmd, "Test csobsinfo on command line") | |
| 58 | - self.append(self._test_python, "Test csobsinfo from Python") | |
| 57 | + self.append(self._test_cmd, 'Test csobsinfo on command line') | |
| 58 | + self.append(self._test_python, 'Test csobsinfo from Python') | |
| 59 | 59 | |
| 60 | 60 | # Return |
| 61 | 61 | return |
| ... | ... | @@ -63,13 +63,10 @@ class Test(gammalib.GPythonTestSuite): |
| 63 | 63 | # Test csobsinfo on command line |
| 64 | 64 | def _test_cmd(self): |
| 65 | 65 | """ |
| 66 | - Test csobsinfo on the command line. | |
| 66 | + Test csobsinfo on the command line | |
| 67 | 67 | """ |
| 68 | - # Kluge to set the command (installed version has no README file) | |
| 69 | - if os.path.isfile("README.md"): | |
| 70 | - csobsinfo = "../cscripts/csobsinfo.py" | |
| 71 | - else: | |
| 72 | - csobsinfo = "csobsinfo" | |
| 68 | + # Set script name | |
| 69 | + csobsinfo = self._script('csobsinfo') | |
| 73 | 70 | |
| 74 | 71 | # Setup csobsinfo command |
| 75 | 72 | cmd = csobsinfo+' inobs="data/obs_unbinned.xml"'+ \ |
| ... | ... | @@ -77,18 +74,16 @@ class Test(gammalib.GPythonTestSuite): |
| 77 | 74 | ' offset=yes ra=83.63 dec=22.01'+ \ |
| 78 | 75 | ' logfile="csobsinfo_cmd1.log" chatter=1' |
| 79 | 76 | |
| 80 | - # Execute csobsinfo, make sure we catch any exception | |
| 81 | - try: | |
| 82 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 83 | - except: | |
| 84 | - pass | |
| 77 | + # Check if execution of wrong command fails | |
| 78 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 79 | + 'Self test of test script') | |
| 85 | 80 | |
| 86 | 81 | # Check if execution was successful |
| 87 | - self.test_assert(rc == 0, | |
| 88 | - "Successful csobsinfo execution on command line") | |
| 82 | + self.test_assert(self._execute(cmd) == 0, | |
| 83 | + 'Check successful execution from command line') | |
| 89 | 84 | |
| 90 | 85 | # Check DS9 file |
| 91 | - self._check_ds9_file("csobsinfo_cmd1.reg") | |
| 86 | + self._check_ds9_file('csobsinfo_cmd1.reg') | |
| 92 | 87 | |
| 93 | 88 | # Setup csobsinfo command |
| 94 | 89 | cmd = csobsinfo+' inobs="obs_definition_that_does_not_exist.xml"'+ \ |
| ... | ... | @@ -96,15 +91,9 @@ class Test(gammalib.GPythonTestSuite): |
| 96 | 91 | ' offset=yes ra=83.63 dec=22.01'+ \ |
| 97 | 92 | ' logfile="csobsinfo_cmd2.log"' |
| 98 | 93 | |
| 99 | - # Execute csobsinfo, make sure we catch any exception | |
| 100 | - try: | |
| 101 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 102 | - except: | |
| 103 | - pass | |
| 104 | - | |
| 105 | 94 | # Check if execution failed |
| 106 | - self.test_assert(rc != 0, | |
| 107 | - "Failure of csobsinfo execution on command line") | |
| 95 | + self.test_assert(self._execute(cmd) != 0, | |
| 96 | + 'Check invalid input file when executed from command line') | |
| 108 | 97 | |
| 109 | 98 | # Return |
| 110 | 99 | return |
| ... | ... | @@ -112,17 +101,17 @@ class Test(gammalib.GPythonTestSuite): |
| 112 | 101 | # Test csobsinfo from Python |
| 113 | 102 | def _test_python(self): |
| 114 | 103 | """ |
| 115 | - Test csobsinfo from Python. | |
| 104 | + Test csobsinfo from Python | |
| 116 | 105 | """ |
| 117 | 106 | # Set-up csobsinfo |
| 118 | 107 | obsinfo = cscripts.csobsinfo() |
| 119 | - obsinfo["inobs"] = "data/obs_unbinned.xml" | |
| 120 | - obsinfo["ds9file"] = "csobsinfo_py1.reg" | |
| 121 | - obsinfo["offset"] = True | |
| 122 | - obsinfo["ra"] = 83.63 | |
| 123 | - obsinfo["dec"] = 22.01 | |
| 124 | - obsinfo["logfile"] = "csobsinfo_py1.log" | |
| 125 | - obsinfo["chatter"] = 2 | |
| 108 | + obsinfo['inobs'] = 'data/obs_unbinned.xml' | |
| 109 | + obsinfo['ds9file'] = 'csobsinfo_py1.reg' | |
| 110 | + obsinfo['offset'] = True | |
| 111 | + obsinfo['ra'] = 83.63 | |
| 112 | + obsinfo['dec'] = 22.01 | |
| 113 | + obsinfo['logfile'] = 'csobsinfo_py1.log' | |
| 114 | + obsinfo['chatter'] = 2 | |
| 126 | 115 | |
| 127 | 116 | # Run csobsinfo script and save XML file |
| 128 | 117 | obsinfo.logFileOpen() # Make sure we get a log file |
| ... | ... | @@ -130,23 +119,23 @@ class Test(gammalib.GPythonTestSuite): |
| 130 | 119 | obsinfo.save() |
| 131 | 120 | |
| 132 | 121 | # Check DS9 file |
| 133 | - self._check_ds9_file("csobsinfo_py1.reg") | |
| 122 | + self._check_ds9_file('csobsinfo_py1.reg') | |
| 134 | 123 | |
| 135 | 124 | # Set-up csobsinfo |
| 136 | 125 | obsinfo = cscripts.csobsinfo() |
| 137 | - obsinfo["inobs"] = "data/obs_unbinned.xml" | |
| 138 | - obsinfo["ds9file"] = "csobsinfo_py2.reg" | |
| 139 | - obsinfo["offset"] = True | |
| 140 | - obsinfo["ra"] = 83.63 | |
| 141 | - obsinfo["dec"] = 22.01 | |
| 142 | - obsinfo["logfile"] = "csobsinfo_py2.log" | |
| 143 | - obsinfo["chatter"] = 3 | |
| 126 | + obsinfo['inobs'] = 'data/obs_unbinned.xml' | |
| 127 | + obsinfo['ds9file'] = 'csobsinfo_py2.reg' | |
| 128 | + obsinfo['offset'] = True | |
| 129 | + obsinfo['ra'] = 83.63 | |
| 130 | + obsinfo['dec'] = 22.01 | |
| 131 | + obsinfo['logfile'] = 'csobsinfo_py2.log' | |
| 132 | + obsinfo['chatter'] = 3 | |
| 144 | 133 | |
| 145 | 134 | # Execute csobsinfo script |
| 146 | 135 | obsinfo.execute() |
| 147 | 136 | |
| 148 | 137 | # Check DS9 file |
| 149 | - self._check_ds9_file("csobsinfo_py2.reg") | |
| 138 | + self._check_ds9_file('csobsinfo_py2.reg') | |
| 150 | 139 | |
| 151 | 140 | # Return |
| 152 | 141 | return |
| ... | ... | @@ -154,10 +143,10 @@ class Test(gammalib.GPythonTestSuite): |
| 154 | 143 | # Check DS9 file |
| 155 | 144 | def _check_ds9_file(self, filename): |
| 156 | 145 | """ |
| 157 | - Check DS9 file. | |
| 146 | + Check DS9 file | |
| 158 | 147 | """ |
| 159 | 148 | # Open file |
| 160 | - f = open(filename,"r") | |
| 149 | + f = open(filename,'r') | |
| 161 | 150 | |
| 162 | 151 | # Expect "fk5" in first line |
| 163 | 152 | line = f.readline().strip('\n') | ... | ... |
test/test_cspull.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import cscripts |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ============================ # |
| 27 | 27 | # Test class for cspull script # |
| 28 | 28 | # ============================ # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for cspull script. | |
| 31 | + Test class for cspull script | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the cspull script by using it |
| 34 | 34 | from the command line and from Python. |
| ... | ... | @@ -37,10 +37,10 @@ class Test(gammalib.GPythonTestSuite): |
| 37 | 37 | # Constructor |
| 38 | 38 | def __init__(self): |
| 39 | 39 | """ |
| 40 | - Constructor. | |
| 40 | + Constructor | |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Return |
| 46 | 46 | return |
| ... | ... | @@ -48,14 +48,14 @@ class Test(gammalib.GPythonTestSuite): |
| 48 | 48 | # Set test functions |
| 49 | 49 | def set(self): |
| 50 | 50 | """ |
| 51 | - Set all test functions. | |
| 51 | + Set all test functions | |
| 52 | 52 | """ |
| 53 | 53 | # Set test name |
| 54 | - self.name("cspull") | |
| 54 | + self.name('cspull') | |
| 55 | 55 | |
| 56 | 56 | # Append tests |
| 57 | - self.append(self._test_cmd, "Test cspull on command line") | |
| 58 | - self.append(self._test_python, "Test cspull from Python") | |
| 57 | + self.append(self._test_cmd, 'Test cspull on command line') | |
| 58 | + self.append(self._test_python, 'Test cspull from Python') | |
| 59 | 59 | |
| 60 | 60 | # Return |
| 61 | 61 | return |
| ... | ... | @@ -63,13 +63,10 @@ class Test(gammalib.GPythonTestSuite): |
| 63 | 63 | # Test cspull on command line |
| 64 | 64 | def _test_cmd(self): |
| 65 | 65 | """ |
| 66 | - Test cspull on the command line. | |
| 66 | + Test cspull on the command line | |
| 67 | 67 | """ |
| 68 | - # Kluge to set the command (installed version has no README file) | |
| 69 | - if os.path.isfile("README.md"): | |
| 70 | - cspull = "../cscripts/cspull.py" | |
| 71 | - else: | |
| 72 | - cspull = "cspull" | |
| 68 | + # Set script name | |
| 69 | + cspull = self._script('cspull') | |
| 73 | 70 | |
| 74 | 71 | # Setup cspull command |
| 75 | 72 | cmd = cspull+' inmodel="data/crab.xml"'+ \ |
| ... | ... | @@ -80,18 +77,16 @@ class Test(gammalib.GPythonTestSuite): |
| 80 | 77 | ' npix=200 binsz=0.05'+ \ |
| 81 | 78 | ' logfile="cspull_cmd1.log" chatter=1' |
| 82 | 79 | |
| 83 | - # Execute cspull, make sure we catch any exception | |
| 84 | - try: | |
| 85 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 86 | - except: | |
| 87 | - pass | |
| 80 | + # Check if execution of wrong command fails | |
| 81 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 82 | + 'Self test of test script') | |
| 88 | 83 | |
| 89 | 84 | # Check if execution was successful |
| 90 | - self.test_assert(rc == 0, | |
| 91 | - "Successful cspull execution on command line") | |
| 85 | + self.test_assert(self._execute(cmd) == 0, | |
| 86 | + 'Check successful execution from command line') | |
| 92 | 87 | |
| 93 | 88 | # Check pull distribution file |
| 94 | - self._check_pull_file("cspull_cmd1.dat") | |
| 89 | + self._check_pull_file('cspull_cmd1.dat') | |
| 95 | 90 | |
| 96 | 91 | # Setup cspull command |
| 97 | 92 | cmd = cspull+' inmodel="model_that_does_not_exist.xml"'+ \ |
| ... | ... | @@ -102,15 +97,9 @@ class Test(gammalib.GPythonTestSuite): |
| 102 | 97 | ' npix=200 binsz=0.05'+ \ |
| 103 | 98 | ' logfile="cspull_cmd2.log"' |
| 104 | 99 | |
| 105 | - # Execute cspull, make sure we catch any exception | |
| 106 | - try: | |
| 107 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 108 | - except: | |
| 109 | - pass | |
| 110 | - | |
| 111 | 100 | # Check if execution failed |
| 112 | - self.test_assert(rc != 0, | |
| 113 | - "Failure of cspull execution on command line") | |
| 101 | + self.test_assert(self._execute(cmd) != 0, | |
| 102 | + 'Check invalid input file when executed from command line') | |
| 114 | 103 | |
| 115 | 104 | # Return |
| 116 | 105 | return |
| ... | ... | @@ -118,25 +107,25 @@ class Test(gammalib.GPythonTestSuite): |
| 118 | 107 | # Test cspull from Python |
| 119 | 108 | def _test_python(self): |
| 120 | 109 | """ |
| 121 | - Test cspull from Python. | |
| 110 | + Test cspull from Python | |
| 122 | 111 | """ |
| 123 | 112 | # Set-up unbinned cspull |
| 124 | 113 | pull = cscripts.cspull() |
| 125 | - pull["inmodel"] = "data/crab.xml" | |
| 126 | - pull["outfile"] = "cspull_py1.dat" | |
| 127 | - pull["ntrials"] = 3 | |
| 128 | - pull["caldb"] = "prod2" | |
| 129 | - pull["irf"] = "South_0.5h" | |
| 130 | - pull["ra"] = 83.6331 | |
| 131 | - pull["dec"] = 22.0145 | |
| 132 | - pull["emin"] = 0.1 | |
| 133 | - pull["emax"] = 100.0 | |
| 134 | - pull["enumbins"] = 0 | |
| 135 | - pull["tmax"] = 1800.0 | |
| 136 | - pull["deadc"] = 0.95 | |
| 137 | - pull["rad"] = 5.0 | |
| 138 | - pull["logfile"] = "cspull_py1.log" | |
| 139 | - pull["chatter"] = 2 | |
| 114 | + pull['inmodel'] = 'data/crab.xml' | |
| 115 | + pull['outfile'] = 'cspull_py1.dat' | |
| 116 | + pull['ntrials'] = 3 | |
| 117 | + pull['caldb'] = 'prod2' | |
| 118 | + pull['irf'] = 'South_0.5h' | |
| 119 | + pull['ra'] = 83.6331 | |
| 120 | + pull['dec'] = 22.0145 | |
| 121 | + pull['emin'] = 0.1 | |
| 122 | + pull['emax'] = 100.0 | |
| 123 | + pull['enumbins'] = 0 | |
| 124 | + pull['tmax'] = 1800.0 | |
| 125 | + pull['deadc'] = 0.95 | |
| 126 | + pull['rad'] = 5.0 | |
| 127 | + pull['logfile'] = 'cspull_py1.log' | |
| 128 | + pull['chatter'] = 2 | |
| 140 | 129 | |
| 141 | 130 | # Run cspull script |
| 142 | 131 | pull.logFileOpen() # Make sure we get a log file |
| ... | ... | @@ -144,93 +133,93 @@ class Test(gammalib.GPythonTestSuite): |
| 144 | 133 | #pull.save() |
| 145 | 134 | |
| 146 | 135 | # Check pull distribution file |
| 147 | - self._check_pull_file("cspull_py1.dat") | |
| 136 | + self._check_pull_file('cspull_py1.dat') | |
| 148 | 137 | |
| 149 | 138 | # Set-up binned cspull |
| 150 | 139 | pull = cscripts.cspull() |
| 151 | - pull["inmodel"] = "data/crab.xml" | |
| 152 | - pull["outfile"] = "cspull_py2.dat" | |
| 153 | - pull["ntrials"] = 3 | |
| 154 | - pull["caldb"] = "prod2" | |
| 155 | - pull["irf"] = "South_0.5h" | |
| 156 | - pull["ra"] = 83.6331 | |
| 157 | - pull["dec"] = 22.0145 | |
| 158 | - pull["emin"] = 0.1 | |
| 159 | - pull["emax"] = 100.0 | |
| 160 | - pull["enumbins"] = 10 | |
| 161 | - pull["tmax"] = 1800.0 | |
| 162 | - pull["deadc"] = 0.95 | |
| 163 | - pull["rad"] = 5.0 | |
| 164 | - pull["npix"] = 100 | |
| 165 | - pull["binsz"] = 0.02 | |
| 166 | - pull["coordsys"] = "CEL" | |
| 167 | - pull["proj"] = "TAN" | |
| 168 | - pull["logfile"] = "cspull_py2.log" | |
| 169 | - pull["chatter"] = 3 | |
| 140 | + pull['inmodel'] = 'data/crab.xml' | |
| 141 | + pull['outfile'] = 'cspull_py2.dat' | |
| 142 | + pull['ntrials'] = 3 | |
| 143 | + pull['caldb'] = 'prod2' | |
| 144 | + pull['irf'] = 'South_0.5h' | |
| 145 | + pull['ra'] = 83.6331 | |
| 146 | + pull['dec'] = 22.0145 | |
| 147 | + pull['emin'] = 0.1 | |
| 148 | + pull['emax'] = 100.0 | |
| 149 | + pull['enumbins'] = 10 | |
| 150 | + pull['tmax'] = 1800.0 | |
| 151 | + pull['deadc'] = 0.95 | |
| 152 | + pull['rad'] = 5.0 | |
| 153 | + pull['npix'] = 100 | |
| 154 | + pull['binsz'] = 0.02 | |
| 155 | + pull['coordsys'] = 'CEL' | |
| 156 | + pull['proj'] = 'TAN' | |
| 157 | + pull['logfile'] = 'cspull_py2.log' | |
| 158 | + pull['chatter'] = 3 | |
| 170 | 159 | |
| 171 | 160 | # Execute cspull script |
| 172 | 161 | pull.execute() |
| 173 | 162 | |
| 174 | 163 | # Check pull distribution file |
| 175 | - self._check_pull_file("cspull_py2.dat") | |
| 164 | + self._check_pull_file('cspull_py2.dat') | |
| 176 | 165 | |
| 177 | 166 | # Set-up cspull from event list |
| 178 | 167 | pull = cscripts.cspull() |
| 179 | - pull["inobs"] = "data/crab_events.fits" | |
| 180 | - pull["inmodel"] = "data/crab.xml" | |
| 181 | - pull["outfile"] = "cspull_py3.dat" | |
| 182 | - pull["ntrials"] = 3 | |
| 183 | - pull["caldb"] = "prod2" | |
| 184 | - pull["irf"] = "South_0.5h" | |
| 185 | - pull["enumbins"] = 0 | |
| 186 | - pull["logfile"] = "cspull_py3.log" | |
| 187 | - pull["chatter"] = 4 | |
| 168 | + pull['inobs'] = 'data/crab_events.fits' | |
| 169 | + pull['inmodel'] = 'data/crab.xml' | |
| 170 | + pull['outfile'] = 'cspull_py3.dat' | |
| 171 | + pull['ntrials'] = 3 | |
| 172 | + pull['caldb'] = 'prod2' | |
| 173 | + pull['irf'] = 'South_0.5h' | |
| 174 | + pull['enumbins'] = 0 | |
| 175 | + pull['logfile'] = 'cspull_py3.log' | |
| 176 | + pull['chatter'] = 4 | |
| 188 | 177 | |
| 189 | 178 | # Execute cspull script |
| 190 | 179 | pull.execute() |
| 191 | 180 | |
| 192 | 181 | # Check pull distribution file |
| 193 | - self._check_pull_file("cspull_py3.dat") | |
| 182 | + self._check_pull_file('cspull_py3.dat') | |
| 194 | 183 | |
| 195 | 184 | # Build observation container with unbinned observation |
| 196 | - cta = gammalib.GCTAObservation("data/crab_events.fits") | |
| 185 | + cta = gammalib.GCTAObservation('data/crab_events.fits') | |
| 197 | 186 | obs = gammalib.GObservations() |
| 198 | 187 | obs.append(cta) |
| 199 | 188 | |
| 200 | 189 | # Set-up cspull from observation container with unbinned observation |
| 201 | 190 | pull = cscripts.cspull(obs) |
| 202 | - pull["inmodel"] = "data/crab.xml" | |
| 203 | - pull["outfile"] = "cspull_py4.dat" | |
| 204 | - pull["ntrials"] = 3 | |
| 205 | - pull["caldb"] = "prod2" | |
| 206 | - pull["irf"] = "South_0.5h" | |
| 207 | - pull["enumbins"] = 0 | |
| 208 | - pull["logfile"] = "cspull_py4.log" | |
| 209 | - pull["chatter"] = 4 | |
| 191 | + pull['inmodel'] = 'data/crab.xml' | |
| 192 | + pull['outfile'] = 'cspull_py4.dat' | |
| 193 | + pull['ntrials'] = 3 | |
| 194 | + pull['caldb'] = 'prod2' | |
| 195 | + pull['irf'] = 'South_0.5h' | |
| 196 | + pull['enumbins'] = 0 | |
| 197 | + pull['logfile'] = 'cspull_py4.log' | |
| 198 | + pull['chatter'] = 4 | |
| 210 | 199 | |
| 211 | 200 | # Execute cspull script |
| 212 | 201 | pull.execute() |
| 213 | 202 | |
| 214 | 203 | # Check pull distribution file |
| 215 | - self._check_pull_file("cspull_py4.dat") | |
| 204 | + self._check_pull_file('cspull_py4.dat') | |
| 216 | 205 | |
| 217 | 206 | # Set-up stacked cspull |
| 218 | 207 | pull = cscripts.cspull() |
| 219 | - pull["inobs"] = "data/obs_stacked.xml" | |
| 220 | - pull["inmodel"] = "data/crab_bkgcube.xml" | |
| 221 | - pull["outfile"] = "cspull_py5.dat" | |
| 222 | - pull["ntrials"] = 3 | |
| 223 | - pull["caldb"] = "prod2" | |
| 224 | - pull["irf"] = "South_0.5h" | |
| 225 | - pull["enumbins"] = 0 | |
| 226 | - pull["logfile"] = "cspull_py5.log" | |
| 227 | - pull["chatter"] = 4 | |
| 208 | + pull['inobs'] = 'data/obs_stacked.xml' | |
| 209 | + pull['inmodel'] = 'data/crab_bkgcube.xml' | |
| 210 | + pull['outfile'] = 'cspull_py5.dat' | |
| 211 | + pull['ntrials'] = 3 | |
| 212 | + pull['caldb'] = 'prod2' | |
| 213 | + pull['irf'] = 'South_0.5h' | |
| 214 | + pull['enumbins'] = 0 | |
| 215 | + pull['logfile'] = 'cspull_py5.log' | |
| 216 | + pull['chatter'] = 4 | |
| 228 | 217 | |
| 229 | 218 | # Execute cspull script |
| 230 | 219 | pull.execute() |
| 231 | 220 | |
| 232 | 221 | # Check pull distribution file |
| 233 | - self._check_pull_file("cspull_py5.dat") | |
| 222 | + self._check_pull_file('cspull_py5.dat') | |
| 234 | 223 | |
| 235 | 224 | # Return |
| 236 | 225 | return |
| ... | ... | @@ -238,7 +227,7 @@ class Test(gammalib.GPythonTestSuite): |
| 238 | 227 | # Check pull file |
| 239 | 228 | def _check_pull_file(self, filename): |
| 240 | 229 | """ |
| 241 | - Check pull file. | |
| 230 | + Check pull file | |
| 242 | 231 | """ |
| 243 | 232 | # Open pull file as CSV file |
| 244 | 233 | pulls = gammalib.GCsv(filename) | ... | ... |
test/test_csresmap.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import cscripts |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ============================== # |
| 27 | 27 | # Test class for csresmap script # |
| 28 | 28 | # ============================== # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for csresmap script. | |
| 31 | + Test class for csresmap script | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the csresmap script by using it |
| 34 | 34 | from the command line and from Python. |
| ... | ... | @@ -37,10 +37,10 @@ class Test(gammalib.GPythonTestSuite): |
| 37 | 37 | # Constructor |
| 38 | 38 | def __init__(self): |
| 39 | 39 | """ |
| 40 | - Constructor. | |
| 40 | + Constructor | |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Return |
| 46 | 46 | return |
| ... | ... | @@ -48,7 +48,7 @@ class Test(gammalib.GPythonTestSuite): |
| 48 | 48 | # Set test functions |
| 49 | 49 | def set(self): |
| 50 | 50 | """ |
| 51 | - Set all test functions. | |
| 51 | + Set all test functions | |
| 52 | 52 | """ |
| 53 | 53 | # Set test name |
| 54 | 54 | self.name('csresmap') |
| ... | ... | @@ -65,11 +65,8 @@ class Test(gammalib.GPythonTestSuite): |
| 65 | 65 | """ |
| 66 | 66 | Test csresmap on the command line. |
| 67 | 67 | """ |
| 68 | - # Kluge to set the command (installed version has no README file) | |
| 69 | - if os.path.isfile('README.md'): | |
| 70 | - csresmap = '../cscripts/csresmap.py' | |
| 71 | - else: | |
| 72 | - csresmap = 'csresmap' | |
| 68 | + # Set script name | |
| 69 | + csresmap = self._script('csresmap') | |
| 73 | 70 | |
| 74 | 71 | # Setup csresmap command |
| 75 | 72 | cmd = csresmap+' inobs="data/crab_events.fits"'+ \ |
| ... | ... | @@ -82,15 +79,13 @@ class Test(gammalib.GPythonTestSuite): |
| 82 | 79 | ' algorithm="SUBDIV"'+ \ |
| 83 | 80 | ' logfile="csresmap_cmd1.log" chatter=1' |
| 84 | 81 | |
| 85 | - # Execute csresmap, make sure we catch any exception | |
| 86 | - try: | |
| 87 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 88 | - except: | |
| 89 | - pass | |
| 82 | + # Check if execution of wrong command fails | |
| 83 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 84 | + 'Self test of test script') | |
| 90 | 85 | |
| 91 | 86 | # Check if execution was successful |
| 92 | - self.test_assert(rc == 0, | |
| 93 | - 'Successful csresmap execution on command line') | |
| 87 | + self.test_assert(self._execute(cmd) == 0, | |
| 88 | + 'Check successful execution from command line') | |
| 94 | 89 | |
| 95 | 90 | # Check result file |
| 96 | 91 | self._check_result_file('csresmap_cmd1.fits') |
| ... | ... | @@ -106,15 +101,9 @@ class Test(gammalib.GPythonTestSuite): |
| 106 | 101 | ' algorithm="SUBDIV"'+ \ |
| 107 | 102 | ' logfile="csresmap_cmd2.log" chatter=2' |
| 108 | 103 | |
| 109 | - # Execute csresmap, make sure we catch any exception | |
| 110 | - try: | |
| 111 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 112 | - except: | |
| 113 | - pass | |
| 114 | - | |
| 115 | 104 | # Check if execution failed |
| 116 | - self.test_assert(rc != 0, | |
| 117 | - 'Failure of csresmap execution on command line') | |
| 105 | + self.test_assert(self._execute(cmd) != 0, | |
| 106 | + 'Check invalid input file when executed from command line') | |
| 118 | 107 | |
| 119 | 108 | # Return |
| 120 | 109 | return |
| ... | ... | @@ -122,7 +111,7 @@ class Test(gammalib.GPythonTestSuite): |
| 122 | 111 | # Test csresmap from Python |
| 123 | 112 | def _test_python(self): |
| 124 | 113 | """ |
| 125 | - Test csresmap from Python. | |
| 114 | + Test csresmap from Python | |
| 126 | 115 | """ |
| 127 | 116 | # Set-up csresmap for event list |
| 128 | 117 | resmap = cscripts.csresmap() |
| ... | ... | @@ -181,7 +170,7 @@ class Test(gammalib.GPythonTestSuite): |
| 181 | 170 | # Check result file |
| 182 | 171 | def _check_result_file(self, filename, nx=50, ny=50): |
| 183 | 172 | """ |
| 184 | - Check result file. | |
| 173 | + Check result file | |
| 185 | 174 | """ |
| 186 | 175 | # Load residual map |
| 187 | 176 | residual = gammalib.GSkyMap(filename) | ... | ... |
test/test_csroot2caldb.py
| ... | ... | @@ -21,14 +21,15 @@ |
| 21 | 21 | import os |
| 22 | 22 | import gammalib |
| 23 | 23 | import cscripts |
| 24 | +from testing import test | |
| 24 | 25 | |
| 25 | 26 | |
| 26 | 27 | # ================================== # |
| 27 | 28 | # Test class for csroot2caldb script # |
| 28 | 29 | # ================================== # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 30 | +class Test(test): | |
| 30 | 31 | """ |
| 31 | - Test class for csroot2caldb script. | |
| 32 | + Test class for csroot2caldb script | |
| 32 | 33 | |
| 33 | 34 | This test class makes unit tests for the cslightcrv script by using it |
| 34 | 35 | from the command line and from Python. |
| ... | ... | @@ -40,10 +41,10 @@ class Test(gammalib.GPythonTestSuite): |
| 40 | 41 | Constructor. |
| 41 | 42 | """ |
| 42 | 43 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 44 | + test.__init__(self) | |
| 44 | 45 | |
| 45 | 46 | # Clean calibration database |
| 46 | - os.system("rm -rf csroot2caldb_* >/dev/null 2>&1") | |
| 47 | + os.system('rm -rf csroot2caldb_* >/dev/null 2>&1') | |
| 47 | 48 | |
| 48 | 49 | # Return |
| 49 | 50 | return |
| ... | ... | @@ -51,14 +52,14 @@ class Test(gammalib.GPythonTestSuite): |
| 51 | 52 | # Set test functions |
| 52 | 53 | def set(self): |
| 53 | 54 | """ |
| 54 | - Set all test functions. | |
| 55 | + Set all test functions | |
| 55 | 56 | """ |
| 56 | 57 | # Set test name |
| 57 | - self.name("csroot2caldb") | |
| 58 | + self.name('csroot2caldb') | |
| 58 | 59 | |
| 59 | 60 | # Append tests |
| 60 | - self.append(self._test_cmd, "Test csroot2caldb on command line") | |
| 61 | - self.append(self._test_python, "Test csroot2caldb from Python") | |
| 61 | + self.append(self._test_cmd, 'Test csroot2caldb on command line') | |
| 62 | + self.append(self._test_python, 'Test csroot2caldb from Python') | |
| 62 | 63 | |
| 63 | 64 | # Return |
| 64 | 65 | return |
| ... | ... | @@ -66,13 +67,10 @@ class Test(gammalib.GPythonTestSuite): |
| 66 | 67 | # Test csroot2caldb on command line |
| 67 | 68 | def _test_cmd(self): |
| 68 | 69 | """ |
| 69 | - Test csroot2caldb on the command line. | |
| 70 | + Test csroot2caldb on the command line | |
| 70 | 71 | """ |
| 71 | - # Kluge to set the command (installed version has no README file) | |
| 72 | - if os.path.isfile("README.md"): | |
| 73 | - csroot2caldb = "../cscripts/csroot2caldb.py" | |
| 74 | - else: | |
| 75 | - csroot2caldb = "csroot2caldb" | |
| 72 | + # Set script name | |
| 73 | + csroot2caldb = self._script('csroot2caldb') | |
| 76 | 74 | |
| 77 | 75 | # Setup csroot2caldb command |
| 78 | 76 | cmd = csroot2caldb+' infile="data/irf.root"'+ \ |
| ... | ... | @@ -81,15 +79,13 @@ class Test(gammalib.GPythonTestSuite): |
| 81 | 79 | ' analysis=DESY'+ \ |
| 82 | 80 | ' logfile="csroot2caldb_cmd1.log" chatter=1' |
| 83 | 81 | |
| 84 | - # Execute csroot2caldb, make sure we catch any exception | |
| 85 | - try: | |
| 86 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 87 | - except: | |
| 88 | - pass | |
| 82 | + # Check if execution of wrong command fails | |
| 83 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 84 | + 'Self test of test script') | |
| 89 | 85 | |
| 90 | 86 | # Check if execution was successful |
| 91 | - self.test_assert(rc == 0, | |
| 92 | - "Successful csroot2caldb execution on command line") | |
| 87 | + self.test_assert(self._execute(cmd) == 0, | |
| 88 | + 'Check successful execution from command line') | |
| 93 | 89 | |
| 94 | 90 | # Return |
| 95 | 91 | return |
| ... | ... | @@ -97,18 +93,18 @@ class Test(gammalib.GPythonTestSuite): |
| 97 | 93 | # Test csroot2caldb from Python |
| 98 | 94 | def _test_python(self): |
| 99 | 95 | """ |
| 100 | - Test csroot2caldb from Python. | |
| 96 | + Test csroot2caldb from Python | |
| 101 | 97 | """ |
| 102 | 98 | # Set-up csroot2caldb |
| 103 | 99 | caldb = cscripts.csroot2caldb() |
| 104 | - caldb["infile"] = "data/irf.root" | |
| 105 | - caldb["outdir"] = "csroot2caldb_py1" | |
| 106 | - caldb["inst"] = "prod3" | |
| 107 | - caldb["id"] = "South_50h" | |
| 108 | - caldb["version"] = "prod3" | |
| 109 | - caldb["analysis"] = "DESY" | |
| 110 | - caldb["logfile"] = "csroot2caldb_py1.log" | |
| 111 | - caldb["chatter"] = 2 | |
| 100 | + caldb['infile'] = 'data/irf.root' | |
| 101 | + caldb['outdir'] = 'csroot2caldb_py1' | |
| 102 | + caldb['inst'] = 'prod3' | |
| 103 | + caldb['id'] = 'South_50h' | |
| 104 | + caldb['version'] = 'prod3' | |
| 105 | + caldb['analysis'] = 'DESY' | |
| 106 | + caldb['logfile'] = 'csroot2caldb_py1.log' | |
| 107 | + caldb['chatter'] = 2 | |
| 112 | 108 | |
| 113 | 109 | # Run script |
| 114 | 110 | caldb.logFileOpen() # Make sure we get a log file | ... | ... |
test/test_cssens.py
| ... | ... | @@ -20,13 +20,13 @@ |
| 20 | 20 | # ========================================================================== |
| 21 | 21 | import gammalib |
| 22 | 22 | import cscripts |
| 23 | -import test_cscripts_class | |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ============================ # |
| 27 | 27 | # Test class for cssens script # |
| 28 | 28 | # ============================ # |
| 29 | -class Test(test_cscripts_class.cscripts_test): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | 31 | Test class for cssens script |
| 32 | 32 | |
| ... | ... | @@ -40,7 +40,7 @@ class Test(test_cscripts_class.cscripts_test): |
| 40 | 40 | Constructor |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - test_cscripts_class.cscripts_test.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Return |
| 46 | 46 | return |
| ... | ... | @@ -103,7 +103,7 @@ class Test(test_cscripts_class.cscripts_test): |
| 103 | 103 | # Test cssens from Python |
| 104 | 104 | def _test_python(self): |
| 105 | 105 | """ |
| 106 | - Test cssens from Python. | |
| 106 | + Test cssens from Python | |
| 107 | 107 | """ |
| 108 | 108 | # Set-up cssens |
| 109 | 109 | sens = cscripts.cssens() |
| ... | ... | @@ -135,7 +135,7 @@ class Test(test_cscripts_class.cscripts_test): |
| 135 | 135 | # Check result file |
| 136 | 136 | def _check_result_file(self, filename): |
| 137 | 137 | """ |
| 138 | - Check result file. | |
| 138 | + Check result file | |
| 139 | 139 | """ |
| 140 | 140 | # Open result file as CSV file |
| 141 | 141 | results = gammalib.GCsv(filename, ',') | ... | ... |
test/test_csspec.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import cscripts |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ============================ # |
| 27 | 27 | # Test class for csspec script # |
| 28 | 28 | # ============================ # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for csspec script. | |
| 31 | + Test class for csspec script | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the csspec script by using it |
| 34 | 34 | from the command line and from Python. |
| ... | ... | @@ -37,10 +37,10 @@ class Test(gammalib.GPythonTestSuite): |
| 37 | 37 | # Constructor |
| 38 | 38 | def __init__(self): |
| 39 | 39 | """ |
| 40 | - Constructor. | |
| 40 | + Constructor | |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Return |
| 46 | 46 | return |
| ... | ... | @@ -48,7 +48,7 @@ class Test(gammalib.GPythonTestSuite): |
| 48 | 48 | # Set test functions |
| 49 | 49 | def set(self): |
| 50 | 50 | """ |
| 51 | - Set all test functions. | |
| 51 | + Set all test functions | |
| 52 | 52 | """ |
| 53 | 53 | # Set test name |
| 54 | 54 | self.name('csspec') |
| ... | ... | @@ -63,13 +63,10 @@ class Test(gammalib.GPythonTestSuite): |
| 63 | 63 | # Test csspec on command line |
| 64 | 64 | def _test_cmd(self): |
| 65 | 65 | """ |
| 66 | - Test csspec on the command line. | |
| 66 | + Test csspec on the command line | |
| 67 | 67 | """ |
| 68 | - # Kluge to set the command (installed version has no README file) | |
| 69 | - if os.path.isfile('README.md'): | |
| 70 | - csspec = '../cscripts/csspec.py' | |
| 71 | - else: | |
| 72 | - csspec = 'csspec' | |
| 68 | + # Set script name | |
| 69 | + csspec = self._script('csspec') | |
| 73 | 70 | |
| 74 | 71 | # Setup csspec command |
| 75 | 72 | cmd = csspec+' inobs="data/crab_events.fits"'+ \ |
| ... | ... | @@ -79,15 +76,13 @@ class Test(gammalib.GPythonTestSuite): |
| 79 | 76 | ' outfile="csspec_cmd1.fits"'+ \ |
| 80 | 77 | ' logfile="csspec_cmd1.log" chatter=1' |
| 81 | 78 | |
| 82 | - # Execute csspec, make sure we catch any exception | |
| 83 | - try: | |
| 84 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 85 | - except: | |
| 86 | - pass | |
| 79 | + # Check if execution of wrong command fails | |
| 80 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 81 | + 'Self test of test script') | |
| 87 | 82 | |
| 88 | 83 | # Check if execution was successful |
| 89 | - self.test_assert(rc == 0, | |
| 90 | - 'Successful csspec execution on command line') | |
| 84 | + self.test_assert(self._execute(cmd) == 0, | |
| 85 | + 'Check successful execution from command line') | |
| 91 | 86 | |
| 92 | 87 | # Check result file |
| 93 | 88 | self._check_result_file('csspec_cmd1.fits', 5) |
| ... | ... | @@ -100,15 +95,9 @@ class Test(gammalib.GPythonTestSuite): |
| 100 | 95 | ' outfile="csspec_cmd2.fits"'+ \ |
| 101 | 96 | ' logfile="csspec_cmd2.log" chatter=1' |
| 102 | 97 | |
| 103 | - # Execute csspec, make sure we catch any exception | |
| 104 | - try: | |
| 105 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 106 | - except: | |
| 107 | - pass | |
| 108 | - | |
| 109 | 98 | # Check if execution failed |
| 110 | - self.test_assert(rc != 0, | |
| 111 | - 'Failure of csspec execution on command line') | |
| 99 | + self.test_assert(self._execute(cmd) != 0, | |
| 100 | + 'Check invalid input file when executed from command line') | |
| 112 | 101 | |
| 113 | 102 | # Return |
| 114 | 103 | return |
| ... | ... | @@ -116,7 +105,7 @@ class Test(gammalib.GPythonTestSuite): |
| 116 | 105 | # Test csspec from Python |
| 117 | 106 | def _test_python(self): |
| 118 | 107 | """ |
| 119 | - Test csspec from Python. | |
| 108 | + Test csspec from Python | |
| 120 | 109 | """ |
| 121 | 110 | # Set-up unbinned csspec |
| 122 | 111 | spec = cscripts.csspec() |
| ... | ... | @@ -170,7 +159,7 @@ class Test(gammalib.GPythonTestSuite): |
| 170 | 159 | # Check result file |
| 171 | 160 | def _check_result_file(self, filename, bins): |
| 172 | 161 | """ |
| 173 | - Check result file. | |
| 162 | + Check result file | |
| 174 | 163 | """ |
| 175 | 164 | # Open result file |
| 176 | 165 | fits = gammalib.GFits(filename) | ... | ... |
test/test_cstsdist.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import cscripts |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ============================== # |
| 27 | 27 | # Test class for cstsdist script # |
| 28 | 28 | # ============================== # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for cstsdist script. | |
| 31 | + Test class for cstsdist script | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the cstsdist script by using it |
| 34 | 34 | from the command line and from Python. |
| ... | ... | @@ -37,10 +37,10 @@ class Test(gammalib.GPythonTestSuite): |
| 37 | 37 | # Constructor |
| 38 | 38 | def __init__(self): |
| 39 | 39 | """ |
| 40 | - Constructor. | |
| 40 | + Constructor | |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Return |
| 46 | 46 | return |
| ... | ... | @@ -48,7 +48,7 @@ class Test(gammalib.GPythonTestSuite): |
| 48 | 48 | # Set test functions |
| 49 | 49 | def set(self): |
| 50 | 50 | """ |
| 51 | - Set all test functions. | |
| 51 | + Set all test functions | |
| 52 | 52 | """ |
| 53 | 53 | # Set test name |
| 54 | 54 | self.name('cstsdist') |
| ... | ... | @@ -63,13 +63,10 @@ class Test(gammalib.GPythonTestSuite): |
| 63 | 63 | # Test cstsdist on command line |
| 64 | 64 | def _test_cmd(self): |
| 65 | 65 | """ |
| 66 | - Test cstsdist on the command line. | |
| 66 | + Test cstsdist on the command line | |
| 67 | 67 | """ |
| 68 | - # Kluge to set the command (installed version has no README file) | |
| 69 | - if os.path.isfile('README.md'): | |
| 70 | - cstsdist = '../cscripts/cstsdist.py' | |
| 71 | - else: | |
| 72 | - cstsdist = 'cstsdist' | |
| 68 | + # Set script name | |
| 69 | + cstsdist = self._script('cstsdist') | |
| 73 | 70 | |
| 74 | 71 | # Setup cstsdist command |
| 75 | 72 | cmd = cstsdist+' inmodel="data/crab.xml"'+ \ |
| ... | ... | @@ -80,15 +77,13 @@ class Test(gammalib.GPythonTestSuite): |
| 80 | 77 | ' outfile="cstsdist_cmd1.dat"'+ \ |
| 81 | 78 | ' logfile="cstsdist_cmd1.log" chatter=1' |
| 82 | 79 | |
| 83 | - # Execute cstsdist, make sure we catch any exception | |
| 84 | - try: | |
| 85 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 86 | - except: | |
| 87 | - pass | |
| 80 | + # Check if execution of wrong command fails | |
| 81 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 82 | + 'Self test of test script') | |
| 88 | 83 | |
| 89 | 84 | # Check if execution was successful |
| 90 | - self.test_assert(rc == 0, | |
| 91 | - 'Successful cstsdist execution on command line') | |
| 85 | + self.test_assert(self._execute(cmd) == 0, | |
| 86 | + 'Check successful execution from command line') | |
| 92 | 87 | |
| 93 | 88 | # Check result file |
| 94 | 89 | self._check_result_file('cstsdist_cmd1.dat') |
| ... | ... | @@ -102,15 +97,9 @@ class Test(gammalib.GPythonTestSuite): |
| 102 | 97 | ' outfile="cstsdist_cmd2.dat"'+ \ |
| 103 | 98 | ' logfile="cstsdist_cmd2.log" chatter=2' |
| 104 | 99 | |
| 105 | - # Execute cstsdist, make sure we catch any exception | |
| 106 | - try: | |
| 107 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 108 | - except: | |
| 109 | - pass | |
| 110 | - | |
| 111 | 100 | # Check if execution failed |
| 112 | - self.test_assert(rc != 0, | |
| 113 | - 'Failure of cstsdist execution on command line') | |
| 101 | + self.test_assert(self._execute(cmd) != 0, | |
| 102 | + 'Check invalid input file when executed from command line') | |
| 114 | 103 | |
| 115 | 104 | # Return |
| 116 | 105 | return |
| ... | ... | @@ -118,7 +107,7 @@ class Test(gammalib.GPythonTestSuite): |
| 118 | 107 | # Test cstsdist from Python |
| 119 | 108 | def _test_python(self): |
| 120 | 109 | """ |
| 121 | - Test cstsdist from Python. | |
| 110 | + Test cstsdist from Python | |
| 122 | 111 | """ |
| 123 | 112 | # Set-up cstsdist |
| 124 | 113 | tsdist = cscripts.cstsdist() |
| ... | ... | @@ -154,7 +143,7 @@ class Test(gammalib.GPythonTestSuite): |
| 154 | 143 | # Check result file |
| 155 | 144 | def _check_result_file(self, filename): |
| 156 | 145 | """ |
| 157 | - Check result file. | |
| 146 | + Check result file | |
| 158 | 147 | """ |
| 159 | 148 | # Open result file as CSV file |
| 160 | 149 | results = gammalib.GCsv(filename, ',') | ... | ... |
test/test_cstsmapmerge.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import cscripts |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ================================== # |
| 27 | 27 | # Test class for cstsmapmerge script # |
| 28 | 28 | # ================================== # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for cstsmapmerge script. | |
| 31 | + Test class for cstsmapmerge script | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the cstsmapmerge script by using it |
| 34 | 34 | from the command line and from Python. |
| ... | ... | @@ -37,10 +37,10 @@ class Test(gammalib.GPythonTestSuite): |
| 37 | 37 | # Constructor |
| 38 | 38 | def __init__(self): |
| 39 | 39 | """ |
| 40 | - Constructor. | |
| 40 | + Constructor | |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Return |
| 46 | 46 | return |
| ... | ... | @@ -48,7 +48,7 @@ class Test(gammalib.GPythonTestSuite): |
| 48 | 48 | # Set test functions |
| 49 | 49 | def set(self): |
| 50 | 50 | """ |
| 51 | - Set all test functions. | |
| 51 | + Set all test functions | |
| 52 | 52 | """ |
| 53 | 53 | # Set test name |
| 54 | 54 | self.name('cstsmapmerge') |
| ... | ... | @@ -63,28 +63,23 @@ class Test(gammalib.GPythonTestSuite): |
| 63 | 63 | # Test cstsmapmerge on command line |
| 64 | 64 | def _test_cmd(self): |
| 65 | 65 | """ |
| 66 | - Test cstsmapmerge on the command line. | |
| 66 | + Test cstsmapmerge on the command line | |
| 67 | 67 | """ |
| 68 | - # Kluge to set the command (installed version has no README file) | |
| 69 | - if os.path.isfile('README.md'): | |
| 70 | - cstsmapmerge = '../cscripts/cstsmapmerge.py' | |
| 71 | - else: | |
| 72 | - cstsmapmerge = 'cstsmapmerge' | |
| 68 | + # Set script name | |
| 69 | + cstsmapmerge = self._script('cstsmapmerge') | |
| 73 | 70 | |
| 74 | 71 | # Setup cstsmapmerge command |
| 75 | 72 | cmd = cstsmapmerge+' inmaps="data/tsmap_0.fits;data/tsmap_1.fits"'+ \ |
| 76 | 73 | ' outmap="cstsmapmerge_cmd1.fits"'+ \ |
| 77 | 74 | ' logfile="cstsmapmerge_cmd1.log" chatter=1' |
| 78 | 75 | |
| 79 | - # Execute cstsmapmerge, make sure we catch any exception | |
| 80 | - try: | |
| 81 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 82 | - except: | |
| 83 | - pass | |
| 76 | + # Check if execution of wrong command fails | |
| 77 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 78 | + 'Self test of test script') | |
| 84 | 79 | |
| 85 | 80 | # Check if execution was successful |
| 86 | - self.test_assert(rc == 0, | |
| 87 | - 'Successful cstsmapmerge execution on command line') | |
| 81 | + self.test_assert(self._execute(cmd) == 0, | |
| 82 | + 'Check successful execution from command line') | |
| 88 | 83 | |
| 89 | 84 | # Check result file |
| 90 | 85 | self._check_result_file('cstsmapmerge_cmd1.fits') |
| ... | ... | @@ -94,15 +89,9 @@ class Test(gammalib.GPythonTestSuite): |
| 94 | 89 | ' outmap="cstsmapmerge_cmd2.fits"'+ \ |
| 95 | 90 | ' logfile="cstsmapmerge_cmd2.log" chatter=2' |
| 96 | 91 | |
| 97 | - # Execute cstsmapmerge, make sure we catch any exception | |
| 98 | - try: | |
| 99 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 100 | - except: | |
| 101 | - pass | |
| 102 | - | |
| 103 | 92 | # Check if execution failed |
| 104 | - self.test_assert(rc != 0, | |
| 105 | - 'Failure of cstsmapmerge execution on command line') | |
| 93 | + self.test_assert(self._execute(cmd) != 0, | |
| 94 | + 'Check invalid input file when executed from command line') | |
| 106 | 95 | |
| 107 | 96 | # Return |
| 108 | 97 | return |
| ... | ... | @@ -110,7 +99,7 @@ class Test(gammalib.GPythonTestSuite): |
| 110 | 99 | # Test cstsmapmerge from Python |
| 111 | 100 | def _test_python(self): |
| 112 | 101 | """ |
| 113 | - Test cstsmapmerge from Python. | |
| 102 | + Test cstsmapmerge from Python | |
| 114 | 103 | """ |
| 115 | 104 | # Set-up semi-colon separated cstsmapmerge |
| 116 | 105 | merge = cscripts.cstsmapmerge() |
| ... | ... | @@ -172,7 +161,7 @@ class Test(gammalib.GPythonTestSuite): |
| 172 | 161 | # Check result file |
| 173 | 162 | def _check_result_file(self, filename): |
| 174 | 163 | """ |
| 175 | - Check result file. | |
| 164 | + Check result file | |
| 176 | 165 | """ |
| 177 | 166 | # Open result file |
| 178 | 167 | fits = gammalib.GFits(filename) | ... | ... |
test/test_csworkflow.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import cscripts |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ================================ # |
| 27 | 27 | # Test class for csworkflow script # |
| 28 | 28 | # ================================ # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for csworkflow script. | |
| 31 | + Test class for csworkflow script | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the cslightcrv script by using it |
| 34 | 34 | from the command line and from Python. |
| ... | ... | @@ -37,10 +37,10 @@ class Test(gammalib.GPythonTestSuite): |
| 37 | 37 | # Constructor |
| 38 | 38 | def __init__(self): |
| 39 | 39 | """ |
| 40 | - Constructor. | |
| 40 | + Constructor | |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Return |
| 46 | 46 | return |
| ... | ... | @@ -48,7 +48,7 @@ class Test(gammalib.GPythonTestSuite): |
| 48 | 48 | # Set test functions |
| 49 | 49 | def set(self): |
| 50 | 50 | """ |
| 51 | - Set all test functions. | |
| 51 | + Set all test functions | |
| 52 | 52 | """ |
| 53 | 53 | # Set test name |
| 54 | 54 | self.name('csworkflow') |
| ... | ... | @@ -62,12 +62,11 @@ class Test(gammalib.GPythonTestSuite): |
| 62 | 62 | |
| 63 | 63 | # Test csworkflow on command line |
| 64 | 64 | def _test_cmd(self): |
| 65 | - | |
| 66 | - # Kluge to set the command (installed version has no README file) | |
| 67 | - if os.path.isfile('README.md'): | |
| 68 | - csworkflow = '../cscripts/csworkflow.py' | |
| 69 | - else: | |
| 70 | - csworkflow = 'csworkflow' | |
| 65 | + """ | |
| 66 | + Test csworkflow on the command line | |
| 67 | + """ | |
| 68 | + # Set script name | |
| 69 | + csworkflow = self._script('csworkflow') | |
| 71 | 70 | |
| 72 | 71 | # Remove result file |
| 73 | 72 | gammalib.GFilename('wf_crab_results.xml').remove() |
| ... | ... | @@ -76,16 +75,13 @@ class Test(gammalib.GPythonTestSuite): |
| 76 | 75 | cmd = csworkflow+' inflow="data/workflow.xml"'+ \ |
| 77 | 76 | ' logfile="csworkflow_cmd1.log" chatter=1' |
| 78 | 77 | |
| 79 | - # Execute csworkflow, make sure we catch any exception | |
| 80 | - try: | |
| 81 | - rc = os.system(cmd) | |
| 82 | - #rc = os.system(cmd+" >/dev/null 2>&1") | |
| 83 | - except: | |
| 84 | - pass | |
| 78 | + # Check if execution of wrong command fails | |
| 79 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 80 | + 'Self test of test script') | |
| 85 | 81 | |
| 86 | 82 | # Check if execution was successful |
| 87 | - self.test_assert(rc == 0, | |
| 88 | - 'Successful csworkflow execution on command line') | |
| 83 | + self.test_assert(self._execute(cmd) == 0, | |
| 84 | + 'Check successful execution from command line') | |
| 89 | 85 | |
| 90 | 86 | # Check fit result |
| 91 | 87 | self._check_fit_result('wf_crab_results.xml') |
| ... | ... | @@ -95,7 +91,9 @@ class Test(gammalib.GPythonTestSuite): |
| 95 | 91 | |
| 96 | 92 | # Test csworkflow from Python |
| 97 | 93 | def _test_python(self): |
| 98 | - | |
| 94 | + """ | |
| 95 | + Test csworkflow from Python | |
| 96 | + """ | |
| 99 | 97 | # Remove result file |
| 100 | 98 | gammalib.GFilename('wf_crab_results.xml').remove() |
| 101 | 99 | |
| ... | ... | @@ -132,7 +130,9 @@ class Test(gammalib.GPythonTestSuite): |
| 132 | 130 | |
| 133 | 131 | # Check fit result XML values |
| 134 | 132 | def _check_fit_result(self, filename): |
| 135 | - | |
| 133 | + """ | |
| 134 | + Check result file | |
| 135 | + """ | |
| 136 | 136 | # Load fit results |
| 137 | 137 | models = gammalib.GModels(filename) |
| 138 | 138 | ... | ... |
test/test_ctbin.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import ctools |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ========================= # |
| 27 | 27 | # Test class for ctbin tool # |
| 28 | 28 | # ========================= # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for ctbin tool. | |
| 31 | + Test class for ctbin tool | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the ctbin tool by using it from |
| 34 | 34 | the command line and from Python. |
| ... | ... | @@ -37,13 +37,13 @@ class Test(gammalib.GPythonTestSuite): |
| 37 | 37 | # Constructor |
| 38 | 38 | def __init__(self): |
| 39 | 39 | """ |
| 40 | - Constructor. | |
| 40 | + Constructor | |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Set members |
| 46 | - self._events_name = "data/crab_events.fits" | |
| 46 | + self._events_name = 'data/crab_events.fits' | |
| 47 | 47 | |
| 48 | 48 | # Return |
| 49 | 49 | return |
| ... | ... | @@ -51,14 +51,14 @@ class Test(gammalib.GPythonTestSuite): |
| 51 | 51 | # Set test functions |
| 52 | 52 | def set(self): |
| 53 | 53 | """ |
| 54 | - Set all test functions. | |
| 54 | + Set all test functions | |
| 55 | 55 | """ |
| 56 | 56 | # Set test name |
| 57 | - self.name("ctbin") | |
| 57 | + self.name('ctbin') | |
| 58 | 58 | |
| 59 | 59 | # Append tests |
| 60 | - self.append(self._test_cmd, "Test ctbin on command line") | |
| 61 | - self.append(self._test_python, "Test ctbin from Python") | |
| 60 | + self.append(self._test_cmd, 'Test ctbin on command line') | |
| 61 | + self.append(self._test_python, 'Test ctbin from Python') | |
| 62 | 62 | |
| 63 | 63 | # Return |
| 64 | 64 | return |
| ... | ... | @@ -66,13 +66,10 @@ class Test(gammalib.GPythonTestSuite): |
| 66 | 66 | # Test ctbin on command line |
| 67 | 67 | def _test_cmd(self): |
| 68 | 68 | """ |
| 69 | - Test ctbin on the command line. | |
| 69 | + Test ctbin on the command line | |
| 70 | 70 | """ |
| 71 | - # Kluge to set the command (installed version has no README file) | |
| 72 | - if os.path.isfile("README.md"): | |
| 73 | - ctbin = "../src/ctbin/ctbin" | |
| 74 | - else: | |
| 75 | - ctbin = "ctbin" | |
| 71 | + # Set tool name | |
| 72 | + ctbin = self._tool('ctbin') | |
| 76 | 73 | |
| 77 | 74 | # Setup ctbin command |
| 78 | 75 | cmd = ctbin+' inobs="'+self._events_name+'"'+ \ |
| ... | ... | @@ -81,18 +78,16 @@ class Test(gammalib.GPythonTestSuite): |
| 81 | 78 | ' nxpix=200 nypix=200 binsz=0.02 coordsys="CEL"'+ \ |
| 82 | 79 | ' xref=83.63 yref=22.01 proj="CAR"' |
| 83 | 80 | |
| 84 | - # Execute ctbin, make sure we catch any exception | |
| 85 | - try: | |
| 86 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 87 | - except: | |
| 88 | - pass | |
| 81 | + # Check if execution of wrong command fails | |
| 82 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 83 | + 'Self test of test script') | |
| 89 | 84 | |
| 90 | 85 | # Check if execution was successful |
| 91 | - self.test_assert(rc == 0, | |
| 92 | - "Successful ctbin execution on command line") | |
| 86 | + self.test_assert(self._execute(cmd) == 0, | |
| 87 | + 'Check successful execution from command line') | |
| 93 | 88 | |
| 94 | 89 | # Load counts cube and check content. |
| 95 | - evt = gammalib.GCTAEventCube("cntmap_cmd1.fits") | |
| 90 | + evt = gammalib.GCTAEventCube('cntmap_cmd1.fits') | |
| 96 | 91 | self._check_cube(evt, 5542) |
| 97 | 92 | |
| 98 | 93 | # Setup ctbin command |
| ... | ... | @@ -102,15 +97,9 @@ class Test(gammalib.GPythonTestSuite): |
| 102 | 97 | ' nxpix=200 nypix=200 binsz=0.02 coordsys="CEL"'+ \ |
| 103 | 98 | ' xref=83.63 yref=22.01 proj="CAR"' |
| 104 | 99 | |
| 105 | - # Execute ctbin, make sure we catch any exception | |
| 106 | - try: | |
| 107 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 108 | - except: | |
| 109 | - pass | |
| 110 | - | |
| 111 | 100 | # Check if execution failed |
| 112 | - self.test_assert(rc != 0, | |
| 113 | - "Failure of ctbin execution on command line") | |
| 101 | + self.test_assert(self._execute(cmd) != 0, | |
| 102 | + 'Check invalid input file when executed from command line') | |
| 114 | 103 | |
| 115 | 104 | # Return |
| 116 | 105 | return |
| ... | ... | @@ -118,23 +107,23 @@ class Test(gammalib.GPythonTestSuite): |
| 118 | 107 | # Test ctbin from Python |
| 119 | 108 | def _test_python(self): |
| 120 | 109 | """ |
| 121 | - Test ctbin from Python. | |
| 110 | + Test ctbin from Python | |
| 122 | 111 | """ |
| 123 | 112 | # Set-up ctbin |
| 124 | 113 | bin = ctools.ctbin() |
| 125 | - bin["inobs"] = self._events_name | |
| 126 | - bin["outcube"] = "cntmap.fits" | |
| 127 | - bin["ebinalg"] = "LOG" | |
| 128 | - bin["emin"] = 0.1 | |
| 129 | - bin["emax"] = 100.0 | |
| 130 | - bin["enumbins"] = 20 | |
| 131 | - bin["nxpix"] = 200 | |
| 132 | - bin["nypix"] = 200 | |
| 133 | - bin["binsz"] = 0.02 | |
| 134 | - bin["coordsys"] = "CEL" | |
| 135 | - bin["proj"] = "CAR" | |
| 136 | - bin["xref"] = 83.63 | |
| 137 | - bin["yref"] = 22.01 | |
| 114 | + bin['inobs'] = self._events_name | |
| 115 | + bin['outcube'] = 'cntmap.fits' | |
| 116 | + bin['ebinalg'] = 'LOG' | |
| 117 | + bin['emin'] = 0.1 | |
| 118 | + bin['emax'] = 100.0 | |
| 119 | + bin['enumbins'] = 20 | |
| 120 | + bin['nxpix'] = 200 | |
| 121 | + bin['nypix'] = 200 | |
| 122 | + bin['binsz'] = 0.02 | |
| 123 | + bin['coordsys'] = 'CEL' | |
| 124 | + bin['proj'] = 'CAR' | |
| 125 | + bin['xref'] = 83.63 | |
| 126 | + bin['yref'] = 22.01 | |
| 138 | 127 | |
| 139 | 128 | # Run ctbin tool |
| 140 | 129 | bin.run() |
| ... | ... | @@ -160,44 +149,37 @@ class Test(gammalib.GPythonTestSuite): |
| 160 | 149 | self._check_observation(cpy_bin, 0) |
| 161 | 150 | self._check_cube(cpy_bin.cube(), 0) |
| 162 | 151 | |
| 163 | - # Clear and run copy of ctbin again | |
| 164 | - #cpy_bin.clear() | |
| 165 | - #cpy_bin.run() | |
| 166 | -#RuntimeError: *** ERROR in GXmlAttribute::value(std::string): Invalid XML attribute value: *** ERROR in GPythonTestSuite::test: <type 'exceptions.RuntimeError'> | |
| 167 | -#*** ERROR in GApplicationPars::operator[](std::string&): Invalid argument. Parameter "debug" has not been found in parameter file. | |
| 168 | -#Please specify a valid parameter name. | |
| 169 | - | |
| 170 | 152 | # Save counts cube |
| 171 | 153 | bin.save() |
| 172 | 154 | |
| 173 | 155 | # Load counts cube and check content. |
| 174 | - evt = gammalib.GCTAEventCube("cntmap.fits") | |
| 156 | + evt = gammalib.GCTAEventCube('cntmap.fits') | |
| 175 | 157 | self._check_cube(evt, 5542) |
| 176 | 158 | |
| 177 | 159 | # Prepare observation container for stacked analysis |
| 178 | 160 | cta = gammalib.GCTAObservation(self._events_name) |
| 179 | 161 | obs = gammalib.GObservations() |
| 180 | - cta.id("0001") | |
| 162 | + cta.id('0001') | |
| 181 | 163 | obs.append(cta) |
| 182 | - cta.id("0002") | |
| 164 | + cta.id('0002') | |
| 183 | 165 | obs.append(cta) |
| 184 | - cta.id("0003") | |
| 166 | + cta.id('0003') | |
| 185 | 167 | obs.append(cta) |
| 186 | 168 | |
| 187 | 169 | # Set-up ctbin using an observation container |
| 188 | 170 | bin = ctools.ctbin(obs) |
| 189 | - bin["outcube"] = "cntmap.fits" | |
| 190 | - bin["ebinalg"] = "LOG" | |
| 191 | - bin["emin"] = 0.1 | |
| 192 | - bin["emax"] = 100.0 | |
| 193 | - bin["enumbins"] = 20 | |
| 194 | - bin["nxpix"] = 200 | |
| 195 | - bin["nypix"] = 200 | |
| 196 | - bin["binsz"] = 0.02 | |
| 197 | - bin["coordsys"] = "CEL" | |
| 198 | - bin["proj"] = "CAR" | |
| 199 | - bin["xref"] = 83.63 | |
| 200 | - bin["yref"] = 22.01 | |
| 171 | + bin['outcube'] = 'cntmap.fits' | |
| 172 | + bin['ebinalg'] = 'LOG' | |
| 173 | + bin['emin'] = 0.1 | |
| 174 | + bin['emax'] = 100.0 | |
| 175 | + bin['enumbins'] = 20 | |
| 176 | + bin['nxpix'] = 200 | |
| 177 | + bin['nypix'] = 200 | |
| 178 | + bin['binsz'] = 0.02 | |
| 179 | + bin['coordsys'] = 'CEL' | |
| 180 | + bin['proj'] = 'CAR' | |
| 181 | + bin['xref'] = 83.63 | |
| 182 | + bin['yref'] = 22.01 | |
| 201 | 183 | |
| 202 | 184 | # Run ctbin tool |
| 203 | 185 | bin.run() |
| ... | ... | @@ -209,65 +191,58 @@ class Test(gammalib.GPythonTestSuite): |
| 209 | 191 | |
| 210 | 192 | # Set-up ctbin using an observation container |
| 211 | 193 | bin = ctools.ctbin(obs) |
| 212 | - bin["outcube"] = "cntmap2.fits" | |
| 213 | - bin["ebinalg"] = "LOG" | |
| 214 | - bin["emin"] = 0.1 | |
| 215 | - bin["emax"] = 100.0 | |
| 216 | - bin["enumbins"] = 20 | |
| 217 | - bin["nxpix"] = 200 | |
| 218 | - bin["nypix"] = 200 | |
| 219 | - bin["binsz"] = 0.02 | |
| 220 | - bin["coordsys"] = "CEL" | |
| 221 | - bin["proj"] = "CAR" | |
| 222 | - bin["xref"] = 83.63 | |
| 223 | - bin["yref"] = 22.01 | |
| 194 | + bin['outcube'] = 'cntmap2.fits' | |
| 195 | + bin['ebinalg'] = 'LOG' | |
| 196 | + bin['emin'] = 0.1 | |
| 197 | + bin['emax'] = 100.0 | |
| 198 | + bin['enumbins'] = 20 | |
| 199 | + bin['nxpix'] = 200 | |
| 200 | + bin['nypix'] = 200 | |
| 201 | + bin['binsz'] = 0.02 | |
| 202 | + bin['coordsys'] = 'CEL' | |
| 203 | + bin['proj'] = 'CAR' | |
| 204 | + bin['xref'] = 83.63 | |
| 205 | + bin['yref'] = 22.01 | |
| 224 | 206 | |
| 225 | 207 | # Execute ctbin tool |
| 226 | 208 | bin.execute() |
| 227 | 209 | |
| 228 | 210 | # Load counts cube and check content. |
| 229 | - evt = gammalib.GCTAEventCube("cntmap2.fits") | |
| 211 | + evt = gammalib.GCTAEventCube('cntmap2.fits') | |
| 230 | 212 | self._check_cube(evt, 5542, multiplier=3) |
| 231 | 213 | |
| 232 | - # Clear tool | |
| 233 | - #bin.clear() | |
| 234 | -#what(): *** ERROR in GApplicationPars::write(std::string&): Unable to open parameter file "pfiles/". | |
| 235 | - | |
| 236 | - # Check content of observation and cube | |
| 237 | - #self.test_value(bin.obs().size(), 0, "There is no observation") | |
| 238 | - #self.test_value(bin.cube().size(), 0, "0 event bins") | |
| 239 | - #self.test_value(bin.cube().number(), 0, "0 events") | |
| 240 | - | |
| 241 | 214 | # Return |
| 242 | 215 | return |
| 243 | 216 | |
| 244 | 217 | # Check observation |
| 245 | 218 | def _check_observation(self, ctbin, nevents, multiplier=1): |
| 246 | 219 | """ |
| 247 | - Check content of an observation. | |
| 220 | + Check content of an observation | |
| 248 | 221 | |
| 249 | - Args: | |
| 250 | - ctbin: ctbin instance | |
| 251 | - nevents: Expected number of events | |
| 252 | - | |
| 253 | - Kwargs: | |
| 254 | - multiplier: Observation multiplier | |
| 222 | + Parameters | |
| 223 | + ---------- | |
| 224 | + ctbin : `~ctools.ctbin` | |
| 225 | + ctbin instance | |
| 226 | + nevents : int | |
| 227 | + Expected number of events | |
| 228 | + multiplier : float, optional | |
| 229 | + Observation multiplier | |
| 255 | 230 | """ |
| 256 | 231 | # Test observation container |
| 257 | 232 | obs = gammalib.GCTAObservation(ctbin.obs()[0]) |
| 258 | 233 | pnt = obs.pointing() |
| 259 | 234 | self.test_value(ctbin.obs().size(), 1, |
| 260 | - "There is one observation") | |
| 261 | - self.test_assert(obs.instrument() == "CTA", | |
| 262 | - "Observation is CTA observation") | |
| 235 | + 'There is one observation') | |
| 236 | + self.test_assert(obs.instrument() == 'CTA', | |
| 237 | + 'Observation is CTA observation') | |
| 263 | 238 | self.test_value(obs.ontime(), 1800.0*multiplier, 1.0e-6, |
| 264 | - "Ontime is 1800 sec") | |
| 239 | + 'Ontime is 1800 sec') | |
| 265 | 240 | self.test_value(obs.livetime(), 1710.0*multiplier, 1.0e-6, |
| 266 | - "Livetime is 1710 sec") | |
| 241 | + 'Livetime is 1710 sec') | |
| 267 | 242 | self.test_value(pnt.dir().ra_deg(), 83.63, 1.0e-6, |
| 268 | - "Pointing Right Ascension is 83.63 deg") | |
| 243 | + 'Pointing Right Ascension is 83.63 deg') | |
| 269 | 244 | self.test_value(pnt.dir().dec_deg(), 22.01, 1.0e-6, |
| 270 | - "Pointing Declination is 22.01 deg") | |
| 245 | + 'Pointing Declination is 22.01 deg') | |
| 271 | 246 | |
| 272 | 247 | # Test event cube |
| 273 | 248 | self._check_cube(obs.events(), nevents, multiplier=multiplier) |
| ... | ... | @@ -278,19 +253,21 @@ class Test(gammalib.GPythonTestSuite): |
| 278 | 253 | # Check event cube |
| 279 | 254 | def _check_cube(self, cube, nevents, multiplier=1): |
| 280 | 255 | """ |
| 281 | - Check content of event cube." | |
| 256 | + Check content of event cube | |
| 282 | 257 | |
| 283 | - Args: | |
| 284 | - cube: Event cube | |
| 285 | - nevents: Expected number of events. | |
| 286 | - | |
| 287 | - Kwargs: | |
| 288 | - multiplier: Event number multiplier | |
| 258 | + Parameters | |
| 259 | + ---------- | |
| 260 | + cube : `~gammalib.GCTAEventCube` | |
| 261 | + Event cube | |
| 262 | + nevents : int | |
| 263 | + Expected number of events | |
| 264 | + multiplier : float | |
| 265 | + Event number multiplier | |
| 289 | 266 | """ |
| 290 | 267 | # Test event cube |
| 291 | - self.test_value(cube.size(), 800000, "800000 event bins") | |
| 268 | + self.test_value(cube.size(), 800000, '800000 event bins') | |
| 292 | 269 | self.test_value(cube.number(), nevents*multiplier, |
| 293 | - str(nevents*multiplier)+" events") | |
| 270 | + str(nevents*multiplier)+' events') | |
| 294 | 271 | |
| 295 | 272 | # Return |
| 296 | 273 | return | ... | ... |
test/test_ctbkgcube.py
| ... | ... | @@ -18,25 +18,25 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import ctools |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ============================= # |
| 27 | 27 | # Test class for ctbkgcube tool # |
| 28 | 28 | # ============================= # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | 31 | Test class for ctbkgcube tool. |
| 32 | 32 | """ |
| 33 | 33 | # Constructor |
| 34 | 34 | def __init__(self): |
| 35 | 35 | """ |
| 36 | - Constructor. | |
| 36 | + Constructor | |
| 37 | 37 | """ |
| 38 | 38 | # Call base class constructor |
| 39 | - gammalib.GPythonTestSuite.__init__(self) | |
| 39 | + test.__init__(self) | |
| 40 | 40 | |
| 41 | 41 | # Return |
| 42 | 42 | return |
| ... | ... | @@ -44,7 +44,7 @@ class Test(gammalib.GPythonTestSuite): |
| 44 | 44 | # Set test functions |
| 45 | 45 | def set(self): |
| 46 | 46 | """ |
| 47 | - Set all test functions. | |
| 47 | + Set all test functions | |
| 48 | 48 | """ |
| 49 | 49 | # Set test name |
| 50 | 50 | self.name('ctbkgcube') |
| ... | ... | @@ -61,11 +61,8 @@ class Test(gammalib.GPythonTestSuite): |
| 61 | 61 | """ |
| 62 | 62 | Test ctbkgcube on the command line. |
| 63 | 63 | """ |
| 64 | - # Kluge to set the command (installed version has no README file) | |
| 65 | - if os.path.isfile('README.md'): | |
| 66 | - ctbkgcube = '../src/ctbkgcube/ctbkgcube' | |
| 67 | - else: | |
| 68 | - ctbkgcube = 'ctbkgcube' | |
| 64 | + # Set tool name | |
| 65 | + ctbkgcube = self._tool('ctbkgcube') | |
| 69 | 66 | |
| 70 | 67 | # Setup ctbkgcube command |
| 71 | 68 | cmd = ctbkgcube+' inobs="data/crab_events.fits"'+ \ |
| ... | ... | @@ -79,15 +76,13 @@ class Test(gammalib.GPythonTestSuite): |
| 79 | 76 | ' coordsys="CEL" proj="CAR" xref=83.63 yref=22.01'+ \ |
| 80 | 77 | ' logfile="ctbkgcube_cmd1.log" chatter=1' |
| 81 | 78 | |
| 82 | - # Execute ctbkgcube, make sure we catch any exception | |
| 83 | - try: | |
| 84 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 85 | - except: | |
| 86 | - pass | |
| 79 | + # Check if execution of wrong command fails | |
| 80 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 81 | + 'Self test of test script') | |
| 87 | 82 | |
| 88 | 83 | # Check if execution was successful |
| 89 | - self.test_assert(rc == 0, | |
| 90 | - 'Successful ctbkgcube execution on command line') | |
| 84 | + self.test_assert(self._execute(cmd) == 0, | |
| 85 | + 'Check successful execution from command line') | |
| 91 | 86 | |
| 92 | 87 | # Check result file |
| 93 | 88 | self._check_result_file('ctbkgcube_cmd1.fits') |
| ... | ... | @@ -104,15 +99,9 @@ class Test(gammalib.GPythonTestSuite): |
| 104 | 99 | ' coordsys="CEL" proj="CAR" xref=83.63 yref=22.01'+ \ |
| 105 | 100 | ' logfile="ctbkgcube_cmd2.log" chatter=1' |
| 106 | 101 | |
| 107 | - # Execute ctbkgcube, make sure we catch any exception | |
| 108 | - try: | |
| 109 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 110 | - except: | |
| 111 | - pass | |
| 112 | - | |
| 113 | 102 | # Check if execution failed |
| 114 | - self.test_assert(rc != 0, | |
| 115 | - 'Failure of ctbkgcube execution on command line') | |
| 103 | + self.test_assert(self._execute(cmd) != 0, | |
| 104 | + 'Check invalid input file when executed from command line') | |
| 116 | 105 | |
| 117 | 106 | # Return |
| 118 | 107 | return |
| ... | ... | @@ -120,7 +109,7 @@ class Test(gammalib.GPythonTestSuite): |
| 120 | 109 | # Test ctbkgcube from Python |
| 121 | 110 | def _test_python(self): |
| 122 | 111 | """ |
| 123 | - Test ctbkgcube from Python. | |
| 112 | + Test ctbkgcube from Python | |
| 124 | 113 | """ |
| 125 | 114 | # Set-up ctbkgcube |
| 126 | 115 | bkgcube = ctools.ctbkgcube() |
| ... | ... | @@ -159,7 +148,7 @@ class Test(gammalib.GPythonTestSuite): |
| 159 | 148 | # Check result file |
| 160 | 149 | def _check_result_file(self, filename): |
| 161 | 150 | """ |
| 162 | - Check result file. | |
| 151 | + Check result file | |
| 163 | 152 | """ |
| 164 | 153 | # Open result file |
| 165 | 154 | result = gammalib.GCTACubeBackground(filename) | ... | ... |
test/test_ctbutterfly.py
| ... | ... | @@ -18,15 +18,15 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import ctools |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # =============================== # |
| 27 | 27 | # Test class for ctbutterfly tool # |
| 28 | 28 | # =============================== # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | 31 | Test class for ctbutterfly tool. |
| 32 | 32 | """ |
| ... | ... | @@ -36,7 +36,7 @@ class Test(gammalib.GPythonTestSuite): |
| 36 | 36 | Constructor. |
| 37 | 37 | """ |
| 38 | 38 | # Call base class constructor |
| 39 | - gammalib.GPythonTestSuite.__init__(self) | |
| 39 | + test.__init__(self) | |
| 40 | 40 | |
| 41 | 41 | # Return |
| 42 | 42 | return |
| ... | ... | @@ -61,11 +61,8 @@ class Test(gammalib.GPythonTestSuite): |
| 61 | 61 | """ |
| 62 | 62 | Test ctbutterfly on the command line. |
| 63 | 63 | """ |
| 64 | - # Kluge to set the command (installed version has no README file) | |
| 65 | - if os.path.isfile('README.md'): | |
| 66 | - ctbutterfly = '../src/ctbutterfly/ctbutterfly' | |
| 67 | - else: | |
| 68 | - ctbutterfly = 'ctbutterfly' | |
| 64 | + # Set tool name | |
| 65 | + ctbutterfly = self._tool('ctbutterfly') | |
| 69 | 66 | |
| 70 | 67 | # Setup ctbutterfly command |
| 71 | 68 | cmd = ctbutterfly+' inobs="data/crab_events.fits"'+\ |
| ... | ... | @@ -75,15 +72,13 @@ class Test(gammalib.GPythonTestSuite): |
| 75 | 72 | ' emin=0.1 emax=100.0'+ \ |
| 76 | 73 | ' logfile="ctbutterfly_cmd1.log" chatter=1' |
| 77 | 74 | |
| 78 | - # Execute ctbutterfly, make sure we catch any exception | |
| 79 | - try: | |
| 80 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 81 | - except: | |
| 82 | - pass | |
| 75 | + # Check if execution of wrong command fails | |
| 76 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 77 | + 'Self test of test script') | |
| 83 | 78 | |
| 84 | 79 | # Check if execution was successful |
| 85 | - self.test_assert(rc == 0, | |
| 86 | - 'Successful ctbutterfly execution on command line') | |
| 80 | + self.test_assert(self._execute(cmd) == 0, | |
| 81 | + 'Check successful execution from command line') | |
| 87 | 82 | |
| 88 | 83 | # Check result file |
| 89 | 84 | self._check_result_file('ctbutterfly_cmd1.txt') |
| ... | ... | @@ -96,15 +91,9 @@ class Test(gammalib.GPythonTestSuite): |
| 96 | 91 | ' emin=0.1 emax=100.0'+ \ |
| 97 | 92 | ' logfile="ctbutterfly_cmd2.log" chatter=1' |
| 98 | 93 | |
| 99 | - # Execute ctbutterfly, make sure we catch any exception | |
| 100 | - try: | |
| 101 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 102 | - except: | |
| 103 | - pass | |
| 104 | - | |
| 105 | 94 | # Check if execution failed |
| 106 | - self.test_assert(rc != 0, | |
| 107 | - 'Failure of ctbutterfly execution on command line') | |
| 95 | + self.test_assert(self._execute(cmd) != 0, | |
| 96 | + 'Check invalid input file when executed from command line') | |
| 108 | 97 | |
| 109 | 98 | # Return |
| 110 | 99 | return |
| ... | ... | @@ -112,7 +101,7 @@ class Test(gammalib.GPythonTestSuite): |
| 112 | 101 | # Test ctbutterfly from Python |
| 113 | 102 | def _test_python(self): |
| 114 | 103 | """ |
| 115 | - Test ctbutterfly from Python. | |
| 104 | + Test ctbutterfly from Python | |
| 116 | 105 | """ |
| 117 | 106 | # Set-up ctbutterfly |
| 118 | 107 | butterfly = ctools.ctbutterfly() |
| ... | ... | @@ -141,7 +130,7 @@ class Test(gammalib.GPythonTestSuite): |
| 141 | 130 | # Check result file |
| 142 | 131 | def _check_result_file(self, filename): |
| 143 | 132 | """ |
| 144 | - Check result file. | |
| 133 | + Check result file | |
| 145 | 134 | """ |
| 146 | 135 | # Open result file as CSV file |
| 147 | 136 | results = gammalib.GCsv(filename) | ... | ... |
test/test_ctcubemask.py
| ... | ... | @@ -18,25 +18,25 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import ctools |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ============================== # |
| 27 | 27 | # Test class for ctcubemask tool # |
| 28 | 28 | # ============================== # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for ctcubemask tool. | |
| 31 | + Test class for ctcubemask tool | |
| 32 | 32 | """ |
| 33 | 33 | # Constructor |
| 34 | 34 | def __init__(self): |
| 35 | 35 | """ |
| 36 | - Constructor. | |
| 36 | + Constructor | |
| 37 | 37 | """ |
| 38 | 38 | # Call base class constructor |
| 39 | - gammalib.GPythonTestSuite.__init__(self) | |
| 39 | + test.__init__(self) | |
| 40 | 40 | |
| 41 | 41 | # Return |
| 42 | 42 | return |
| ... | ... | @@ -44,7 +44,7 @@ class Test(gammalib.GPythonTestSuite): |
| 44 | 44 | # Set test functions |
| 45 | 45 | def set(self): |
| 46 | 46 | """ |
| 47 | - Set all test functions. | |
| 47 | + Set all test functions | |
| 48 | 48 | """ |
| 49 | 49 | # Set test name |
| 50 | 50 | self.name('ctcubemask') |
| ... | ... | @@ -59,13 +59,10 @@ class Test(gammalib.GPythonTestSuite): |
| 59 | 59 | # Test ctcubemask on command line |
| 60 | 60 | def _test_cmd(self): |
| 61 | 61 | """ |
| 62 | - Test ctcubemask on the command line. | |
| 62 | + Test ctcubemask on the command line | |
| 63 | 63 | """ |
| 64 | - # Kluge to set the command (installed version has no README file) | |
| 65 | - if os.path.isfile('README.md'): | |
| 66 | - ctcubemask = '../src/ctcubemask/ctcubemask' | |
| 67 | - else: | |
| 68 | - ctcubemask = 'ctcubemask' | |
| 64 | + # Set tool name | |
| 65 | + ctcubemask = self._tool('ctcubemask') | |
| 69 | 66 | |
| 70 | 67 | # Setup ctcubemask command |
| 71 | 68 | cmd = ctcubemask+' inobs="data/crab_cntmap.fits"'+ \ |
| ... | ... | @@ -75,15 +72,13 @@ class Test(gammalib.GPythonTestSuite): |
| 75 | 72 | ' emin=0.1 emax=100.0'+ \ |
| 76 | 73 | ' logfile="ctcubemask_cmd1.log" chatter=1' |
| 77 | 74 | |
| 78 | - # Execute ctcubemask, make sure we catch any exception | |
| 79 | - try: | |
| 80 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 81 | - except: | |
| 82 | - pass | |
| 75 | + # Check if execution of wrong command fails | |
| 76 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 77 | + 'Self test of test script') | |
| 83 | 78 | |
| 84 | 79 | # Check if execution was successful |
| 85 | - self.test_assert(rc == 0, | |
| 86 | - 'Successful ctcubemask execution on command line') | |
| 80 | + self.test_assert(self._execute(cmd) == 0, | |
| 81 | + 'Check successful execution from command line') | |
| 87 | 82 | |
| 88 | 83 | # Check result file |
| 89 | 84 | self._check_result_file('ctcubemask_cmd1.fits') |
| ... | ... | @@ -96,15 +91,9 @@ class Test(gammalib.GPythonTestSuite): |
| 96 | 91 | ' emin=0.1 emax=100.0'+ \ |
| 97 | 92 | ' logfile="ctcubemask_cmd2.log" chatter=2' |
| 98 | 93 | |
| 99 | - # Execute ctcubemask, make sure we catch any exception | |
| 100 | - try: | |
| 101 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 102 | - except: | |
| 103 | - pass | |
| 104 | - | |
| 105 | 94 | # Check if execution failed |
| 106 | - self.test_assert(rc != 0, | |
| 107 | - 'Failure of ctcubemask execution on command line') | |
| 95 | + self.test_assert(self._execute(cmd) != 0, | |
| 96 | + 'Check invalid input file when executed from command line') | |
| 108 | 97 | |
| 109 | 98 | # Return |
| 110 | 99 | return |
| ... | ... | @@ -112,7 +101,7 @@ class Test(gammalib.GPythonTestSuite): |
| 112 | 101 | # Test ctcubemask from Python |
| 113 | 102 | def _test_python(self): |
| 114 | 103 | """ |
| 115 | - Test ctcubemask from Python. | |
| 104 | + Test ctcubemask from Python | |
| 116 | 105 | """ |
| 117 | 106 | # Set-up ctcubemask |
| 118 | 107 | mask = ctools.ctcubemask() |
| ... | ... | @@ -141,7 +130,7 @@ class Test(gammalib.GPythonTestSuite): |
| 141 | 130 | # Check result file |
| 142 | 131 | def _check_result_file(self, filename): |
| 143 | 132 | """ |
| 144 | - Check result file. | |
| 133 | + Check result file | |
| 145 | 134 | """ |
| 146 | 135 | # Load counts cube |
| 147 | 136 | cube = gammalib.GCTAEventCube(filename) | ... | ... |
test/test_ctedispcube.py
| ... | ... | @@ -18,25 +18,25 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import ctools |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | -# ============================= # | |
| 26 | +# =============================== # | |
| 27 | 27 | # Test class for ctedispcube tool # |
| 28 | -# ============================= # | |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 28 | +# =============================== # | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for ctedispcube tool. | |
| 31 | + Test class for ctedispcube tool | |
| 32 | 32 | """ |
| 33 | 33 | # Constructor |
| 34 | 34 | def __init__(self): |
| 35 | 35 | """ |
| 36 | - Constructor. | |
| 36 | + Constructor | |
| 37 | 37 | """ |
| 38 | 38 | # Call base class constructor |
| 39 | - gammalib.GPythonTestSuite.__init__(self) | |
| 39 | + test.__init__(self) | |
| 40 | 40 | |
| 41 | 41 | # Return |
| 42 | 42 | return |
| ... | ... | @@ -44,7 +44,7 @@ class Test(gammalib.GPythonTestSuite): |
| 44 | 44 | # Set test functions |
| 45 | 45 | def set(self): |
| 46 | 46 | """ |
| 47 | - Set all test functions. | |
| 47 | + Set all test functions | |
| 48 | 48 | """ |
| 49 | 49 | # Set test name |
| 50 | 50 | self.name('ctedispcube') |
| ... | ... | @@ -59,13 +59,10 @@ class Test(gammalib.GPythonTestSuite): |
| 59 | 59 | # Test ctedispcube on command line |
| 60 | 60 | def _test_cmd(self): |
| 61 | 61 | """ |
| 62 | - Test ctedispcube on the command line. | |
| 62 | + Test ctedispcube on the command line | |
| 63 | 63 | """ |
| 64 | - # Kluge to set the command (installed version has no README file) | |
| 65 | - if os.path.isfile('README.md'): | |
| 66 | - ctedispcube = '../src/ctedispcube/ctedispcube' | |
| 67 | - else: | |
| 68 | - ctedispcube = 'ctedispcube' | |
| 64 | + # Set tool name | |
| 65 | + ctedispcube = self._tool('ctedispcube') | |
| 69 | 66 | |
| 70 | 67 | # Setup ctedispcube command |
| 71 | 68 | cmd = ctedispcube+' inobs="data/crab_events.fits"'+ \ |
| ... | ... | @@ -78,15 +75,13 @@ class Test(gammalib.GPythonTestSuite): |
| 78 | 75 | ' migramax=2.0 migrabins=10'+ \ |
| 79 | 76 | ' logfile="ctedispcube_cmd1.log" chatter=1' |
| 80 | 77 | |
| 81 | - # Execute ctedispcube, make sure we catch any exception | |
| 82 | - try: | |
| 83 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 84 | - except: | |
| 85 | - pass | |
| 78 | + # Check if execution of wrong command fails | |
| 79 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 80 | + 'Self test of test script') | |
| 86 | 81 | |
| 87 | 82 | # Check if execution was successful |
| 88 | - self.test_assert(rc == 0, | |
| 89 | - 'Successful ctedispcube execution on command line') | |
| 83 | + self.test_assert(self._execute(cmd) == 0, | |
| 84 | + 'Check successful execution from command line') | |
| 90 | 85 | |
| 91 | 86 | # Check result file |
| 92 | 87 | self._check_result_file('ctedispcube_cmd1.fits') |
| ... | ... | @@ -102,15 +97,9 @@ class Test(gammalib.GPythonTestSuite): |
| 102 | 97 | ' migramax=2.0 migrabins=10'+ \ |
| 103 | 98 | ' logfile="ctedispcube_cmd2.log" chatter=2' |
| 104 | 99 | |
| 105 | - # Execute ctedispcube, make sure we catch any exception | |
| 106 | - try: | |
| 107 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 108 | - except: | |
| 109 | - pass | |
| 110 | - | |
| 111 | 100 | # Check if execution failed |
| 112 | - self.test_assert(rc != 0, | |
| 113 | - 'Failure of ctedispcube execution on command line') | |
| 101 | + self.test_assert(self._execute(cmd) != 0, | |
| 102 | + 'Check invalid input file when executed from command line') | |
| 114 | 103 | |
| 115 | 104 | # Return |
| 116 | 105 | return |
| ... | ... | @@ -118,7 +107,7 @@ class Test(gammalib.GPythonTestSuite): |
| 118 | 107 | # Test ctedispcube from Python |
| 119 | 108 | def _test_python(self): |
| 120 | 109 | """ |
| 121 | - Test ctedispcube from Python. | |
| 110 | + Test ctedispcube from Python | |
| 122 | 111 | """ |
| 123 | 112 | # Set-up ctedispcube |
| 124 | 113 | edispcube = ctools.ctedispcube() |
| ... | ... | @@ -157,7 +146,7 @@ class Test(gammalib.GPythonTestSuite): |
| 157 | 146 | # Check result file |
| 158 | 147 | def _check_result_file(self, filename): |
| 159 | 148 | """ |
| 160 | - Check result file. | |
| 149 | + Check result file | |
| 161 | 150 | """ |
| 162 | 151 | # Open result file |
| 163 | 152 | result = gammalib.GCTACubeEdisp(filename) | ... | ... |
test/test_cterror.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import ctools |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # =========================== # |
| 27 | 27 | # Test class for cterror tool # |
| 28 | 28 | # =========================== # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for cterror tool. | |
| 31 | + Test class for cterror tool | |
| 32 | 32 | """ |
| 33 | 33 | # Constructor |
| 34 | 34 | def __init__(self): |
| ... | ... | @@ -36,14 +36,14 @@ class Test(gammalib.GPythonTestSuite): |
| 36 | 36 | Constructor. |
| 37 | 37 | """ |
| 38 | 38 | # Call base class constructor |
| 39 | - gammalib.GPythonTestSuite.__init__(self) | |
| 39 | + test.__init__(self) | |
| 40 | 40 | |
| 41 | 41 | # Set members |
| 42 | - self.events_name = "data/crab_events.fits" | |
| 43 | - self.model_name = "data/crab.xml" | |
| 44 | - self.result_name = "cterror_result.xml" | |
| 45 | - self.caldb = "irf" | |
| 46 | - self.irf = "cta_dummy_irf" | |
| 42 | + self.events_name = 'data/crab_events.fits' | |
| 43 | + self.model_name = 'data/crab.xml' | |
| 44 | + self.result_name = 'cterror_result.xml' | |
| 45 | + self.caldb = 'irf' | |
| 46 | + self.irf = 'cta_dummy_irf' | |
| 47 | 47 | |
| 48 | 48 | # Return |
| 49 | 49 | return |
| ... | ... | @@ -51,7 +51,7 @@ class Test(gammalib.GPythonTestSuite): |
| 51 | 51 | # Set test functions |
| 52 | 52 | def set(self): |
| 53 | 53 | """ |
| 54 | - Set all test functions. | |
| 54 | + Set all test functions | |
| 55 | 55 | """ |
| 56 | 56 | # Set test name |
| 57 | 57 | self.name('cterror') |
| ... | ... | @@ -66,13 +66,10 @@ class Test(gammalib.GPythonTestSuite): |
| 66 | 66 | # Test cterror on command line |
| 67 | 67 | def _test_cmd(self): |
| 68 | 68 | """ |
| 69 | - Test cterror on the command line. | |
| 69 | + Test cterror on the command line | |
| 70 | 70 | """ |
| 71 | - # Kluge to set the command (installed version has no README file) | |
| 72 | - if os.path.isfile('README.md'): | |
| 73 | - cterror = '../src/cterror/cterror' | |
| 74 | - else: | |
| 75 | - cterror = 'cterror' | |
| 71 | + # Set tool name | |
| 72 | + cterror = self._tool('cterror') | |
| 76 | 73 | |
| 77 | 74 | # Setup cterror command |
| 78 | 75 | cmd = cterror+' inobs="data/crab_events.fits"'+ \ |
| ... | ... | @@ -81,15 +78,13 @@ class Test(gammalib.GPythonTestSuite): |
| 81 | 78 | ' outmodel="cterror_cmd1.xml"'+ \ |
| 82 | 79 | ' logfile="cterror_cmd1.log" chatter=1' |
| 83 | 80 | |
| 84 | - # Execute cterror, make sure we catch any exception | |
| 85 | - try: | |
| 86 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 87 | - except: | |
| 88 | - pass | |
| 81 | + # Check if execution of wrong command fails | |
| 82 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 83 | + 'Self test of test script') | |
| 89 | 84 | |
| 90 | 85 | # Check if execution was successful |
| 91 | - self.test_assert(rc == 0, | |
| 92 | - 'Successful cterror execution on command line') | |
| 86 | + self.test_assert(self._execute(cmd) == 0, | |
| 87 | + 'Check successful execution from command line') | |
| 93 | 88 | |
| 94 | 89 | # Check result file |
| 95 | 90 | self._check_result_file('cterror_cmd1.xml') |
| ... | ... | @@ -101,15 +96,9 @@ class Test(gammalib.GPythonTestSuite): |
| 101 | 96 | ' outmodel="cterror_cmd2.xml"'+ \ |
| 102 | 97 | ' logfile="cterror_cmd2.log" chatter=1' |
| 103 | 98 | |
| 104 | - # Execute cterror, make sure we catch any exception | |
| 105 | - try: | |
| 106 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 107 | - except: | |
| 108 | - pass | |
| 109 | - | |
| 110 | 99 | # Check if execution failed |
| 111 | - self.test_assert(rc != 0, | |
| 112 | - 'Failure of cterror execution on command line') | |
| 100 | + self.test_assert(self._execute(cmd) != 0, | |
| 101 | + 'Check invalid input file when executed from command line') | |
| 113 | 102 | |
| 114 | 103 | # Return |
| 115 | 104 | return |
| ... | ... | @@ -117,7 +106,7 @@ class Test(gammalib.GPythonTestSuite): |
| 117 | 106 | # Test cterror from Python |
| 118 | 107 | def _test_python(self): |
| 119 | 108 | """ |
| 120 | - Test cterror from Python. | |
| 109 | + Test cterror from Python | |
| 121 | 110 | """ |
| 122 | 111 | # Set-up cterror |
| 123 | 112 | error = ctools.cterror() |
| ... | ... | @@ -144,7 +133,7 @@ class Test(gammalib.GPythonTestSuite): |
| 144 | 133 | # Check result file |
| 145 | 134 | def _check_result_file(self, filename): |
| 146 | 135 | """ |
| 147 | - Check result file. | |
| 136 | + Check result file | |
| 148 | 137 | """ |
| 149 | 138 | # Open result file |
| 150 | 139 | result = gammalib.GModels(filename) | ... | ... |
test/test_ctexpcube.py
| ... | ... | @@ -18,25 +18,25 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import ctools |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ============================= # |
| 27 | 27 | # Test class for ctexpcube tool # |
| 28 | 28 | # ============================= # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for ctexpcube tool. | |
| 31 | + Test class for ctexpcube tool | |
| 32 | 32 | """ |
| 33 | 33 | # Constructor |
| 34 | 34 | def __init__(self): |
| 35 | 35 | """ |
| 36 | - Constructor. | |
| 36 | + Constructor | |
| 37 | 37 | """ |
| 38 | 38 | # Call base class constructor |
| 39 | - gammalib.GPythonTestSuite.__init__(self) | |
| 39 | + test.__init__(self) | |
| 40 | 40 | |
| 41 | 41 | # Return |
| 42 | 42 | return |
| ... | ... | @@ -44,7 +44,7 @@ class Test(gammalib.GPythonTestSuite): |
| 44 | 44 | # Set test functions |
| 45 | 45 | def set(self): |
| 46 | 46 | """ |
| 47 | - Set all test functions. | |
| 47 | + Set all test functions | |
| 48 | 48 | """ |
| 49 | 49 | # Set test name |
| 50 | 50 | self.name('ctexpcube') |
| ... | ... | @@ -59,13 +59,10 @@ class Test(gammalib.GPythonTestSuite): |
| 59 | 59 | # Test ctexpcube on command line |
| 60 | 60 | def _test_cmd(self): |
| 61 | 61 | """ |
| 62 | - Test ctexpcube on the command line. | |
| 62 | + Test ctexpcube on the command line | |
| 63 | 63 | """ |
| 64 | - # Kluge to set the command (installed version has no README file) | |
| 65 | - if os.path.isfile('README.md'): | |
| 66 | - ctexpcube = '../src/ctexpcube/ctexpcube' | |
| 67 | - else: | |
| 68 | - ctexpcube = 'ctexpcube' | |
| 64 | + # Set tool name | |
| 65 | + ctexpcube = self._tool('ctexpcube') | |
| 69 | 66 | |
| 70 | 67 | # Setup ctexpcube command |
| 71 | 68 | cmd = ctexpcube+' inobs="data/crab_events.fits"'+ \ |
| ... | ... | @@ -77,15 +74,13 @@ class Test(gammalib.GPythonTestSuite): |
| 77 | 74 | ' coordsys="CEL" proj="CAR" xref=83.63 yref=22.01'+ \ |
| 78 | 75 | ' logfile="ctexpcube_cmd1.log" chatter=1' |
| 79 | 76 | |
| 80 | - # Execute ctexpcube, make sure we catch any exception | |
| 81 | - try: | |
| 82 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 83 | - except: | |
| 84 | - pass | |
| 77 | + # Check if execution of wrong command fails | |
| 78 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 79 | + 'Self test of test script') | |
| 85 | 80 | |
| 86 | 81 | # Check if execution was successful |
| 87 | - self.test_assert(rc == 0, | |
| 88 | - 'Successful ctexpcube execution on command line') | |
| 82 | + self.test_assert(self._execute(cmd) == 0, | |
| 83 | + 'Check successful execution from command line') | |
| 89 | 84 | |
| 90 | 85 | # Check result file |
| 91 | 86 | self._check_result_file('ctexpcube_cmd1.fits') |
| ... | ... | @@ -100,15 +95,9 @@ class Test(gammalib.GPythonTestSuite): |
| 100 | 95 | ' coordsys="CEL" proj="CAR" xref=83.63 yref=22.01'+ \ |
| 101 | 96 | ' logfile="ctexpcube_cmd2.log" chatter=1' |
| 102 | 97 | |
| 103 | - # Execute ctexpcube, make sure we catch any exception | |
| 104 | - try: | |
| 105 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 106 | - except: | |
| 107 | - pass | |
| 108 | - | |
| 109 | 98 | # Check if execution failed |
| 110 | - self.test_assert(rc != 0, | |
| 111 | - 'Failure of ctexpcube execution on command line') | |
| 99 | + self.test_assert(self._execute(cmd) != 0, | |
| 100 | + 'Check invalid input file when executed from command line') | |
| 112 | 101 | |
| 113 | 102 | # Return |
| 114 | 103 | return |
| ... | ... | @@ -116,7 +105,7 @@ class Test(gammalib.GPythonTestSuite): |
| 116 | 105 | # Test ctexpcube from Python |
| 117 | 106 | def _test_python(self): |
| 118 | 107 | """ |
| 119 | - Test ctexpcube from Python. | |
| 108 | + Test ctexpcube from Python | |
| 120 | 109 | """ |
| 121 | 110 | # Set-up ctexpcube |
| 122 | 111 | expcube = ctools.ctexpcube() |
| ... | ... | @@ -153,7 +142,7 @@ class Test(gammalib.GPythonTestSuite): |
| 153 | 142 | # Check result file |
| 154 | 143 | def _check_result_file(self, filename): |
| 155 | 144 | """ |
| 156 | - Check result file. | |
| 145 | + Check result file | |
| 157 | 146 | """ |
| 158 | 147 | # Open result file |
| 159 | 148 | result = gammalib.GCTACubeExposure(filename) | ... | ... |
test/test_ctlike.py
| ... | ... | @@ -18,25 +18,25 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import ctools |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ========================== # |
| 27 | 27 | # Test class for ctlike tool # |
| 28 | 28 | # ========================== # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for ctlike tool. | |
| 31 | + Test class for ctlike tool | |
| 32 | 32 | """ |
| 33 | 33 | # Constructor |
| 34 | 34 | def __init__(self): |
| 35 | 35 | """ |
| 36 | - Constructor. | |
| 36 | + Constructor | |
| 37 | 37 | """ |
| 38 | 38 | # Call base class constructor |
| 39 | - gammalib.GPythonTestSuite.__init__(self) | |
| 39 | + test.__init__(self) | |
| 40 | 40 | |
| 41 | 41 | # Return |
| 42 | 42 | return |
| ... | ... | @@ -44,7 +44,7 @@ class Test(gammalib.GPythonTestSuite): |
| 44 | 44 | # Set test functions |
| 45 | 45 | def set(self): |
| 46 | 46 | """ |
| 47 | - Set all test functions. | |
| 47 | + Set all test functions | |
| 48 | 48 | """ |
| 49 | 49 | # Set test name |
| 50 | 50 | self.name('ctlike') |
| ... | ... | @@ -59,13 +59,10 @@ class Test(gammalib.GPythonTestSuite): |
| 59 | 59 | # Test ctlike on command line |
| 60 | 60 | def _test_cmd(self): |
| 61 | 61 | """ |
| 62 | - Test ctlike on the command line. | |
| 62 | + Test ctlike on the command line | |
| 63 | 63 | """ |
| 64 | - # Kluge to set the command (installed version has no README file) | |
| 65 | - if os.path.isfile('README.md'): | |
| 66 | - ctlike = '../src/ctlike/ctlike' | |
| 67 | - else: | |
| 68 | - ctlike = 'ctlike' | |
| 64 | + # Set tool name | |
| 65 | + ctlike = self._tool('ctlike') | |
| 69 | 66 | |
| 70 | 67 | # Setup ctlike command |
| 71 | 68 | cmd = ctlike+' inobs="data/crab_events.fits"'+ \ |
| ... | ... | @@ -74,15 +71,13 @@ class Test(gammalib.GPythonTestSuite): |
| 74 | 71 | ' outmodel="ctlike_cmd1.xml"'+ \ |
| 75 | 72 | ' logfile="ctlike_cmd1.log" chatter=1' |
| 76 | 73 | |
| 77 | - # Execute ctlike, make sure we catch any exception | |
| 78 | - try: | |
| 79 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 80 | - except: | |
| 81 | - pass | |
| 74 | + # Check if execution of wrong command fails | |
| 75 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 76 | + 'Self test of test script') | |
| 82 | 77 | |
| 83 | 78 | # Check if execution was successful |
| 84 | - self.test_assert(rc == 0, | |
| 85 | - 'Successful ctlike execution on command line') | |
| 79 | + self.test_assert(self._execute(cmd) == 0, | |
| 80 | + 'Check successful execution from command line') | |
| 86 | 81 | |
| 87 | 82 | # Check result file |
| 88 | 83 | self._check_result_file('ctlike_cmd1.xml') |
| ... | ... | @@ -94,15 +89,9 @@ class Test(gammalib.GPythonTestSuite): |
| 94 | 89 | ' outmodel="ctlike_cmd2.xml"'+ \ |
| 95 | 90 | ' logfile="ctlike_cmd2.log" chatter=1' |
| 96 | 91 | |
| 97 | - # Execute ctlike, make sure we catch any exception | |
| 98 | - try: | |
| 99 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 100 | - except: | |
| 101 | - pass | |
| 102 | - | |
| 103 | 92 | # Check if execution failed |
| 104 | - self.test_assert(rc != 0, | |
| 105 | - 'Failure of ctlike execution on command line') | |
| 93 | + self.test_assert(self._execute(cmd) != 0, | |
| 94 | + 'Check invalid input file when executed from command line') | |
| 106 | 95 | |
| 107 | 96 | # Return |
| 108 | 97 | return |
| ... | ... | @@ -110,7 +99,7 @@ class Test(gammalib.GPythonTestSuite): |
| 110 | 99 | # Test ctlike from Python |
| 111 | 100 | def _test_python(self): |
| 112 | 101 | """ |
| 113 | - Test ctlike from Python. | |
| 102 | + Test ctlike from Python | |
| 114 | 103 | """ |
| 115 | 104 | # Set-up ctlike |
| 116 | 105 | like = ctools.ctlike() |
| ... | ... | @@ -136,7 +125,7 @@ class Test(gammalib.GPythonTestSuite): |
| 136 | 125 | # Check result file |
| 137 | 126 | def _check_result_file(self, filename): |
| 138 | 127 | """ |
| 139 | - Check result file. | |
| 128 | + Check result file | |
| 140 | 129 | """ |
| 141 | 130 | # Open result file |
| 142 | 131 | result = gammalib.GModels(filename) | ... | ... |
test/test_ctmapcube.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import ctools |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ============================= # |
| 27 | 27 | # Test class for ctmapcube tool # |
| 28 | 28 | # ============================= # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for ctmapcube tool. | |
| 31 | + Test class for ctmapcube tool | |
| 32 | 32 | |
| 33 | 33 | This test class makes unit tests for the ctmapcube tool by using it from |
| 34 | 34 | the command line and from Python. |
| ... | ... | @@ -37,13 +37,13 @@ class Test(gammalib.GPythonTestSuite): |
| 37 | 37 | # Constructor |
| 38 | 38 | def __init__(self): |
| 39 | 39 | """ |
| 40 | - Constructor. | |
| 40 | + Constructor | |
| 41 | 41 | """ |
| 42 | 42 | # Call base class constructor |
| 43 | - gammalib.GPythonTestSuite.__init__(self) | |
| 43 | + test.__init__(self) | |
| 44 | 44 | |
| 45 | 45 | # Set members |
| 46 | - self._model_name = "data/crab.xml" | |
| 46 | + self._model_name = 'data/crab.xml' | |
| 47 | 47 | |
| 48 | 48 | # Return |
| 49 | 49 | return |
| ... | ... | @@ -51,14 +51,14 @@ class Test(gammalib.GPythonTestSuite): |
| 51 | 51 | # Set test functions |
| 52 | 52 | def set(self): |
| 53 | 53 | """ |
| 54 | - Set all test functions. | |
| 54 | + Set all test functions | |
| 55 | 55 | """ |
| 56 | 56 | # Set test name |
| 57 | - self.name("ctmapcube") | |
| 57 | + self.name('ctmapcube') | |
| 58 | 58 | |
| 59 | 59 | # Append tests |
| 60 | - self.append(self._test_cmd, "Test ctmapcube on command line") | |
| 61 | - self.append(self._test_python, "Test ctmapcube from Python") | |
| 60 | + self.append(self._test_cmd, 'Test ctmapcube on command line') | |
| 61 | + self.append(self._test_python, 'Test ctmapcube from Python') | |
| 62 | 62 | |
| 63 | 63 | # Return |
| 64 | 64 | return |
| ... | ... | @@ -66,13 +66,10 @@ class Test(gammalib.GPythonTestSuite): |
| 66 | 66 | # Test ctmapcube on command line |
| 67 | 67 | def _test_cmd(self): |
| 68 | 68 | """ |
| 69 | - Test ctmapcube on the command line. | |
| 69 | + Test ctmapcube on the command line | |
| 70 | 70 | """ |
| 71 | - # Kluge to set the command (installed version has no README file) | |
| 72 | - if os.path.isfile("README.md"): | |
| 73 | - ctmapcube = "../src/ctmapcube/ctmapcube" | |
| 74 | - else: | |
| 75 | - ctmapcube = "ctmapcube" | |
| 71 | + # Set tool name | |
| 72 | + ctmapcube = self._tool('ctmapcube') | |
| 76 | 73 | |
| 77 | 74 | # Setup ctmapcube command |
| 78 | 75 | cmd = ctmapcube+' inmodel="'+self._model_name+'"'+ \ |
| ... | ... | @@ -82,19 +79,16 @@ class Test(gammalib.GPythonTestSuite): |
| 82 | 79 | ' xref=83.63 yref=22.01 proj=CAR'+ \ |
| 83 | 80 | ' logfile="ctmapcube_cmd1.log" chatter=1' |
| 84 | 81 | |
| 85 | - # Execute ctmapcube, make sure we catch any exception | |
| 86 | - try: | |
| 87 | - #rc = os.system(cmd) | |
| 88 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 89 | - except: | |
| 90 | - pass | |
| 82 | + # Check if execution of wrong command fails | |
| 83 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 84 | + 'Self test of test script') | |
| 91 | 85 | |
| 92 | 86 | # Check if execution was successful |
| 93 | - self.test_assert(rc == 0, | |
| 94 | - "Successful ctmapcube execution on command line") | |
| 87 | + self.test_assert(self._execute(cmd) == 0, | |
| 88 | + 'Check successful execution from command line') | |
| 95 | 89 | |
| 96 | 90 | # Check map cube |
| 97 | - self._check_cube("ctmapcube_cmd1.fits") | |
| 91 | + self._check_cube('ctmapcube_cmd1.fits') | |
| 98 | 92 | |
| 99 | 93 | # Setup ctmapcube command |
| 100 | 94 | cmd = ctmapcube+' inmodel="events_that_do_not_exist.fits"'+ \ |
| ... | ... | @@ -104,16 +98,9 @@ class Test(gammalib.GPythonTestSuite): |
| 104 | 98 | ' xref=83.63 yref=22.01 proj=CAR'+ \ |
| 105 | 99 | ' logfile="ctmapcube_cmd2.log"' |
| 106 | 100 | |
| 107 | - # Execute ctmapcube, make sure we catch any exception | |
| 108 | - try: | |
| 109 | - #rc = os.system(cmd) | |
| 110 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 111 | - except: | |
| 112 | - pass | |
| 113 | - | |
| 114 | 101 | # Check if execution failed |
| 115 | - self.test_assert(rc != 0, | |
| 116 | - "Failure of ctmapcube execution on command line") | |
| 102 | + self.test_assert(self._execute(cmd) != 0, | |
| 103 | + 'Check invalid input file when executed from command line') | |
| 117 | 104 | |
| 118 | 105 | # Return |
| 119 | 106 | return |
| ... | ... | @@ -121,25 +108,25 @@ class Test(gammalib.GPythonTestSuite): |
| 121 | 108 | # Test ctmapcube from Python |
| 122 | 109 | def _test_python(self): |
| 123 | 110 | """ |
| 124 | - Test ctmapcube from Python. | |
| 111 | + Test ctmapcube from Python | |
| 125 | 112 | """ |
| 126 | 113 | # Set-up ctmapcube |
| 127 | 114 | mapcube = ctools.ctmapcube() |
| 128 | - mapcube["inmodel"] = self._model_name | |
| 129 | - mapcube["outcube"] = "ctmapcube_py1.fits" | |
| 130 | - mapcube["ebinalg"] = "LOG" | |
| 131 | - mapcube["emin"] = 0.1 | |
| 132 | - mapcube["emax"] = 100.0 | |
| 133 | - mapcube["enumbins"] = 20 | |
| 134 | - mapcube["nxpix"] = 200 | |
| 135 | - mapcube["nypix"] = 200 | |
| 136 | - mapcube["binsz"] = 0.02 | |
| 137 | - mapcube["coordsys"] = "CEL" | |
| 138 | - mapcube["proj"] = "CAR" | |
| 139 | - mapcube["xref"] = 83.63 | |
| 140 | - mapcube["yref"] = 22.01 | |
| 141 | - mapcube["logfile"] = "ctmapcube_py1.log" | |
| 142 | - mapcube["chatter"] = 2 | |
| 115 | + mapcube['inmodel'] = self._model_name | |
| 116 | + mapcube['outcube'] = 'ctmapcube_py1.fits' | |
| 117 | + mapcube['ebinalg'] = 'LOG' | |
| 118 | + mapcube['emin'] = 0.1 | |
| 119 | + mapcube['emax'] = 100.0 | |
| 120 | + mapcube['enumbins'] = 20 | |
| 121 | + mapcube['nxpix'] = 200 | |
| 122 | + mapcube['nypix'] = 200 | |
| 123 | + mapcube['binsz'] = 0.02 | |
| 124 | + mapcube['coordsys'] = 'CEL' | |
| 125 | + mapcube['proj'] = 'CAR' | |
| 126 | + mapcube['xref'] = 83.63 | |
| 127 | + mapcube['yref'] = 22.01 | |
| 128 | + mapcube['logfile'] = 'ctmapcube_py1.log' | |
| 129 | + mapcube['chatter'] = 2 | |
| 143 | 130 | |
| 144 | 131 | # Run ctmapcube tool |
| 145 | 132 | mapcube.logFileOpen() # Make sure we get a log file |
| ... | ... | @@ -149,7 +136,7 @@ class Test(gammalib.GPythonTestSuite): |
| 149 | 136 | mapcube.save() |
| 150 | 137 | |
| 151 | 138 | # Check map cube |
| 152 | - self._check_cube("ctmapcube_py1.fits") | |
| 139 | + self._check_cube('ctmapcube_py1.fits') | |
| 153 | 140 | |
| 154 | 141 | # Return |
| 155 | 142 | return |
| ... | ... | @@ -157,22 +144,23 @@ class Test(gammalib.GPythonTestSuite): |
| 157 | 144 | # Check map cube |
| 158 | 145 | def _check_cube(self, filename): |
| 159 | 146 | """ |
| 160 | - Check content of map cube." | |
| 147 | + Check content of map cube | |
| 161 | 148 | |
| 162 | - Args: | |
| 163 | - filename: Map cube file name. | |
| 149 | + Parameters | |
| 150 | + ---------- | |
| 151 | + filename : str | |
| 152 | + Map cube file name. | |
| 164 | 153 | """ |
| 165 | 154 | # Load map cube |
| 166 | 155 | cube = gammalib.GModelSpatialDiffuseCube(filename) |
| 167 | - #print(cube) | |
| 168 | 156 | |
| 169 | 157 | # Test map cube |
| 170 | 158 | #self.test_value(cube.maps(), 20, "20 maps") |
| 171 | 159 | #self.test_value(cube.pixels(), 40000, "40000 map pixels") |
| 172 | 160 | # The map cube is not loaded by default !!!! We should add the method so that |
| 173 | 161 | # the attributes are known !!!! |
| 174 | - self.test_value(cube.maps(), 0, "20 maps") | |
| 175 | - self.test_value(cube.pixels(), 0, "40000 map pixels") | |
| 162 | + self.test_value(cube.maps(), 0, '20 maps') | |
| 163 | + self.test_value(cube.pixels(), 0, '40000 map pixels') | |
| 176 | 164 | |
| 177 | 165 | # Return |
| 178 | 166 | return | ... | ... |
test/test_ctmodel.py
| ... | ... | @@ -18,25 +18,25 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import ctools |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # =========================== # |
| 27 | 27 | # Test class for ctmodel tool # |
| 28 | 28 | # =========================== # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for ctmodel tool. | |
| 31 | + Test class for ctmodel tool | |
| 32 | 32 | """ |
| 33 | 33 | # Constructor |
| 34 | 34 | def __init__(self): |
| 35 | 35 | """ |
| 36 | - Constructor. | |
| 36 | + Constructor | |
| 37 | 37 | """ |
| 38 | 38 | # Call base class constructor |
| 39 | - gammalib.GPythonTestSuite.__init__(self) | |
| 39 | + test.__init__(self) | |
| 40 | 40 | |
| 41 | 41 | # Return |
| 42 | 42 | return |
| ... | ... | @@ -44,7 +44,7 @@ class Test(gammalib.GPythonTestSuite): |
| 44 | 44 | # Set test functions |
| 45 | 45 | def set(self): |
| 46 | 46 | """ |
| 47 | - Set all test functions. | |
| 47 | + Set all test functions | |
| 48 | 48 | """ |
| 49 | 49 | # Set test name |
| 50 | 50 | self.name('ctmodel') |
| ... | ... | @@ -59,13 +59,10 @@ class Test(gammalib.GPythonTestSuite): |
| 59 | 59 | # Test ctmodel on command line |
| 60 | 60 | def _test_cmd(self): |
| 61 | 61 | """ |
| 62 | - Test ctmodel on the command line. | |
| 62 | + Test ctmodel on the command line | |
| 63 | 63 | """ |
| 64 | - # Kluge to set the command (installed version has no README file) | |
| 65 | - if os.path.isfile('README.md'): | |
| 66 | - ctmodel = '../src/ctmodel/ctmodel' | |
| 67 | - else: | |
| 68 | - ctmodel = 'ctmodel' | |
| 64 | + # Set tool name | |
| 65 | + ctmodel = self._tool('ctmodel') | |
| 69 | 66 | |
| 70 | 67 | # Setup ctmodel command |
| 71 | 68 | cmd = ctmodel+' incube="NONE" inobs="NONE" expcube="NONE"'+\ |
| ... | ... | @@ -79,15 +76,13 @@ class Test(gammalib.GPythonTestSuite): |
| 79 | 76 | ' xref=83.63 yref=22.01'+ \ |
| 80 | 77 | ' logfile="ctmodel_cmd1.log" chatter=1' |
| 81 | 78 | |
| 82 | - # Execute ctmodel, make sure we catch any exception | |
| 83 | - try: | |
| 84 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 85 | - except: | |
| 86 | - pass | |
| 79 | + # Check if execution of wrong command fails | |
| 80 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 81 | + 'Self test of test script') | |
| 87 | 82 | |
| 88 | 83 | # Check if execution was successful |
| 89 | - self.test_assert(rc == 0, | |
| 90 | - 'Successful ctmodel execution on command line') | |
| 84 | + self.test_assert(self._execute(cmd) == 0, | |
| 85 | + 'Check successful execution from command line') | |
| 91 | 86 | |
| 92 | 87 | # Check result file |
| 93 | 88 | self._check_result_file('ctmodel_cmd1.fits') |
| ... | ... | @@ -104,15 +99,9 @@ class Test(gammalib.GPythonTestSuite): |
| 104 | 99 | ' xref=83.63 yref=22.01'+ \ |
| 105 | 100 | ' logfile="ctmodel_cmd2.log" chatter=1' |
| 106 | 101 | |
| 107 | - # Execute ctmodel, make sure we catch any exception | |
| 108 | - try: | |
| 109 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 110 | - except: | |
| 111 | - pass | |
| 112 | - | |
| 113 | 102 | # Check if execution failed |
| 114 | - self.test_assert(rc != 0, | |
| 115 | - 'Failure of ctmodel execution on command line') | |
| 103 | + self.test_assert(self._execute(cmd) != 0, | |
| 104 | + 'Check invalid input file when executed from command line') | |
| 116 | 105 | |
| 117 | 106 | # Return |
| 118 | 107 | return |
| ... | ... | @@ -120,7 +109,7 @@ class Test(gammalib.GPythonTestSuite): |
| 120 | 109 | # Test ctmodel from Python |
| 121 | 110 | def _test_python(self): |
| 122 | 111 | """ |
| 123 | - Test ctmodel from Python. | |
| 112 | + Test ctmodel from Python | |
| 124 | 113 | """ |
| 125 | 114 | # Set-up ctmodel from scratch |
| 126 | 115 | model = ctools.ctmodel() |
| ... | ... | @@ -165,7 +154,7 @@ class Test(gammalib.GPythonTestSuite): |
| 165 | 154 | # Check result file |
| 166 | 155 | def _check_result_file(self, filename): |
| 167 | 156 | """ |
| 168 | - Check result file. | |
| 157 | + Check result file | |
| 169 | 158 | """ |
| 170 | 159 | # Open result file |
| 171 | 160 | fits = gammalib.GFits(filename) | ... | ... |
test/test_ctobssim.py
| ... | ... | @@ -18,18 +18,18 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import ctools |
| 24 | 23 | from cscripts import obsutils |
| 24 | +from testing import test | |
| 25 | 25 | |
| 26 | 26 | |
| 27 | 27 | # ============================ # |
| 28 | 28 | # Test class for ctobssim tool # |
| 29 | 29 | # ============================ # |
| 30 | -class Test(gammalib.GPythonTestSuite): | |
| 30 | +class Test(test): | |
| 31 | 31 | """ |
| 32 | - Test class for ctobssim tools. | |
| 32 | + Test class for ctobssim tools | |
| 33 | 33 | |
| 34 | 34 | This test class makes unit tests for the ctobssim tool by using it from |
| 35 | 35 | the command line and from Python. |
| ... | ... | @@ -38,15 +38,15 @@ class Test(gammalib.GPythonTestSuite): |
| 38 | 38 | # Constructor |
| 39 | 39 | def __init__(self): |
| 40 | 40 | """ |
| 41 | - Constructor. | |
| 41 | + Constructor | |
| 42 | 42 | """ |
| 43 | 43 | # Call base class constructor |
| 44 | - gammalib.GPythonTestSuite.__init__(self) | |
| 44 | + test.__init__(self) | |
| 45 | 45 | |
| 46 | 46 | # Set members |
| 47 | - self._model_name = "data/crab.xml" | |
| 48 | - self._caldb = "irf" | |
| 49 | - self._irf = "cta_dummy_irf" | |
| 47 | + self._model_name = 'data/crab.xml' | |
| 48 | + self._caldb = 'irf' | |
| 49 | + self._irf = 'cta_dummy_irf' | |
| 50 | 50 | |
| 51 | 51 | # Return |
| 52 | 52 | return |
| ... | ... | @@ -54,14 +54,14 @@ class Test(gammalib.GPythonTestSuite): |
| 54 | 54 | # Set test functions |
| 55 | 55 | def set(self): |
| 56 | 56 | """ |
| 57 | - Set all test functions. | |
| 57 | + Set all test functions | |
| 58 | 58 | """ |
| 59 | 59 | # Set test name |
| 60 | - self.name("ctobssim") | |
| 60 | + self.name('ctobssim') | |
| 61 | 61 | |
| 62 | 62 | # Append tests |
| 63 | - self.append(self._test_ctobssim_cmd, "Test ctobssim on command line") | |
| 64 | - self.append(self._test_ctobssim_python, "Test ctobssim from Python") | |
| 63 | + self.append(self._test_ctobssim_cmd, 'Test ctobssim on command line') | |
| 64 | + self.append(self._test_ctobssim_python, 'Test ctobssim from Python') | |
| 65 | 65 | |
| 66 | 66 | # Return |
| 67 | 67 | return |
| ... | ... | @@ -69,13 +69,10 @@ class Test(gammalib.GPythonTestSuite): |
| 69 | 69 | # Test ctobssim on command line |
| 70 | 70 | def _test_ctobssim_cmd(self): |
| 71 | 71 | """ |
| 72 | - Test ctobssim on the command line. | |
| 72 | + Test ctobssim on the command line | |
| 73 | 73 | """ |
| 74 | - # Kluge to set the command (installed version has no README file) | |
| 75 | - if os.path.isfile("README.md"): | |
| 76 | - ctobssim = "../src/ctobssim/ctobssim" | |
| 77 | - else: | |
| 78 | - ctobssim = "ctobssim" | |
| 74 | + # Set tool name | |
| 75 | + ctobssim = self._tool('ctobssim') | |
| 79 | 76 | |
| 80 | 77 | # Setup ctobssim command |
| 81 | 78 | cmd = ctobssim+' inmodel="data/crab.xml" outevents="events.fits"'+ \ |
| ... | ... | @@ -83,18 +80,16 @@ class Test(gammalib.GPythonTestSuite): |
| 83 | 80 | ' ra=83.63 dec=22.01 rad=10.0'+ \ |
| 84 | 81 | ' tmin=0.0 tmax=1800.0 emin=0.1 emax=100.0' |
| 85 | 82 | |
| 86 | - # Execute ctobssim, make sure we catch any exception | |
| 87 | - try: | |
| 88 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 89 | - except: | |
| 90 | - pass | |
| 83 | + # Check if execution of wrong command fails | |
| 84 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 85 | + 'Self test of test script') | |
| 91 | 86 | |
| 92 | 87 | # Check if execution was successful |
| 93 | - self.test_assert(rc == 0, | |
| 94 | - "Successful ctobssim execution on command line") | |
| 88 | + self.test_assert(self._execute(cmd) == 0, | |
| 89 | + 'Check successful execution from command line') | |
| 95 | 90 | |
| 96 | 91 | # Load counts cube and check content. |
| 97 | - evt = gammalib.GCTAEventList("events.fits") | |
| 92 | + evt = gammalib.GCTAEventList('events.fits') | |
| 98 | 93 | self._test_list(evt, 4119) |
| 99 | 94 | |
| 100 | 95 | # Setup ctobssim command |
| ... | ... | @@ -104,15 +99,9 @@ class Test(gammalib.GPythonTestSuite): |
| 104 | 99 | ' ra=83.63 dec=22.01 rad=10.0'+ \ |
| 105 | 100 | ' tmin=0.0 tmax=1800.0 emin=0.1 emax=100.0' |
| 106 | 101 | |
| 107 | - # Execute ctobssim, make sure we catch any exception | |
| 108 | - try: | |
| 109 | - rc = os.system(cmd+" >/dev/null 2>&1") | |
| 110 | - except: | |
| 111 | - pass | |
| 112 | - | |
| 113 | 102 | # Check if execution failed |
| 114 | - self.test_assert(rc != 0, | |
| 115 | - "Failure of ctobssim execution on command line") | |
| 103 | + self.test_assert(self._execute(cmd) != 0, | |
| 104 | + 'Check invalid input file when executed from command line') | |
| 116 | 105 | |
| 117 | 106 | # Return |
| 118 | 107 | return |
| ... | ... | @@ -120,21 +109,21 @@ class Test(gammalib.GPythonTestSuite): |
| 120 | 109 | # Test ctobssim from Python |
| 121 | 110 | def _test_ctobssim_python(self): |
| 122 | 111 | """ |
| 123 | - Test ctobssim from Python. | |
| 112 | + Test ctobssim from Python | |
| 124 | 113 | """ |
| 125 | 114 | # Set-up ctobssim |
| 126 | 115 | sim = ctools.ctobssim() |
| 127 | - sim["inmodel"] = self._model_name | |
| 128 | - sim["outevents"] = "events.fits" | |
| 129 | - sim["caldb"] = self._caldb | |
| 130 | - sim["irf"] = self._irf | |
| 131 | - sim["ra"] = 83.63 | |
| 132 | - sim["dec"] = 22.01 | |
| 133 | - sim["rad"] = 10.0 | |
| 134 | - sim["tmin"] = 0.0 | |
| 135 | - sim["tmax"] = 1800.0 | |
| 136 | - sim["emin"] = 0.1 | |
| 137 | - sim["emax"] = 100.0 | |
| 116 | + sim['inmodel'] = self._model_name | |
| 117 | + sim['outevents'] = 'events.fits' | |
| 118 | + sim['caldb'] = self._caldb | |
| 119 | + sim['irf'] = self._irf | |
| 120 | + sim['ra'] = 83.63 | |
| 121 | + sim['dec'] = 22.01 | |
| 122 | + sim['rad'] = 10.0 | |
| 123 | + sim['tmin'] = 0.0 | |
| 124 | + sim['tmax'] = 1800.0 | |
| 125 | + sim['emin'] = 0.1 | |
| 126 | + sim['emax'] = 100.0 | |
| 138 | 127 | |
| 139 | 128 | # Run tool |
| 140 | 129 | sim.run() |
| ... | ... | @@ -147,7 +136,7 @@ class Test(gammalib.GPythonTestSuite): |
| 147 | 136 | sim.save() |
| 148 | 137 | |
| 149 | 138 | # Load counts cube and check content. |
| 150 | - evt = gammalib.GCTAEventList("events.fits") | |
| 139 | + evt = gammalib.GCTAEventList('events.fits') | |
| 151 | 140 | self._test_list(evt, 4119) |
| 152 | 141 | |
| 153 | 142 | # Set-up observation container |
| ... | ... | @@ -159,8 +148,8 @@ class Test(gammalib.GPythonTestSuite): |
| 159 | 148 | |
| 160 | 149 | # Set-up ctobssim from observation container |
| 161 | 150 | sim = ctools.ctobssim(obs) |
| 162 | - sim["outevents"] = "sim_events.xml" | |
| 163 | - sim["inmodel"] = self._model_name | |
| 151 | + sim['outevents'] = 'sim_events.xml' | |
| 152 | + sim['inmodel'] = self._model_name | |
| 164 | 153 | |
| 165 | 154 | # Run tool |
| 166 | 155 | sim.run() |
| ... | ... | @@ -176,7 +165,7 @@ class Test(gammalib.GPythonTestSuite): |
| 176 | 165 | sim.save() |
| 177 | 166 | |
| 178 | 167 | # Load events |
| 179 | - obs = gammalib.GObservations("sim_events.xml") | |
| 168 | + obs = gammalib.GObservations('sim_events.xml') | |
| 180 | 169 | |
| 181 | 170 | # Retrieve observation and check content |
| 182 | 171 | self._test_list(obs[0].events(), 4063) |
| ... | ... | @@ -186,20 +175,20 @@ class Test(gammalib.GPythonTestSuite): |
| 186 | 175 | |
| 187 | 176 | # Set-up ctobssim with invalid event file |
| 188 | 177 | sim = ctools.ctobssim() |
| 189 | - sim["inmodel"] = "model_file_that_does_not_exist.xml" | |
| 190 | - sim["outevents"] = "events.fits" | |
| 191 | - sim["caldb"] = self._caldb | |
| 192 | - sim["irf"] = self._irf | |
| 193 | - sim["ra"] = 83.63 | |
| 194 | - sim["dec"] = 22.01 | |
| 195 | - sim["rad"] = 10.0 | |
| 196 | - sim["tmin"] = 0.0 | |
| 197 | - sim["tmax"] = 1800.0 | |
| 198 | - sim["emin"] = 0.1 | |
| 199 | - sim["emax"] = 100.0 | |
| 178 | + sim['inmodel'] = 'model_file_that_does_not_exist.xml' | |
| 179 | + sim['outevents'] = 'events.fits' | |
| 180 | + sim['caldb'] = self._caldb | |
| 181 | + sim['irf'] = self._irf | |
| 182 | + sim['ra'] = 83.63 | |
| 183 | + sim['dec'] = 22.01 | |
| 184 | + sim['rad'] = 10.0 | |
| 185 | + sim['tmin'] = 0.0 | |
| 186 | + sim['tmax'] = 1800.0 | |
| 187 | + sim['emin'] = 0.1 | |
| 188 | + sim['emax'] = 100.0 | |
| 200 | 189 | |
| 201 | 190 | # Run ctbin tool |
| 202 | - self.test_try("Run ctobssim with invalid model file") | |
| 191 | + self.test_try('Run ctobssim with invalid model file') | |
| 203 | 192 | try: |
| 204 | 193 | sim.run() |
| 205 | 194 | self.test_try_failure() |
| ... | ... | @@ -213,31 +202,33 @@ class Test(gammalib.GPythonTestSuite): |
| 213 | 202 | def _test_observation(self, ctobssim, nobs=1, |
| 214 | 203 | pnts=[{'ra': 83.63, 'dec': 22.01}]): |
| 215 | 204 | """ |
| 216 | - Test content of an observation. | |
| 205 | + Test content of an observation | |
| 217 | 206 | |
| 218 | - Args: | |
| 219 | - ctobssim: ctobssim instance | |
| 220 | - | |
| 221 | - Kwargs: | |
| 222 | - nobs: Number of observations | |
| 223 | - pnts: List of pointing dictionaries | |
| 207 | + Parameters | |
| 208 | + ---------- | |
| 209 | + ctobssim : `~ctools.ctobssim` | |
| 210 | + ctobssim instance | |
| 211 | + nobs : int | |
| 212 | + Number of observations | |
| 213 | + pnts : list of dict | |
| 214 | + List of pointing dictionaries | |
| 224 | 215 | """ |
| 225 | 216 | # Test observation container |
| 226 | 217 | self.test_value(ctobssim.obs().size(), nobs, |
| 227 | - "There is one observation") | |
| 218 | + 'There is one observation') | |
| 228 | 219 | for i in range(ctobssim.obs().size()): |
| 229 | 220 | obs = gammalib.GCTAObservation(ctobssim.obs()[i]) |
| 230 | 221 | pnt = obs.pointing() |
| 231 | - self.test_assert(obs.instrument() == "CTA", | |
| 232 | - "Observation is CTA observation") | |
| 222 | + self.test_assert(obs.instrument() == 'CTA', | |
| 223 | + 'Observation is CTA observation') | |
| 233 | 224 | self.test_value(obs.ontime(), 1800.0, 1.0e-6, |
| 234 | - "Ontime is 1800 sec") | |
| 225 | + 'Ontime is 1800 sec') | |
| 235 | 226 | self.test_value(obs.livetime(), 1710.0, 1.0e-6, |
| 236 | - "Livetime is 1710 sec") | |
| 227 | + 'Livetime is 1710 sec') | |
| 237 | 228 | self.test_value(pnt.dir().ra_deg(), pnts[i]['ra'], 1.0e-6, |
| 238 | - "Pointing Right Ascension is "+str(pnts[i]['ra'])+" deg") | |
| 229 | + 'Pointing Right Ascension is '+str(pnts[i]['ra'])+' deg') | |
| 239 | 230 | self.test_value(pnt.dir().dec_deg(), pnts[i]['dec'], 1.0e-6, |
| 240 | - "Pointing Declination is "+str(pnts[i]['dec'])+" deg") | |
| 231 | + 'Pointing Declination is '+str(pnts[i]['dec'])+' deg') | |
| 241 | 232 | |
| 242 | 233 | # Return |
| 243 | 234 | return |
| ... | ... | @@ -245,15 +236,18 @@ class Test(gammalib.GPythonTestSuite): |
| 245 | 236 | # Check event list |
| 246 | 237 | def _test_list(self, list, nevents): |
| 247 | 238 | """ |
| 248 | - Test content of event list." | |
| 239 | + Test content of event list | |
| 249 | 240 | |
| 250 | - Args: | |
| 251 | - list: Event list | |
| 252 | - nevents: Expected number of events. | |
| 241 | + Parameters | |
| 242 | + ---------- | |
| 243 | + list : `~gammalib.GCTAEventList` | |
| 244 | + Event list | |
| 245 | + nevents : int | |
| 246 | + Expected number of events | |
| 253 | 247 | """ |
| 254 | 248 | # Test event list |
| 255 | - self.test_value(list.size(), nevents, str(nevents)+" elements") | |
| 256 | - self.test_value(list.number(), nevents, str(nevents)+" events") | |
| 249 | + self.test_value(list.size(), nevents, str(nevents)+' elements') | |
| 250 | + self.test_value(list.number(), nevents, str(nevents)+' events') | |
| 257 | 251 | |
| 258 | 252 | # Return |
| 259 | 253 | return | ... | ... |
test/test_ctpsfcube.py
| ... | ... | @@ -18,25 +18,25 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import ctools |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ============================= # |
| 27 | 27 | # Test class for ctpsfcube tool # |
| 28 | 28 | # ============================= # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for ctpsfcube tool. | |
| 31 | + Test class for ctpsfcube tool | |
| 32 | 32 | """ |
| 33 | 33 | # Constructor |
| 34 | 34 | def __init__(self): |
| 35 | 35 | """ |
| 36 | - Constructor. | |
| 36 | + Constructor | |
| 37 | 37 | """ |
| 38 | 38 | # Call base class constructor |
| 39 | - gammalib.GPythonTestSuite.__init__(self) | |
| 39 | + test.__init__(self) | |
| 40 | 40 | |
| 41 | 41 | # Return |
| 42 | 42 | return |
| ... | ... | @@ -44,7 +44,7 @@ class Test(gammalib.GPythonTestSuite): |
| 44 | 44 | # Set test functions |
| 45 | 45 | def set(self): |
| 46 | 46 | """ |
| 47 | - Set all test functions. | |
| 47 | + Set all test functions | |
| 48 | 48 | """ |
| 49 | 49 | # Set test name |
| 50 | 50 | self.name('ctpsfcube') |
| ... | ... | @@ -61,11 +61,8 @@ class Test(gammalib.GPythonTestSuite): |
| 61 | 61 | """ |
| 62 | 62 | Test ctpsfcube on the command line. |
| 63 | 63 | """ |
| 64 | - # Kluge to set the command (installed version has no README file) | |
| 65 | - if os.path.isfile('README.md'): | |
| 66 | - ctpsfcube = '../src/ctpsfcube/ctpsfcube' | |
| 67 | - else: | |
| 68 | - ctpsfcube = 'ctpsfcube' | |
| 64 | + # Set tool name | |
| 65 | + ctpsfcube = self._tool('ctpsfcube') | |
| 69 | 66 | |
| 70 | 67 | # Setup ctpsfcube command |
| 71 | 68 | cmd = ctpsfcube+' inobs="data/crab_events.fits"'+ \ |
| ... | ... | @@ -78,15 +75,13 @@ class Test(gammalib.GPythonTestSuite): |
| 78 | 75 | ' amax=0.3 anumbins=10'+ \ |
| 79 | 76 | ' logfile="ctpsfcube_cmd1.log" chatter=1' |
| 80 | 77 | |
| 81 | - # Execute ctpsfcube, make sure we catch any exception | |
| 82 | - try: | |
| 83 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 84 | - except: | |
| 85 | - pass | |
| 78 | + # Check if execution of wrong command fails | |
| 79 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 80 | + 'Self test of test script') | |
| 86 | 81 | |
| 87 | 82 | # Check if execution was successful |
| 88 | - self.test_assert(rc == 0, | |
| 89 | - 'Successful ctpsfcube execution on command line') | |
| 83 | + self.test_assert(self._execute(cmd) == 0, | |
| 84 | + 'Check successful execution from command line') | |
| 90 | 85 | |
| 91 | 86 | # Check result file |
| 92 | 87 | self._check_result_file('ctpsfcube_cmd1.fits') |
| ... | ... | @@ -102,15 +97,9 @@ class Test(gammalib.GPythonTestSuite): |
| 102 | 97 | ' amax=0.3 anumbins=10'+ \ |
| 103 | 98 | ' logfile="ctpsfcube_cmd2.log" chatter=1' |
| 104 | 99 | |
| 105 | - # Execute ctpsfcube, make sure we catch any exception | |
| 106 | - try: | |
| 107 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 108 | - except: | |
| 109 | - pass | |
| 110 | - | |
| 111 | 100 | # Check if execution failed |
| 112 | - self.test_assert(rc != 0, | |
| 113 | - 'Failure of ctpsfcube execution on command line') | |
| 101 | + self.test_assert(self._execute(cmd) != 0, | |
| 102 | + 'Check invalid input file when executed from command line') | |
| 114 | 103 | |
| 115 | 104 | # Return |
| 116 | 105 | return |
| ... | ... | @@ -118,7 +107,7 @@ class Test(gammalib.GPythonTestSuite): |
| 118 | 107 | # Test ctpsfcube from Python |
| 119 | 108 | def _test_python(self): |
| 120 | 109 | """ |
| 121 | - Test ctpsfcube from Python. | |
| 110 | + Test ctpsfcube from Python | |
| 122 | 111 | """ |
| 123 | 112 | # Set-up ctpsfcube |
| 124 | 113 | psfcube = ctools.ctpsfcube() |
| ... | ... | @@ -157,7 +146,7 @@ class Test(gammalib.GPythonTestSuite): |
| 157 | 146 | # Check result file |
| 158 | 147 | def _check_result_file(self, filename): |
| 159 | 148 | """ |
| 160 | - Check result file. | |
| 149 | + Check result file | |
| 161 | 150 | """ |
| 162 | 151 | # Open result file |
| 163 | 152 | result = gammalib.GCTACubePsf(filename) | ... | ... |
test/test_ctselect.py
| ... | ... | @@ -18,25 +18,25 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import ctools |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ============================ # |
| 27 | 27 | # Test class for ctselect tool # |
| 28 | 28 | # ============================ # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for ctselect tool. | |
| 31 | + Test class for ctselect tool | |
| 32 | 32 | """ |
| 33 | 33 | # Constructor |
| 34 | 34 | def __init__(self): |
| 35 | 35 | """ |
| 36 | - Constructor. | |
| 36 | + Constructor | |
| 37 | 37 | """ |
| 38 | 38 | # Call base class constructor |
| 39 | - gammalib.GPythonTestSuite.__init__(self) | |
| 39 | + test.__init__(self) | |
| 40 | 40 | |
| 41 | 41 | # Return |
| 42 | 42 | return |
| ... | ... | @@ -44,7 +44,7 @@ class Test(gammalib.GPythonTestSuite): |
| 44 | 44 | # Set test functions |
| 45 | 45 | def set(self): |
| 46 | 46 | """ |
| 47 | - Set all test functions. | |
| 47 | + Set all test functions | |
| 48 | 48 | """ |
| 49 | 49 | # Set test name |
| 50 | 50 | self.name('ctselect') |
| ... | ... | @@ -59,13 +59,10 @@ class Test(gammalib.GPythonTestSuite): |
| 59 | 59 | # Test ctselect on command line |
| 60 | 60 | def _test_cmd(self): |
| 61 | 61 | """ |
| 62 | - Test ctselect on the command line. | |
| 62 | + Test ctselect on the command line | |
| 63 | 63 | """ |
| 64 | - # Kluge to set the command (installed version has no README file) | |
| 65 | - if os.path.isfile('README.md'): | |
| 66 | - ctselect = '../src/ctselect/ctselect' | |
| 67 | - else: | |
| 68 | - ctselect = 'ctselect' | |
| 64 | + # Set tool name | |
| 65 | + ctselect = self._tool('ctselect') | |
| 69 | 66 | |
| 70 | 67 | # Setup ctselect command |
| 71 | 68 | cmd = ctselect+' inobs="data/crab_events.fits"'+ \ |
| ... | ... | @@ -75,15 +72,13 @@ class Test(gammalib.GPythonTestSuite): |
| 75 | 72 | ' emin=0.1 emax=100.0'+ \ |
| 76 | 73 | ' logfile="ctselect_cmd1.log" chatter=1' |
| 77 | 74 | |
| 78 | - # Execute ctselect, make sure we catch any exception | |
| 79 | - try: | |
| 80 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 81 | - except: | |
| 82 | - pass | |
| 75 | + # Check if execution of wrong command fails | |
| 76 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 77 | + 'Self test of test script') | |
| 83 | 78 | |
| 84 | 79 | # Check if execution was successful |
| 85 | - self.test_assert(rc == 0, | |
| 86 | - 'Successful ctselect execution on command line') | |
| 80 | + self.test_assert(self._execute(cmd) == 0, | |
| 81 | + 'Check successful execution from command line') | |
| 87 | 82 | |
| 88 | 83 | # Check result file |
| 89 | 84 | self._check_result_file('ctselect_cmd1.fits') |
| ... | ... | @@ -96,15 +91,9 @@ class Test(gammalib.GPythonTestSuite): |
| 96 | 91 | ' emin=0.1 emax=100.0'+ \ |
| 97 | 92 | ' logfile="ctselect_cmd2.log" chatter=1' |
| 98 | 93 | |
| 99 | - # Execute ctselect, make sure we catch any exception | |
| 100 | - try: | |
| 101 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 102 | - except: | |
| 103 | - pass | |
| 104 | - | |
| 105 | 94 | # Check if execution failed |
| 106 | - self.test_assert(rc != 0, | |
| 107 | - 'Failure of ctselect execution on command line') | |
| 95 | + self.test_assert(self._execute(cmd) != 0, | |
| 96 | + 'Check invalid input file when executed from command line') | |
| 108 | 97 | |
| 109 | 98 | # Return |
| 110 | 99 | return |
| ... | ... | @@ -112,7 +101,7 @@ class Test(gammalib.GPythonTestSuite): |
| 112 | 101 | # Test ctselect from Python |
| 113 | 102 | def _test_python(self): |
| 114 | 103 | """ |
| 115 | - Test ctselect from Python. | |
| 104 | + Test ctselect from Python | |
| 116 | 105 | """ |
| 117 | 106 | # Set-up ctselect |
| 118 | 107 | select = ctools.ctselect() |
| ... | ... | @@ -142,7 +131,7 @@ class Test(gammalib.GPythonTestSuite): |
| 142 | 131 | # Check result file |
| 143 | 132 | def _check_result_file(self, filename): |
| 144 | 133 | """ |
| 145 | - Check result file. | |
| 134 | + Check result file | |
| 146 | 135 | """ |
| 147 | 136 | # Open result file |
| 148 | 137 | result = gammalib.GCTAEventList(filename) | ... | ... |
test/test_ctskymap.py
| ... | ... | @@ -18,25 +18,25 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import ctools |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ============================ # |
| 27 | 27 | # Test class for ctskymap tool # |
| 28 | 28 | # ============================ # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for ctskymap tool. | |
| 31 | + Test class for ctskymap tool | |
| 32 | 32 | """ |
| 33 | 33 | # Constructor |
| 34 | 34 | def __init__(self): |
| 35 | 35 | """ |
| 36 | - Constructor. | |
| 36 | + Constructor | |
| 37 | 37 | """ |
| 38 | 38 | # Call base class constructor |
| 39 | - gammalib.GPythonTestSuite.__init__(self) | |
| 39 | + test.__init__(self) | |
| 40 | 40 | |
| 41 | 41 | # Return |
| 42 | 42 | return |
| ... | ... | @@ -44,7 +44,7 @@ class Test(gammalib.GPythonTestSuite): |
| 44 | 44 | # Set test functions |
| 45 | 45 | def set(self): |
| 46 | 46 | """ |
| 47 | - Set all test functions. | |
| 47 | + Set all test functions | |
| 48 | 48 | """ |
| 49 | 49 | # Set test name |
| 50 | 50 | self.name('ctskymap') |
| ... | ... | @@ -59,13 +59,10 @@ class Test(gammalib.GPythonTestSuite): |
| 59 | 59 | # Test ctskymap on command line |
| 60 | 60 | def _test_cmd(self): |
| 61 | 61 | """ |
| 62 | - Test ctskymap on the command line. | |
| 62 | + Test ctskymap on the command line | |
| 63 | 63 | """ |
| 64 | - # Kluge to set the command (installed version has no README file) | |
| 65 | - if os.path.isfile('README.md'): | |
| 66 | - ctskymap = '../src/ctskymap/ctskymap' | |
| 67 | - else: | |
| 68 | - ctskymap = 'ctskymap' | |
| 64 | + # Set tool name | |
| 65 | + ctskymap = self._tool('ctskymap') | |
| 69 | 66 | |
| 70 | 67 | # Setup ctskymap command |
| 71 | 68 | cmd = ctskymap+' inobs="data/crab_events.fits"'+\ |
| ... | ... | @@ -75,15 +72,13 @@ class Test(gammalib.GPythonTestSuite): |
| 75 | 72 | ' xref=83.63 yref=22.01'+ \ |
| 76 | 73 | ' logfile="ctskymap_cmd1.log" chatter=1' |
| 77 | 74 | |
| 78 | - # Execute ctskymap, make sure we catch any exception | |
| 79 | - try: | |
| 80 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 81 | - except: | |
| 82 | - pass | |
| 75 | + # Check if execution of wrong command fails | |
| 76 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 77 | + 'Self test of test script') | |
| 83 | 78 | |
| 84 | 79 | # Check if execution was successful |
| 85 | - self.test_assert(rc == 0, | |
| 86 | - 'Successful ctskymap execution on command line') | |
| 80 | + self.test_assert(self._execute(cmd) == 0, | |
| 81 | + 'Check successful execution from command line') | |
| 87 | 82 | |
| 88 | 83 | # Check result file |
| 89 | 84 | self._check_result_file('ctskymap_cmd1.fits') |
| ... | ... | @@ -96,15 +91,9 @@ class Test(gammalib.GPythonTestSuite): |
| 96 | 91 | ' xref=83.63 yref=22.01'+ \ |
| 97 | 92 | ' logfile="ctskymap_cmd2.log" chatter=2' |
| 98 | 93 | |
| 99 | - # Execute ctskymap, make sure we catch any exception | |
| 100 | - try: | |
| 101 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 102 | - except: | |
| 103 | - pass | |
| 104 | - | |
| 105 | 94 | # Check if execution failed |
| 106 | - self.test_assert(rc != 0, | |
| 107 | - 'Failure of ctskymap execution on command line') | |
| 95 | + self.test_assert(self._execute(cmd) != 0, | |
| 96 | + 'Check invalid input file when executed from command line') | |
| 108 | 97 | |
| 109 | 98 | # Return |
| 110 | 99 | return |
| ... | ... | @@ -112,7 +101,7 @@ class Test(gammalib.GPythonTestSuite): |
| 112 | 101 | # Test ctskymap from Python |
| 113 | 102 | def _test_python(self): |
| 114 | 103 | """ |
| 115 | - Test ctskymap from Python. | |
| 104 | + Test ctskymap from Python | |
| 116 | 105 | """ |
| 117 | 106 | # Set-up ctskymap |
| 118 | 107 | skymap = ctools.ctskymap() |
| ... | ... | @@ -144,7 +133,7 @@ class Test(gammalib.GPythonTestSuite): |
| 144 | 133 | # Check result file |
| 145 | 134 | def _check_result_file(self, filename): |
| 146 | 135 | """ |
| 147 | - Check result file. | |
| 136 | + Check result file | |
| 148 | 137 | """ |
| 149 | 138 | # Open result file |
| 150 | 139 | result = gammalib.GSkyMap(filename) | ... | ... |
test/test_cttsmap.py
| ... | ... | @@ -18,17 +18,17 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import ctools |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | -# ========================== # | |
| 26 | +# =========================== # | |
| 27 | 27 | # Test class for cttsmap tool # |
| 28 | -# ========================== # | |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 28 | +# =========================== # | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for cttsmap tool. | |
| 31 | + Test class for cttsmap tool | |
| 32 | 32 | """ |
| 33 | 33 | # Constructor |
| 34 | 34 | def __init__(self): |
| ... | ... | @@ -36,7 +36,7 @@ class Test(gammalib.GPythonTestSuite): |
| 36 | 36 | Constructor. |
| 37 | 37 | """ |
| 38 | 38 | # Call base class constructor |
| 39 | - gammalib.GPythonTestSuite.__init__(self) | |
| 39 | + test.__init__(self) | |
| 40 | 40 | |
| 41 | 41 | # Return |
| 42 | 42 | return |
| ... | ... | @@ -44,7 +44,7 @@ class Test(gammalib.GPythonTestSuite): |
| 44 | 44 | # Set test functions |
| 45 | 45 | def set(self): |
| 46 | 46 | """ |
| 47 | - Set all test functions. | |
| 47 | + Set all test functions | |
| 48 | 48 | """ |
| 49 | 49 | # Set test name |
| 50 | 50 | self.name('cttsmap') |
| ... | ... | @@ -59,13 +59,10 @@ class Test(gammalib.GPythonTestSuite): |
| 59 | 59 | # Test cttsmap on command line |
| 60 | 60 | def _test_cmd(self): |
| 61 | 61 | """ |
| 62 | - Test cttsmap on the command line. | |
| 62 | + Test cttsmap on the command line | |
| 63 | 63 | """ |
| 64 | - # Kluge to set the command (installed version has no README file) | |
| 65 | - if os.path.isfile('README.md'): | |
| 66 | - cttsmap = '../src/cttsmap/cttsmap' | |
| 67 | - else: | |
| 68 | - cttsmap = 'cttsmap' | |
| 64 | + # Set tool name | |
| 65 | + cttsmap = self._tool('cttsmap') | |
| 69 | 66 | |
| 70 | 67 | # Setup cttsmap command |
| 71 | 68 | cmd = cttsmap+' inobs="data/crab_events.fits"'+ \ |
| ... | ... | @@ -76,15 +73,13 @@ class Test(gammalib.GPythonTestSuite): |
| 76 | 73 | ' coordsys="CEL" proj="CAR" xref=83.63 yref=22.01'+ \ |
| 77 | 74 | ' logfile="cttsmap_cmd1.log" chatter=1' |
| 78 | 75 | |
| 79 | - # Execute cttsmap, make sure we catch any exception | |
| 80 | - try: | |
| 81 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 82 | - except: | |
| 83 | - pass | |
| 76 | + # Check if execution of wrong command fails | |
| 77 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 78 | + 'Self test of test script') | |
| 84 | 79 | |
| 85 | 80 | # Check if execution was successful |
| 86 | - self.test_assert(rc == 0, | |
| 87 | - 'Successful cttsmap execution on command line') | |
| 81 | + self.test_assert(self._execute(cmd) == 0, | |
| 82 | + 'Check successful execution from command line') | |
| 88 | 83 | |
| 89 | 84 | # Check result file |
| 90 | 85 | self._check_result_file('cttsmap_cmd1.fits') |
| ... | ... | @@ -98,15 +93,9 @@ class Test(gammalib.GPythonTestSuite): |
| 98 | 93 | ' coordsys="CEL" proj="CAR" xref=83.63 yref=22.01'+ \ |
| 99 | 94 | ' logfile="cttsmap_cmd2.log" chatter=2' |
| 100 | 95 | |
| 101 | - # Execute cttsmap, make sure we catch any exception | |
| 102 | - try: | |
| 103 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 104 | - except: | |
| 105 | - pass | |
| 106 | - | |
| 107 | 96 | # Check if execution failed |
| 108 | - self.test_assert(rc != 0, | |
| 109 | - 'Failure of cttsmap execution on command line') | |
| 97 | + self.test_assert(self._execute(cmd) != 0, | |
| 98 | + 'Check invalid input file when executed from command line') | |
| 110 | 99 | |
| 111 | 100 | # Return |
| 112 | 101 | return |
| ... | ... | @@ -114,7 +103,7 @@ class Test(gammalib.GPythonTestSuite): |
| 114 | 103 | # Test cttsmap from Python |
| 115 | 104 | def _test_python(self): |
| 116 | 105 | """ |
| 117 | - Test cttsmap from Python. | |
| 106 | + Test cttsmap from Python | |
| 118 | 107 | """ |
| 119 | 108 | # Set-up cttsmap |
| 120 | 109 | tsmap = ctools.cttsmap() |
| ... | ... | @@ -148,7 +137,7 @@ class Test(gammalib.GPythonTestSuite): |
| 148 | 137 | # Check result file |
| 149 | 138 | def _check_result_file(self, filename): |
| 150 | 139 | """ |
| 151 | - Check result file. | |
| 140 | + Check result file | |
| 152 | 141 | """ |
| 153 | 142 | # Open result file |
| 154 | 143 | fits = gammalib.GFits(filename) | ... | ... |
test/test_ctulimit.py
| ... | ... | @@ -18,25 +18,25 @@ |
| 18 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 19 | 19 | # |
| 20 | 20 | # ========================================================================== |
| 21 | -import os | |
| 22 | 21 | import gammalib |
| 23 | 22 | import ctools |
| 23 | +from testing import test | |
| 24 | 24 | |
| 25 | 25 | |
| 26 | 26 | # ============================ # |
| 27 | 27 | # Test class for ctulimit tool # |
| 28 | 28 | # ============================ # |
| 29 | -class Test(gammalib.GPythonTestSuite): | |
| 29 | +class Test(test): | |
| 30 | 30 | """ |
| 31 | - Test class for ctulimit tool. | |
| 31 | + Test class for ctulimit tool | |
| 32 | 32 | """ |
| 33 | 33 | # Constructor |
| 34 | 34 | def __init__(self): |
| 35 | 35 | """ |
| 36 | - Constructor. | |
| 36 | + Constructor | |
| 37 | 37 | """ |
| 38 | 38 | # Call base class constructor |
| 39 | - gammalib.GPythonTestSuite.__init__(self) | |
| 39 | + test.__init__(self) | |
| 40 | 40 | |
| 41 | 41 | # Return |
| 42 | 42 | return |
| ... | ... | @@ -44,7 +44,7 @@ class Test(gammalib.GPythonTestSuite): |
| 44 | 44 | # Set test functions |
| 45 | 45 | def set(self): |
| 46 | 46 | """ |
| 47 | - Set all test functions. | |
| 47 | + Set all test functions | |
| 48 | 48 | """ |
| 49 | 49 | # Set test name |
| 50 | 50 | self.name('ctulimit') |
| ... | ... | @@ -59,13 +59,10 @@ class Test(gammalib.GPythonTestSuite): |
| 59 | 59 | # Test ctulimit on command line |
| 60 | 60 | def _test_cmd(self): |
| 61 | 61 | """ |
| 62 | - Test ctulimit on the command line. | |
| 62 | + Test ctulimit on the command lines | |
| 63 | 63 | """ |
| 64 | - # Kluge to set the command (installed version has no README file) | |
| 65 | - if os.path.isfile('README.md'): | |
| 66 | - ctulimit = '../src/ctulimit/ctulimit' | |
| 67 | - else: | |
| 68 | - ctulimit = 'ctulimit' | |
| 64 | + # Set tool name | |
| 65 | + ctulimit = self._tool('ctulimit') | |
| 69 | 66 | |
| 70 | 67 | # Setup ctulimit command |
| 71 | 68 | cmd = ctulimit+' inobs="data/crab_events.fits"'+ \ |
| ... | ... | @@ -73,15 +70,13 @@ class Test(gammalib.GPythonTestSuite): |
| 73 | 70 | ' caldb="prod2" irf="South_0.5h"'+ \ |
| 74 | 71 | ' logfile="ctulimit_cmd1.log" chatter=1' |
| 75 | 72 | |
| 76 | - # Execute ctulimit, make sure we catch any exception | |
| 77 | - try: | |
| 78 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 79 | - except: | |
| 80 | - pass | |
| 73 | + # Check if execution of wrong command fails | |
| 74 | + self.test_assert(self._execute('command that does not exist') != 0, | |
| 75 | + 'Self test of test script') | |
| 81 | 76 | |
| 82 | 77 | # Check if execution was successful |
| 83 | - self.test_assert(rc == 0, | |
| 84 | - 'Successful ctulimit execution on command line') | |
| 78 | + self.test_assert(self._execute(cmd) == 0, | |
| 79 | + 'Check successful execution from command line') | |
| 85 | 80 | |
| 86 | 81 | # Check result file |
| 87 | 82 | self._check_result_file('ctulimit_cmd1.log') |
| ... | ... | @@ -92,15 +87,9 @@ class Test(gammalib.GPythonTestSuite): |
| 92 | 87 | ' caldb="prod2" irf="South_0.5h"'+ \ |
| 93 | 88 | ' logfile="ctulimit_cmd2.log" chatter=1' |
| 94 | 89 | |
| 95 | - # Execute ctulimit, make sure we catch any exception | |
| 96 | - try: | |
| 97 | - rc = os.system(cmd+' >/dev/null 2>&1') | |
| 98 | - except: | |
| 99 | - pass | |
| 100 | - | |
| 101 | 90 | # Check if execution failed |
| 102 | - self.test_assert(rc != 0, | |
| 103 | - 'Failure of ctulimit execution on command line') | |
| 91 | + self.test_assert(self._execute(cmd) != 0, | |
| 92 | + 'Check invalid input file when executed from command line') | |
| 104 | 93 | |
| 105 | 94 | # Return |
| 106 | 95 | return |
| ... | ... | @@ -108,7 +97,7 @@ class Test(gammalib.GPythonTestSuite): |
| 108 | 97 | # Test ctulimit from Python |
| 109 | 98 | def _test_python(self): |
| 110 | 99 | """ |
| 111 | - Test ctulimit from Python. | |
| 100 | + Test ctulimit from Python | |
| 112 | 101 | """ |
| 113 | 102 | # Set-up ctulimit |
| 114 | 103 | ulimit = ctools.ctulimit() |
| ... | ... | @@ -134,7 +123,7 @@ class Test(gammalib.GPythonTestSuite): |
| 134 | 123 | # Check result file |
| 135 | 124 | def _check_result_file(self, filename): |
| 136 | 125 | """ |
| 137 | - Check result file. | |
| 126 | + Check result file | |
| 138 | 127 | """ |
| 139 | 128 | # Return |
| 140 | 129 | return | ... | ... |
test/test_cscripts_class.py renamed to test/testing.py
| 1 | 1 | # ========================================================================== |
| 2 | -# cscripts test base class | |
| 2 | +# Python base class for unit tests | |
| 3 | 3 | # |
| 4 | 4 | # Copyright (C) 2016 Juergen Knoedlseder |
| 5 | 5 | # |
| ... | ... | @@ -21,12 +21,12 @@ import os |
| 21 | 21 | import gammalib |
| 22 | 22 | |
| 23 | 23 | |
| 24 | -# ======================================= # | |
| 25 | -# Base class for unit testing of cscripts # | |
| 26 | -# ======================================= # | |
| 27 | -class cscripts_test(gammalib.GPythonTestSuite): | |
| 24 | +# ================================ # | |
| 25 | +# Python base class for unit tests # | |
| 26 | +# ================================ # | |
| 27 | +class test(gammalib.GPythonTestSuite): | |
| 28 | 28 | """ |
| 29 | - Test class for scripts | |
| 29 | + Python base class for unit tests | |
| 30 | 30 | """ |
| 31 | 31 | |
| 32 | 32 | # Constructor |
| ... | ... | @@ -45,7 +45,7 @@ class cscripts_test(gammalib.GPythonTestSuite): |
| 45 | 45 | """ |
| 46 | 46 | Set script name |
| 47 | 47 | """ |
| 48 | - # Kluge to set the command. The installed version has no README file | |
| 48 | + # Kluge to set the command. The installed version has no README.md file | |
| 49 | 49 | if os.path.isfile('README.md'): |
| 50 | 50 | script = '../cscripts/'+name+'.py' |
| 51 | 51 | else: |
| ... | ... | @@ -54,6 +54,20 @@ class cscripts_test(gammalib.GPythonTestSuite): |
| 54 | 54 | # Return script name |
| 55 | 55 | return script |
| 56 | 56 | |
| 57 | + # Set tool name | |
| 58 | + def _tool(self, name): | |
| 59 | + """ | |
| 60 | + Set tool name | |
| 61 | + """ | |
| 62 | + # Kluge to set the command. The installed version has no README.md file | |
| 63 | + if os.path.isfile('README.md'): | |
| 64 | + tool = '../src/'+name+'/'+name | |
| 65 | + else: | |
| 66 | + tool = name | |
| 67 | + | |
| 68 | + # Return tool name | |
| 69 | + return tool | |
| 70 | + | |
| 57 | 71 | # Execute command and catch any exception |
| 58 | 72 | def _execute(self, cmd): |
| 59 | 73 | """ | ... | ... |