#! /usr/bin/env python """ Runs a battery of unit tests on PyNEST """ import sys, os os.environ['DELAY_PYNEST_INIT'] = '1' def myprint(msg): sys.stderr.write(msg) sys.stderr.flush() sys.stdout.write(msg) sys.stdout.flush() def _setup(arg): if hasattr(arg,'_testMethodName'): MethodName = str(arg._testMethodName) elif hasattr(arg,'__testMethodName'): MethodName = str(arg.__testMethodName) else: try: MethodName = str(arg).split('(')[0].split(' ')[0] except: MethodName = str(arg) sys.stderr.write(" Running test " + MethodName + "...\n") myprint("\n") myprint("Phase 6: Running PyNEST tests.\n") myprint("------------------------------\n") import nest nest.init(["--verbosity=WARNING", "--quiet"]) import nest.topology import nest.tests import nest.topology.tests import unittest # The function setUp() is called before each test run, # it is used here to print the status. unittest.TestCase.setUp = _setup # The testsuite is initialized w/ stdout. That goes into the logfile. runner = unittest.TextTestRunner(verbosity=2, stream=sys.stdout) result = runner.run(nest.tests.suite()) result_topo = runner.run(nest.topology.tests.suite()) # We return the numbers of tests via a temporaty file file_handle = file("pynest_test_numbers.log", "w") file_handle.write(str(result.testsRun + result_topo.testsRun) + " ") file_handle.write(str(len(result.failures)+len(result.errors) + len(result_topo.failures)+len(result_topo.errors)) + " ") file_handle.write(str(result.testsRun + result_topo.testsRun - len(result.failures) - len(result.errors) - len(result_topo.failures) - len(result_topo.errors)) + "\n") file_handle.close()