Commit b28ac8301f17e0cf3e8639c9a806a832eba31ebf

Authored by Jürgen Knödlseder
1 parent 42e375b0

Use testing.py base class for unit testing

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
... ... @@ -31,6 +31,7 @@ if WITH_PYTHON
31 31  
32 32 # Test scripts to be distributed in $(pyexecdir)/ctools/tests
33 33 testscripts = ctools/tests/__init__.py \
  34 + ../test/testing.py \
34 35 ../test/test_python_ctools.py \
35 36 ../test/test_ctobssim.py \
36 37 ../test/test_ctselect.py \
... ...
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 """
... ...