Author: varioustoxins Date: Wed Nov 8 11:15:47 2006 New Revision: 2774 URL: http://svn.gna.org/viewcvs/relax?rev=2774&view=rev Log: initial checkin of a unit test runner note this version only runs one test test_float.py! Added: branches/test_suite/test_suite/unit_tests/unit_test_runner.py Added: branches/test_suite/test_suite/unit_tests/unit_test_runner.py URL: http://svn.gna.org/viewcvs/relax/branches/test_suite/test_suite/unit_tests/unit_test_runner.py?rev=2774&view=auto ============================================================================== --- branches/test_suite/test_suite/unit_tests/unit_test_runner.py (added) +++ branches/test_suite/test_suite/unit_tests/unit_test_runner.py Wed Nov 8 11:15:47 2006 @@ -1,0 +1,40 @@ +import os,re,unittest,string,sys + +class TestFinder: + pattern = re.compile('test.*\.py$') + suite = unittest.TestSuite() + def __init__(self,rootPath=None): + self.rootPath = rootPath + if self.rootPath == None: + self.rootPath = os.getcwd() + def importClass(self,name): + mod = __import__(name) + components = name.split('.') + for comp in components[1:]: + mod = getattr(mod, comp) + return mod + + def scanPaths(self,path=None): + for (dirpath, dirnames, filenames) in os.walk(self.rootPath): + print dirpath, dirnames, filenames + for filename in filenames: + if self.pattern.match(filename): + moduleName = os.path.splitext(filename)[0] + className = string.upper(moduleName[0]) + moduleName[1:] + module = __import__ (moduleName) + clazz = getattr(module,className) + + + self.suite = unittest.TestLoader().loadTestsFromTestCase(clazz) + # + def run(self): + runner = unittest.TextTestRunner() + runner.run(self.suite) + +class run_unit_tests(object): + def __init__(self,test_directory=None): + pass +if __name__ == '__main__': + finder = TestFinder() + finder.scanPaths() + finder.run()