def run_tests(self, test_labels, verbosity=1, interactive=True, extra_tests=[]): coveragemodules = getattr(settings, 'COVERAGE_MODULES', []) if coveragemodules: coverage.start() self.setup_test_environment() suite = self.build_suite(test_labels, extra_tests) old_config = self.setup_databases() result = self.run_suite(suite) if coveragemodules: coverage.stop() coveragedir = getattr(settings, 'COVERAGE_DIR', './build/coverage') if not os.path.exists(coveragedir): os.makedirs(coveragedir) modules = [] for module_string in coveragemodules: module = __import__(module_string, globals(), locals(), [""]) modules.append(module) f,s,m,mf = coverage.analysis(module) fp = file(os.path.join(coveragedir, module_string + ".html"), "wb") colorize.colorize_file(f, outstream=fp, not_covered=mf) fp.close() coverage.report(modules, show_missing=0) coverage.erase() self.teardown_databases(old_config) self.teardown_test_environment() return len(result.failures) + len(result.errors)
def runTests(testModules=None, profileOut=None, coverageOutDir=None): if coverageOutDir is not None: if not os.path.exists(coverageOutDir): os.makedirs(coverageOutDir) coverage.erase() coverage.start() alltests = unittest.TestLoader().loadTestsFromNames(testModules) if profileOut is not None: results = Profiler().profile(alltests) results.sort() results.reverse() out = open(profileOut, 'w') for result in results: out.write("%s \t%3.6f\n" % (result[1], result[0])) print "unittest profiling information written in " + profileOut out.close() else: # if we don't add this else the tests are run twice unittest.TextTestRunner().run(alltests) if coverageOutDir is not None: coverage.stop() modules = glob('../*.py') #modules.remove('../__init__.py') for module in modules: f, s, m, mf = coverage.analysis(module) out = file(join(coverageOutDir, os.path.basename(f) + '.html'), 'wb') colorize.colorize_file(f, outstream=out, not_covered=mf) out.close() print coverageReportTxt = file(join(coverageOutDir, "coverage.txt"), 'w') coverage.report(modules, show_missing=False, omit_prefixes=['__'], file=coverageReportTxt) coverageReportTxt.close() coverage.report(modules, show_missing=False, omit_prefixes=['__']) coverage.erase() coverageReportTxt.close() print print "Coverage information updated in " + coverageOutDir print import webbrowser webbrowser.open('file://' + join(getcwd(), coverageOutDir))
def runTests(testModules=None, profileOut=None, coverageOutDir=None): if coverageOutDir is not None: if not os.path.exists(coverageOutDir): os.makedirs(coverageOutDir) coverage.erase() coverage.start() alltests = unittest.TestLoader().loadTestsFromNames(testModules) if profileOut is not None: results = Profiler().profile(alltests) results.sort() results.reverse() out = open(profileOut, 'w') for result in results: out.write("%s \t%3.6f\n" % (result[1], result[0])) print "unittest profiling information written in " + profileOut out.close() else: # if we don't add this else the tests are run twice unittest.TextTestRunner().run(alltests) if coverageOutDir is not None: coverage.stop() modules = glob('../pytof/*.py') modules.remove('../pytof/__init__.py') for module in modules: f, s, m, mf = coverage.analysis(module) out = file(join(coverageOutDir, os.path.basename(f)+'.html'), 'wb') colorize.colorize_file(f, outstream=out, not_covered=mf) out.close() print coverageReportTxt = file(join(coverageOutDir, "coverage.txt"), 'w') coverage.report(modules, show_missing=False, omit_prefixes=['__'], file=coverageReportTxt) coverageReportTxt.close() coverage.report(modules, show_missing=False, omit_prefixes=['__']) coverage.erase() coverageReportTxt.close() print print "Coverage information updated in " + coverageOutDir print import webbrowser webbrowser.open('file://' + join(getcwd(), coverageOutDir))
def run_tests(self, test_labels, verbosity=1, interactive=True, extra_tests=[]): coveragemodules = getattr(settings, 'COVERAGE_MODULES', []) if coveragemodules: coverage.start() self.setup_test_environment() suite = self.build_suite(test_labels, extra_tests) old_config = self.setup_databases() result = self.run_suite(suite) if coveragemodules: coverage.stop() coveragedir = getattr(settings, 'COVERAGE_DIR', './build/coverage') if not os.path.exists(coveragedir): os.makedirs(coveragedir) modules = [] for module_string in coveragemodules: module = __import__(module_string, globals(), locals(), [""]) modules.append(module) f, s, m, mf = coverage.analysis(module) fp = file(os.path.join(coveragedir, module_string + ".html"), "wb") colorize.colorize_file(f, outstream=fp, not_covered=mf) fp.close() coverage.report(modules, show_missing=0) coverage.erase() self.teardown_databases(old_config) self.teardown_test_environment() return len(result.failures) + len(result.errors)
from distutils.core import setup import py2exe, os, shutil import sys sys.path.append('../../dbconfig') py = "pyndexer" desc = "Python Public Dropbox Indexer" ver = "1.1.1" p2e_opts = dict( bundle_files=1, compressed=1, optimize=2, ascii=1, packages=["encodings"], dist_dir=".", includes=["dbconfig"], dll_excludes=["msvcr71.dll"], ) setup(name=py, version=ver, description=desc, zipfile=None, console=[dict(script=py+'.py', dest_base=py)], options=dict(py2exe=p2e_opts),) os.system('upx %s.exe' % py) import colorize colorize.colorize_file('%s.py' % py, file('%s.html' % py,'w')) try: shutil.rmtree('build/') except: pass
test_runner = testprogram.CgitbTextTestRunner() prog = testprogram.TestProgram( MODULE_NAMES, testRunner=test_runner, localServerProcess=testprogram.TwistedServerProcess(), ) result = prog.runTests() if run_coverage: # HTML coverage report import colorize try: os.mkdir("coverage") except OSError: pass private_modules = glob.glob("mechanize/_*.py") private_modules.remove("mechanize/__init__.py") for module_filename in private_modules: module_name = module_filename.replace("/", ".")[:-3] print module_name module = sys.modules[module_name] f, s, m, mf = coverage.analysis(module) fo = open(os.path.join('coverage', os.path.basename(f)+'.html'), 'wb') colorize.colorize_file(f, outstream=fo, not_covered=mf) fo.close() coverage.report(module) #print coverage.analysis(module) # XXX exit status is wrong -- does not take account of doctests sys.exit(not result.wasSuccessful())
prog = testprogram.TestProgram( MODULE_NAMES, testRunner=test_runner, localServerProcess=testprogram.TwistedServerProcess(), ) result = prog.runTests() if run_coverage: # HTML coverage report import colorize try: os.mkdir("coverage") except OSError: pass private_modules = glob.glob("mechanize/_*.py") private_modules.remove("mechanize/__init__.py") for module_filename in private_modules: module_name = module_filename.replace("/", ".")[:-3] print module_name module = sys.modules[module_name] f, s, m, mf = coverage.analysis(module) fo = open(os.path.join('coverage', os.path.basename(f) + '.html'), 'wb') colorize.colorize_file(f, outstream=fo, not_covered=mf) fo.close() coverage.report(module) #print coverage.analysis(module) # XXX exit status is wrong -- does not take account of doctests sys.exit(not result.wasSuccessful())