Structuring and added test code
authorAnders Henja <anders@baltrad.eu>
Tue, 15 Nov 2011 08:34:51 +0000 (09:34 +0100)
committerAnders Henja <anders@baltrad.eu>
Tue, 15 Nov 2011 08:34:51 +0000 (09:34 +0100)
.gitignore [new file with mode: 0644]
pybeamb/pybeamblockage.c
test/lib/xmlrunner.py [new file with mode: 0644]
test/pytest/BeambFullTestSuite.py [new file with mode: 0644]
test/pytest/BeambTestSuite.py [new file with mode: 0644]
test/pytest/BeambXmlTestSuite.py [new file with mode: 0644]
test/pytest/Makefile [new file with mode: 0644]
test/pytest/PyBeamBlockageTest.py [new file with mode: 0644]
tools/ci_test.sh
tools/run_python_script.sh
tools/test_beamb.sh

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..1b45321
--- /dev/null
@@ -0,0 +1,9 @@
+*~
+*.so
+*.a
+.cproject
+.project
+.pydevproject
+*.pyc
+Debug
+
index f2c4b36..1c5d092 100644 (file)
@@ -148,6 +148,7 @@ static PyObject* _pybeamblockage_new(PyObject* self, PyObject* args)
  */
 static struct PyMethodDef _pybeamblockage_methods[] =
 {
+  {"topo30dir", NULL},
   {NULL, NULL} /* sentinel */
 };
 
