/usr/share/pyshared/Codeville/testtest.py is in codeville 0.8.0-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | """
A much simpler testing framework than PyUnit
tests a module by running all functions in it whose name starts with 'test'
a test fails if it raises an exception, otherwise it passes
functions are try_all and try_single
"""
# Written by Bram Cohen
# see LICENSE.txt for license information
import traceback
import sys
import types
def try_all(excludes = [], excluded_paths=[]):
"""
tests all imported modules
takes an optional list of module names and/or module objects to skip over.
modules from files under under any of excluded_paths are also skipped.
"""
failed = []
for modulename, module in sys.modules.items():
# skip builtins
if not hasattr(module, '__file__'):
continue
# skip modules under any of excluded_paths
if [p for p in excluded_paths if module.__file__.startswith(p)]:
continue
if modulename not in excludes and module not in excludes:
try_module(module, modulename, failed)
print_failed(failed)
def try_single(m):
"""
tests a single module
accepts either a module object or a module name in string form
"""
if type(m) == types.StringType:
modulename = m
module = __import__(m)
else:
modulename = str(m)
module = m
failed = []
try_module(module, modulename, failed)
print_failed(failed)
def try_module(module, modulename, failed):
if not hasattr(module, '__dict__'):
return
for n, func in module.__dict__.items():
if not callable(func) or n[:4] != 'test':
continue
name = modulename + '.' + n
try:
print 'trying ' + name
func()
print 'passed ' + name
except:
traceback.print_exc()
failed.append(name)
print 'failed ' + name
def print_failed(failed):
print
if len(failed) == 0:
print 'everything passed'
else:
print 'the following tests failed:'
for i in failed:
print i
|