]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blob - src/allmydata/util/assertutil.py
revert previous commit to fix attribution (vanity)
[tahoe-lafs/tahoe-lafs.git] / src / allmydata / util / assertutil.py
1 """
2 Tests useful in assertion checking, prints out nicely formated messages too.
3 """
4
5 from allmydata.util.humanreadable import hr
6
7 def _assert(___cond=False, *___args, **___kwargs):
8     if ___cond:
9         return True
10     msgbuf=[]
11     if ___args:
12         msgbuf.append("%s %s" % tuple(map(hr, (___args[0], type(___args[0]),))))
13         msgbuf.extend([", %s %s" % tuple(map(hr, (arg, type(arg),))) for arg in ___args[1:]])
14         if ___kwargs:
15             msgbuf.append(", %s: %s %s" % ((___kwargs.items()[0][0],) + tuple(map(hr, (___kwargs.items()[0][1], type(___kwargs.items()[0][1]),)))))
16     else:
17         if ___kwargs:
18             msgbuf.append("%s: %s %s" % ((___kwargs.items()[0][0],) + tuple(map(hr, (___kwargs.items()[0][1], type(___kwargs.items()[0][1]),)))))
19     msgbuf.extend([", %s: %s %s" % tuple(map(hr, (k, v, type(v),))) for k, v in ___kwargs.items()[1:]])
20
21     raise AssertionError, "".join(msgbuf)
22
23 def precondition(___cond=False, *___args, **___kwargs):
24     if ___cond:
25         return True
26     msgbuf=["precondition", ]
27     if ___args or ___kwargs:
28         msgbuf.append(": ")
29     if ___args:
30         msgbuf.append("%s %s" % tuple(map(hr, (___args[0], type(___args[0]),))))
31         msgbuf.extend([", %s %s" % tuple(map(hr, (arg, type(arg),))) for arg in ___args[1:]])
32         if ___kwargs:
33             msgbuf.append(", %s: %s %s" % ((___kwargs.items()[0][0],) + tuple(map(hr, (___kwargs.items()[0][1], type(___kwargs.items()[0][1]),)))))
34     else:
35         if ___kwargs:
36             msgbuf.append("%s: %s %s" % ((___kwargs.items()[0][0],) + tuple(map(hr, (___kwargs.items()[0][1], type(___kwargs.items()[0][1]),)))))
37     msgbuf.extend([", %s: %s %s" % tuple(map(hr, (k, v, type(v),))) for k, v in ___kwargs.items()[1:]])
38
39     raise AssertionError, "".join(msgbuf)
40
41 def postcondition(___cond=False, *___args, **___kwargs):
42     if ___cond:
43         return True
44     msgbuf=["postcondition", ]
45     if ___args or ___kwargs:
46         msgbuf.append(": ")
47     if ___args:
48         msgbuf.append("%s %s" % tuple(map(hr, (___args[0], type(___args[0]),))))
49         msgbuf.extend([", %s %s" % tuple(map(hr, (arg, type(arg),))) for arg in ___args[1:]])
50         if ___kwargs:
51             msgbuf.append(", %s: %s %s" % ((___kwargs.items()[0][0],) + tuple(map(hr, (___kwargs.items()[0][1], type(___kwargs.items()[0][1]),)))))
52     else:
53         if ___kwargs:
54             msgbuf.append("%s: %s %s" % ((___kwargs.items()[0][0],) + tuple(map(hr, (___kwargs.items()[0][1], type(___kwargs.items()[0][1]),)))))
55     msgbuf.extend([", %s: %s %s" % tuple(map(hr, (k, v, type(v),))) for k, v in ___kwargs.items()[1:]])
56
57     raise AssertionError, "".join(msgbuf)