Author: bugman
Date: Tue Oct  7 16:11:38 2014
New Revision: 26190

URL: http://svn.gna.org/viewcvs/relax?rev=26190&view=rev
Log:
Big improvement for running the relax unit tests via the relax command line 
options.

The unit test module path is now accepted as a command line option.  This 
brings more capabilities
of Gary Thompson's test_suite/unit_tests/unit_test_runner.py script into the 
relax command line.
The _pipe_control/test_value unit test module path can be specified as, for 
example, one of
'test_suite.unit_tests._pipe_control.test_value', 
'test_suite/unit_tests/_pipe_control/test_value',
'_pipe_control.test_value', '_pipe_control/test_value'.  This allows individual 
modules of tests to
be run, rather than having to execute all unit tests, which is very useful for 
debugging.


Modified:
    trunk/test_suite/test_suite_runner.py
    trunk/test_suite/unit_tests/unit_test_runner.py

Modified: trunk/test_suite/test_suite_runner.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/test_suite/test_suite_runner.py?rev=26190&r1=26189&r2=26190&view=diff
==============================================================================
--- trunk/test_suite/test_suite_runner.py       (original)
+++ trunk/test_suite/test_suite_runner.py       Tue Oct  7 16:11:38 2014
@@ -231,7 +231,7 @@
             # Run the tests.
             unit_runner = 
Unit_test_runner(root_path=status.install_path+os.sep+'test_suite'+os.sep+'unit_tests')
             self.runner.category = 'unit'
-            self.unit_result = unit_runner.run(runner=self.runner)
+            self.unit_result = unit_runner.run(self.tests, runner=self.runner)
 
             # Print out a summary of the test suite.
             if summary:

Modified: trunk/test_suite/unit_tests/unit_test_runner.py
URL: 
http://svn.gna.org/viewcvs/relax/trunk/test_suite/unit_tests/unit_test_runner.py?rev=26190&r1=26189&r2=26190&view=diff
==============================================================================
--- trunk/test_suite/unit_tests/unit_test_runner.py     (original)
+++ trunk/test_suite/unit_tests/unit_test_runner.py     Tue Oct  7 16:11:38 2014
@@ -5,7 +5,7 @@
 #                         (see https://gna.org/users/varioustoxins             
#
 #                                      for contact details)                    
#
 #                                                                              
#
-# Copyright (C) 2007-2013 Edward d'Auvergne                                    
#
+# Copyright (C) 2007-2014 Edward d'Auvergne                                    
#
 #                                                                              
#
 #                                                                              
#
 # This file is part of the program relax.                                      
#
@@ -577,9 +577,11 @@
         return result
 
 
-    def run(self, runner=None):
+    def run(self, tests=None, runner=None):
         """Run a unit test or set of unit tests.
 
+        @keyword tests:     The list of system tests to perform.
+        @type tests:        list of str
         @keyword runner:    A unit test runner such as TextTestRunner.  None 
indicates use of the default unit test runner.  For an example of how to write 
a test runner see the python documentation for TextTestRunner in the python 
source.
         @type runner:       Unit test runner instance (TextTestRunner, 
BaseGUITestRunner subclass, etc.)
         @return:            A string indicating success or failure of the unit 
tests run.
@@ -598,7 +600,27 @@
             print('----------------')
             print('')
 
-        module_paths = self.paths_from_test_module(self.test_module)
+        # The test module path for individual tests.
+        if tests:
+            # Initialise the list of paths.
+            module_paths = []
+
+            # Loop over each test.
+            for test in tests:
+                # Strip out the leading 'test_suite.unit_tests.' if present.
+                test = test.replace('test_suite.unit_tests.', '')
+                test = test.replace('test_suite%sunit_tests%s' % (os.sep, 
os.sep), '')
+
+                # Replace the Python '.' separator with the system's path 
separator.
+                test = test.replace('.', os.sep)
+
+                # Append to the module path list.
+                module_paths += 
self.paths_from_test_module(self.test_module+os.sep+test)
+
+        # The test module path for all tests.
+        else:
+            module_paths = self.paths_from_test_module(self.test_module)
+
         if self.verbose:
             print("%-22s %s" % ('Test module:', self.test_module))
             print("%-22s %s" % ('Root path', self.root_path))


_______________________________________________
relax (http://www.nmr-relax.com)

This is the relax-commits mailing list
[email protected]

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-commits

Reply via email to