New release (version 0.2).
[public/pyceo-broken.git] / pylib / csc / common / test.py
1 """
2 Common Test Routines
3
4 This module contains helpful functions called by each module's test suite.
5 """
6 from types import FunctionType, MethodType, ClassType, TypeType
7
8
9 class TestException(Exception):
10     """Exception class for test failures."""
11
12
13 def test(subject):
14     """Print a test message."""
15     if type(subject) in (MethodType, FunctionType, ClassType, TypeType):
16         print "testing %s()..." % subject.__name__,
17     else:
18         print "testing %s..." % subject,
19
20
21 def success():
22     """Print a success message."""
23     print "pass."
24
25
26 def assert_equal(expected, actual):
27     if expected != actual:
28         message = "Expected (%s)\nWas      (%s)" % (repr(expected), repr(actual))
29         fail(message)
30
31
32 def fail(message):
33     print "failed!"
34     raise TestException("Test failed:\n%s" % message)
35
36
37 def negative(call, args, excep, message):
38     try:
39         call(*args)
40         fail(message)
41     except excep:
42         pass