1 # Copyright (c) 2003-2006 Bryce "Zooko" Wilcox-O'Hearn
2 # mailto:zooko@zooko.com
4 # Permission is hereby granted, free of charge, to any person obtaining a
5 # copy of this work to deal in this work without restriction (including the
6 # rights to use, modify, distribute, sublicense, and/or sell copies)
9 Tests useful in assertion checking, prints out nicely formated messages too.
12 from humanreadable import hr
14 from twisted.python import log
16 def _assert(___cond=False, *___args, **___kwargs):
21 msgbuf.append("%s %s" % tuple(map(hr, (___args[0], type(___args[0]),))))
22 msgbuf.extend([", %s %s" % tuple(map(hr, (arg, type(arg),))) for arg in ___args[1:]])
24 msgbuf.append(", %s: %s %s" % ((___kwargs.items()[0][0],) + tuple(map(hr, (___kwargs.items()[0][1], type(___kwargs.items()[0][1]),)))))
27 msgbuf.append("%s: %s %s" % ((___kwargs.items()[0][0],) + tuple(map(hr, (___kwargs.items()[0][1], type(___kwargs.items()[0][1]),)))))
28 msgbuf.extend([", %s: %s %s" % tuple(map(hr, (k, v, type(v),))) for k, v in ___kwargs.items()[1:]])
30 raise AssertionError, "".join(msgbuf)
34 def precondition(___cond=False, *___args, **___kwargs):
38 msgbuf=["precondition", ]
39 if ___args or ___kwargs:
42 msgbuf.append("%s %s" % tuple(map(hr, (___args[0], type(___args[0]),))))
43 msgbuf.extend([", %s %s" % tuple(map(hr, (arg, type(arg),))) for arg in ___args[1:]])
45 msgbuf.append(", %s: %s %s" % ((___kwargs.items()[0][0],) + tuple(map(hr, (___kwargs.items()[0][1], type(___kwargs.items()[0][1]),)))))
48 msgbuf.append("%s: %s %s" % ((___kwargs.items()[0][0],) + tuple(map(hr, (___kwargs.items()[0][1], type(___kwargs.items()[0][1]),)))))
49 msgbuf.extend([", %s: %s %s" % tuple(map(hr, (k, v, type(v),))) for k, v in ___kwargs.items()[1:]])
51 log.msg("assertutil.precondition(): INTERNAL ERROR IN pyutil.assertutil. %s %s %s" % (type(le), repr(le), le.args,))
55 log.msg("assertutil.precondition(): INTERNAL ERROR IN pyutil.assertutil.")
59 raise AssertionError, "".join(msgbuf)
63 def postcondition(___cond=False, *___args, **___kwargs):
66 msgbuf=["postcondition", ]
67 if ___args or ___kwargs:
70 msgbuf.append("%s %s" % tuple(map(hr, (___args[0], type(___args[0]),))))
71 msgbuf.extend([", %s %s" % tuple(map(hr, (arg, type(arg),))) for arg in ___args[1:]])
73 msgbuf.append(", %s: %s %s" % ((___kwargs.items()[0][0],) + tuple(map(hr, (___kwargs.items()[0][1], type(___kwargs.items()[0][1]),)))))
76 msgbuf.append("%s: %s %s" % ((___kwargs.items()[0][0],) + tuple(map(hr, (___kwargs.items()[0][1], type(___kwargs.items()[0][1]),)))))
77 msgbuf.extend([", %s: %s %s" % tuple(map(hr, (k, v, type(v),))) for k, v in ___kwargs.items()[1:]])
79 raise AssertionError, "".join(msgbuf)