@@ -158,6 +159,15 @@ static PyObject* _pybeamblockage_getattr(PyBeamBlockage* self, char* name)
 {
   PyObject* res = NULL;
 
+  if (strcmp("topo30dir", name) == 0) {
+    const char* str = BeamBlockage_getTopo30Directory(self->beamb);
+    if (str != NULL) {
+      return PyString_FromString(str);
+    } else {
+      Py_RETURN_NONE;
+    }
+  }
+
   res = Py_FindMethod(_pybeamblockage_methods, (PyObject*) self, name);
   if (res)
     return res;
@@ -177,7 +187,19 @@ static int _pybeamblockage_setattr(PyBeamBlockage* self, char* name, PyObject* v
     goto done;
   }
 
-  raiseException_gotoTag(done, PyExc_AttributeError, name);
+  if (strcmp("topo30dir", name) == 0) {
+    if (PyString_Check(val)) {
+      if (!BeamBlockage_setTopo30Directory(self->beamb, PyString_AsString(val))) {
+        raiseException_gotoTag(done, PyExc_ValueError, "topo30dir must be a string or None");
+      }
+    } else if (val == Py_None) {
+      BeamBlockage_setTopo30Directory(self->beamb, NULL);
+    } else {
+      raiseException_gotoTag(done, PyExc_ValueError, "topo30dir must be a string or None");
+    }
+  } else {
+    raiseException_gotoTag(done, PyExc_AttributeError, name);
+  }
 
   result = 0;
 done:
diff --git a/test/lib/xmlrunner.py b/test/lib/xmlrunner.py
new file mode 100644 (file)
index 0000000..a4fed9f
--- /dev/null
@@ -0,0 +1,378 @@
+"""
+XML Test Runner for PyUnit
+"""
+
+# Written by Sebastian Rittau <srittau@jroger.in-berlin.de> and placed in
+# the Public Domain. With contributions by Paolo Borelli.
+
+__revision__ = "$Id: /private/python/stdlib/xmlrunner.py 16654 2007-11-12T12:46:35.368945Z srittau  $"
+
+import os.path
+import re
+import sys
+import time
+import traceback
+import unittest
+from StringIO import StringIO
+from xml.sax.saxutils import escape
+
+from StringIO import StringIO
+
+
+class _TestInfo(object):
+
+    """Information about a particular test.
+    
+    Used by _XMLTestResult.
+    
+    """
+
+    def __init__(self, test, time):
+        (self._class, self._method) = test.id().rsplit(".", 1)
+        self._time = time
+        self._error = None
+        self._failure = None
+
+    @staticmethod
+    def create_success(test, time):
+        """Create a _TestInfo instance for a successful test."""
+        return _TestInfo(test, time)
+
+    @staticmethod
+    def create_failure(test, time, failure):
+        """Create a _TestInfo instance for a failed test."""
+        info = _TestInfo(test, time)
+        info._failure = failure
+        return info
+
+    @staticmethod
+    def create_error(test, time, error):
+        """Create a _TestInfo instance for an erroneous test."""
+        info = _TestInfo(test, time)
+        info._error = error
+        return info
+
+    def print_report(self, stream):
+        """Print information about this test case in XML format to the
+        supplied stream.
+
+        """
+        stream.write('  <testcase classname="%(class)s" name="%(method)s" time="%(time).4f">' % \
+            {
+                "class": self._class,
+                "method": self._method,
+                "time": self._time,
+            })
+        if self._failure != None:
+            self._print_error(stream, 'failure', self._failure)
+        if self._error != None:
+            self._print_error(stream, 'error', self._error)
+        stream.write('</testcase>\n')
+
+    def _print_error(self, stream, tagname, error):
+        """Print information from a failure or error to the supplied stream."""
+        text = escape(str(error[1]))
+        stream.write('\n')
+        stream.write('    <%s type="%s">%s\n' \
+            % (tagname, str(error[0]), text))
+        tb_stream = StringIO()
+        traceback.print_tb(error[2], None, tb_stream)
+        stream.write(escape(tb_stream.getvalue()))
+        stream.write('    </%s>\n' % tagname)
+        stream.write('  ')
+
+
+class _XMLTestResult(unittest.TestResult):
+
+    """A test result class that stores result as XML.
+
+    Used by XMLTestRunner.
+
+    """
+
+    def __init__(self, classname):
+        unittest.TestResult.__init__(self)
+        self._test_name = classname
+        self._start_time = None
+        self._tests = []
+        self._error = None
+        self._failure = None
+
+    def startTest(self, test):
+        unittest.TestResult.startTest(self, test)
+        self._error = None
+        self._failure = None
+        self._start_time = time.time()
+
+    def stopTest(self, test):
+        time_taken = time.time() - self._start_time
+        unittest.TestResult.stopTest(self, test)
+        if self._error:
+            info = _TestInfo.create_error(test, time_taken, self._error)
+        elif self._failure:
+            info = _TestInfo.create_failure(test, time_taken, self._failure)
+        else:
+            info = _TestInfo.create_success(test, time_taken)
+        self._tests.append(info)
+
+    def addError(self, test, err):
+        unittest.TestResult.addError(self, test, err)
+        self._error = err
+
+    def addFailure(self, test, err):
+        unittest.TestResult.addFailure(self, test, err)
+        self._failure = err
+
+    def print_report(self, stream, time_taken, out, err):
+        """Prints the XML report to the supplied stream.
+        
+        The time the tests took to perform as well as the captured standard
+        output and standard error streams must be passed in.a
+
+        """
+        stream.write('<testsuite errors="%(e)d" failures="%(f)d" ' % \
+            { "e": len(self.errors), "f": len(self.failures) })
+        stream.write('name="%(n)s" tests="%(t)d" time="%(time).3f">\n' % \
+            {
+                "n": self._test_name,
+                "t": self.testsRun,
+                "time": time_taken,
+            })
+        for info in self._tests:
+            info.print_report(stream)
+        stream.write('  <system-out><![CDATA[%s]]></system-out>\n' % out)
+        stream.write('  <system-err><![CDATA[%s]]></system-err>\n' % err)
+        stream.write('</testsuite>\n')
+
+
+class XMLTestRunner(object):
+
+    """A test runner that stores results in XML format compatible with JUnit.
+
+    XMLTestRunner(stream=None) -> XML test runner
+
+    The XML file is written to the supplied stream. If stream is None, the
+    results are stored in a file called TEST-<module>.<class>.xml in the
+    current working directory (if not overridden with the path property),
+    where <module> and <class> are the module and class name of the test class.
+
+    """
+
+    def __init__(self, stream=None):
+        self._stream = stream
+        self._path = "."
+
+    def run(self, test):
+        """Run the given test case or test suite."""
+        class_ = test.__class__
+        classname = class_.__module__ + "." + class_.__name__
+        if self._stream == None:
+            filename = "TEST-%s.xml" % classname
+            stream = file(os.path.join(self._path, filename), "w")
+            stream.write('<?xml version="1.0" encoding="utf-8"?>\n')
+        else:
+            stream = self._stream
+
+        result = _XMLTestResult(classname)
+        start_time = time.time()
+
+        # TODO: Python 2.5: Use the with statement
+        old_stdout = sys.stdout
+        old_stderr = sys.stderr
+        sys.stdout = StringIO()
+        sys.stderr = StringIO()
+
+        try:
+            test(result)
+            try:
+                out_s = sys.stdout.getvalue()
+            except AttributeError:
+                out_s = ""
+            try:
+                err_s = sys.stderr.getvalue()
+            except AttributeError:
+                err_s = ""
+        finally:
+            sys.stdout = old_stdout
+            sys.stderr = old_stderr
+
+        time_taken = time.time() - start_time
+        result.print_report(stream, time_taken, out_s, err_s)
+        if self._stream == None:
+            stream.close()
+
+        return result
+
+    def _set_path(self, path):
+        self._path = path
+
+    path = property(lambda self: self._path, _set_path, None,
+            """The path where the XML files are stored.
+            
+            This property is ignored when the XML file is written to a file
+            stream.""")
+
+
+class XMLTestRunnerTest(unittest.TestCase):
+    def setUp(self):
+        self._stream = StringIO()
+
+    def _try_test_run(self, test_class, expected):
+
+        """Run the test suite against the supplied test class and compare the
+        XML result against the expected XML string. Fail if the expected
+        string doesn't match the actual string. All time attribute in the
+        expected string should have the value "0.000". All error and failure
+        messages are reduced to "Foobar".
+
+        """
+
+        runner = XMLTestRunner(self._stream)
+        runner.run(unittest.makeSuite(test_class))
+
+        got = self._stream.getvalue()
+        # Replace all time="X.YYY" attributes by time="0.000" to enable a
+        # simple string comparison.
+        got = re.sub(r'time="\d+\.\d+"', 'time="0.000"', got)
+        # Likewise, replace all failure and error messages by a simple "Foobar"
+        # string.
+        got = re.sub(r'(?s)<failure (.*?)>.*?</failure>', r'<failure \1>Foobar</failure>', got)
+        got = re.sub(r'(?s)<error (.*?)>.*?</error>', r'<error \1>Foobar</error>', got)
+
+        self.assertEqual(expected, got)
+
+    def test_no_tests(self):
+        """Regression test: Check whether a test run without any tests
+        matches a previous run.
+        
+        """
+        class TestTest(unittest.TestCase):
+            pass
+        self._try_test_run(TestTest, """<testsuite errors="0" failures="0" name="unittest.TestSuite" tests="0" time="0.000">
+  <system-out><![CDATA[]]></system-out>
+  <system-err><![CDATA[]]></system-err>
+</testsuite>
+""")
+
+    def test_success(self):
+        """Regression test: Check whether a test run with a successful test
+        matches a previous run.
+        
+        """
+        class TestTest(unittest.TestCase):
+            def test_foo(self):
+                pass
+        self._try_test_run(TestTest, """<testsuite errors="0" failures="0" name="unittest.TestSuite" tests="1" time="0.000">
+  <testcase classname="__main__.TestTest" name="test_foo" time="0.000"></testcase>
+  <system-out><![CDATA[]]></system-out>
+  <system-err><![CDATA[]]></system-err>
+</testsuite>
+""")
+
+    def test_failure(self):
+        """Regression test: Check whether a test run with a failing test
+        matches a previous run.
+        
+        """
+        class TestTest(unittest.TestCase):
+            def test_foo(self):
+                self.assert_(False)
+        self._try_test_run(TestTest, """<testsuite errors="0" failures="1" name="unittest.TestSuite" tests="1" time="0.000">
+  <testcase classname="__main__.TestTest" name="test_foo" time="0.000">
+    <failure type="exceptions.AssertionError">Foobar</failure>
+  </testcase>
+  <system-out><![CDATA[]]></system-out>
+  <system-err><![CDATA[]]></system-err>
+</testsuite>
+""")
+
+    def test_error(self):
+        """Regression test: Check whether a test run with a erroneous test
+        matches a previous run.
+        
+        """
+        class TestTest(unittest.TestCase):
+            def test_foo(self):
+                raise IndexError()
+        self._try_test_run(TestTest, """<testsuite errors="1" failures="0" name="unittest.TestSuite" tests="1" time="0.000">
+  <testcase classname="__main__.TestTest" name="test_foo" time="0.000">
+    <error type="exceptions.IndexError">Foobar</error>
+  </testcase>
+  <system-out><![CDATA[]]></system-out>
+  <system-err><![CDATA[]]></system-err>
+</testsuite>
+""")
+
+    def test_stdout_capture(self):
+        """Regression test: Check whether a test run with output to stdout
+        matches a previous run.
+        
+        """
+        class TestTest(unittest.TestCase):
+            def test_foo(self):
+                print "Test"
+        self._try_test_run(TestTest, """<testsuite errors="0" failures="0" name="unittest.TestSuite" tests="1" time="0.000">
+  <testcase classname="__main__.TestTest" name="test_foo" time="0.000"></testcase>
+  <system-out><![CDATA[Test
+]]></system-out>
+  <system-err><![CDATA[]]></system-err>
+</testsuite>
+""")
+
+    def test_stderr_capture(self):
+        """Regression test: Check whether a test run with output to stderr
+        matches a previous run.
+        
+        """
+        class TestTest(unittest.TestCase):
+            def test_foo(self):
+                print >>sys.stderr, "Test"
+        self._try_test_run(TestTest, """<testsuite errors="0" failures="0" name="unittest.TestSuite" tests="1" time="0.000">
+  <testcase classname="__main__.TestTest" name="test_foo" time="0.000"></testcase>
+  <system-out><![CDATA[]]></system-out>
+  <system-err><![CDATA[Test
+]]></system-err>
+</testsuite>
+""")
+
+    class NullStream(object):
+        """A file-like object that discards everything written to it."""
+        def write(self, buffer):
+            pass
+
+    def test_unittests_changing_stdout(self):
+        """Check whether the XMLTestRunner recovers gracefully from unit tests
+        that change stdout, but don't change it back properly.
+
+        """
+        class TestTest(unittest.TestCase):
+            def test_foo(self):
+                sys.stdout = XMLTestRunnerTest.NullStream()
+
+        runner = XMLTestRunner(self._stream)
+        runner.run(unittest.makeSuite(TestTest))
+
+    def test_unittests_changing_stderr(self):
+        """Check whether the XMLTestRunner recovers gracefully from unit tests
+        that change stderr, but don't change it back properly.
+
+        """
+        class TestTest(unittest.TestCase):
+            def test_foo(self):
+                sys.stderr = XMLTestRunnerTest.NullStream()
+
+        runner = XMLTestRunner(self._stream)
+        runner.run(unittest.makeSuite(TestTest))
+
+
+class XMLTestProgram(unittest.TestProgram):
+    def runTests(self):
+        if self.testRunner is None:
+            self.testRunner = XMLTestRunner()
+        unittest.TestProgram.runTests(self)
+
+main = XMLTestProgram
+
+
+if __name__ == "__main__":
+    main(module=None)
diff --git a/test/pytest/BeambFullTestSuite.py b/test/pytest/BeambFullTestSuite.py
new file mode 100644 (file)
index 0000000..7d93aee
--- /dev/null
@@ -0,0 +1,32 @@
+'''
+Copyright (C) 2011 Swedish Meteorological and Hydrological Institute, SMHI,
+
+This file is part of beamb.
+
+beamb is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+beamb is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with beamb.  If not, see <http://www.gnu.org/licenses/>.
+------------------------------------------------------------------------*/
+
+Test suite for beamb
+
+@file
+@author Anders Henja (Swedish Meteorological and Hydrological Institute, SMHI)
+@date 2011-11-15
+'''
+import unittest
+
+from BeambTestSuite import *
+
+if __name__ == "__main__":
+  unittest.main()
+  
\ No newline at end of file
diff --git a/test/pytest/BeambTestSuite.py b/test/pytest/BeambTestSuite.py
new file mode 100644 (file)
index 0000000..fb38ee5
--- /dev/null
@@ -0,0 +1,32 @@
+'''
+Copyright (C) 2011 Swedish Meteorological and Hydrological Institute, SMHI,
+
+This file is part of beamb.
+
+beamb is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+beamb is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with beamb.  If not, see <http://www.gnu.org/licenses/>.
+------------------------------------------------------------------------*/
+
+Test suite for beamb
+
+@file
+@author Anders Henja (Swedish Meteorological and Hydrological Institute, SMHI)
+@date 2011-11-15
+'''
+import unittest
+
+from PyBeamBlockageTest import *
+
+if __name__ == "__main__":
+  unittest.main()
+
diff --git a/test/pytest/BeambXmlTestSuite.py b/test/pytest/BeambXmlTestSuite.py
new file mode 100644 (file)
index 0000000..98d417d
--- /dev/null
@@ -0,0 +1,31 @@
+'''
+Copyright (C) 2011 Swedish Meteorological and Hydrological Institute, SMHI,
+
+This file is part of beamb.
+
+beamb is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+beamb is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with beamb.  If not, see <http://www.gnu.org/licenses/>.
+------------------------------------------------------------------------*/
+
+Test suite for beamb
+
+@file
+@author Anders Henja (Swedish Meteorological and Hydrological Institute, SMHI)
+@date 2011-11-15
+'''
+import xmlrunner
+
+from BeambFullTestSuite import *
+
+if __name__ == "__main__":
+  xmlrunner.main()
\ No newline at end of file
diff --git a/test/pytest/Makefile b/test/pytest/Makefile
new file mode 100644 (file)
index 0000000..44ce058
--- /dev/null
@@ -0,0 +1,33 @@
+###########################################################################
+# Copyright (C) 2011 Swedish Meteorological and Hydrological Institute, SMHI,
+#
+# This file is part of beamb.
+#
+# beamb is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# beamb is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License for more details.
+# 
+# You should have received a copy of the GNU Lesser General Public License
+# along with beamb.  If not, see <http://www.gnu.org/licenses/>.
+# ------------------------------------------------------------------------
+# 
+# pytest targets
+# @file
+# @author Anders Henja (Swedish Meteorological and Hydrological Institute, SMHI)
+# @date 2011-11-15
+###########################################################################
+
+.PHONY:clean
+clean:
+       @\rm -f *~
+        
+.PHONY:distclean
+distclean: clean
+       @\rm -f *.pyc
+
diff --git a/test/pytest/PyBeamBlockageTest.py b/test/pytest/PyBeamBlockageTest.py
new file mode 100644 (file)
index 0000000..751963e
--- /dev/null
@@ -0,0 +1,49 @@
+'''
+Copyright (C) 2011 Swedish Meteorological and Hydrological Institute, SMHI,
+
+This file is part of beamb.
+
+beamb is free software: you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+beamb is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with beamb.  If not, see <http://www.gnu.org/licenses/>.
+------------------------------------------------------------------------*/
+
+BeamBlockage tests
+
+@file
+@author Anders Henja (Swedish Meteorological and Hydrological Institute, SMHI)
+@date 2011-11-15
+'''
+import unittest
+
+import _raveio
+import _beamblockage
+import os, string
+import _rave
+
+class PyBeamBlockageTest(unittest.TestCase):
+  def setUp(self):
+    pass    
+
+  def tearDown(self):
+    pass
+  
+  def testNew(self):
+    a = _beamblockage.new()
+    self.assertNotEqual(-1, string.find(`type(a)`, "BeamBlockageCore"))
+
+  def testTopo30(self):
+    pass
+  
+if __name__ == "__main__":
+  #import sys;sys.argv = ['', 'Test.testName']
+  unittest.main()
\ No newline at end of file
index abd0035..3db24c2 100755 (executable)
@@ -14,5 +14,5 @@
 SCRFILE=`python -c "import os;print os.path.abspath(\"$0\")"`
 SCRIPTPATH=`dirname "$SCRFILE"`
 
-"$SCRIPTPATH/run_python_script.sh" "${SCRIPTPATH}/../test/pytest/RopoXmlTestSuite.py" "${SCRIPTPATH}/../test/pytest"
+"$SCRIPTPATH/run_python_script.sh" "${SCRIPTPATH}/../test/pytest/BeambXmlTestSuite.py" "${SCRIPTPATH}/../test/pytest"
 exit $?
index 83369c1..d3f5a6b 100755 (executable)
@@ -36,9 +36,9 @@ HLHDF_LDPATH=`fgrep HLHDF_LIB_DIR "${DEF_MK_FILE}" | sed -e"s/\(HLHDF_LIB_DIR=[
 
 BNAME=`python -c 'from distutils import util; import sys; print "lib.%s-%s" % (util.get_platform(), sys.version[0:3])'`
 
-RBPATH="${SCRIPTPATH}/../pyropo"
+RBPATH="${SCRIPTPATH}/../pybeamb"
 RAVE_LDPATH="${RAVE_ROOT_DIR}/lib"
-RACK_LDPATH="${SCRIPTPATH}/../ropo"
+RACK_LDPATH="${SCRIPTPATH}/../lib"
 XRUNNERPATH="${SCRIPTPATH}/../test/lib"
 
 # Special hack for mac osx.
@@ -66,12 +66,12 @@ else
   fi
 fi
 
-export RACKPATH="${RAVE_ROOT_DIR}/Lib:${HLHDF_LDPATH}:${RBPATH}:${XRUNNERPATH}"
+export BEAMBPATH="${RAVE_ROOT_DIR}/Lib:${HLHDF_LDPATH}:${RBPATH}:${XRUNNERPATH}"
 
 if test "${PYTHONPATH}" != ""; then
-  export PYTHONPATH="${RACKPATH}:${PYTHONPATH}"
+  export PYTHONPATH="${BEAMBPATH}:${PYTHONPATH}"
 else
-  export PYTHONPATH="${RACKPATH}"
+  export PYTHONPATH="${BEAMBPATH}"
 fi
 
 # Syntax: run_python_script <pyscript> [<dir> - if script should be executed in a particular directory]
index 9486413..0de6a56 100755 (executable)
@@ -15,10 +15,10 @@ SCRIPTPATH=`dirname "$SCRFILE"`
 RES=255
 
 if [ $# -gt 0 -a "$1" = "alltest" ]; then
-  "$SCRIPTPATH/run_python_script.sh" "${SCRIPTPATH}/../test/pytest/RopoFullTestSuite.py" "${SCRIPTPATH}/../test/pytest"
+  "$SCRIPTPATH/run_python_script.sh" "${SCRIPTPATH}/../test/pytest/BeambFullTestSuite.py" "${SCRIPTPATH}/../test/pytest"
   RES=$?
 else
-  "$SCRIPTPATH/run_python_script.sh" "${SCRIPTPATH}/../test/pytest/RopoTestSuite.py" "${SCRIPTPATH}/../test/pytest"
+  "$SCRIPTPATH/run_python_script.sh" "${SCRIPTPATH}/../test/pytest/BeambTestSuite.py" "${SCRIPTPATH}/../test/pytest"
   RES=$?
 fi