blob: 14626fb13fff5e53af70fcaf46b0ee0a6681eeae [file] [log] [blame]
Tim Petersa814db52001-05-14 07:05:58 +00001import pprint
Fred Drake43913dd2001-05-14 17:41:20 +00002import unittest
Tim Petersa814db52001-05-14 07:05:58 +00003
Fred Drake43913dd2001-05-14 17:41:20 +00004import test_support
Tim Petersa814db52001-05-14 07:05:58 +00005
Martin v. Löwis339d0f72001-08-17 18:39:25 +00006try:
7 uni = unicode
8except NameError:
9 def uni(x):return x
10
Tim Petersa814db52001-05-14 07:05:58 +000011
Fred Drake43913dd2001-05-14 17:41:20 +000012class QueryTestCase(unittest.TestCase):
Tim Petersa814db52001-05-14 07:05:58 +000013
Fred Drake43913dd2001-05-14 17:41:20 +000014 def setUp(self):
15 self.a = range(100)
16 self.b = range(200)
17 self.a[-12] = self.b
Tim Petersa814db52001-05-14 07:05:58 +000018
Fred Drake43913dd2001-05-14 17:41:20 +000019 def test_basic(self):
Fred Drake992d3872001-05-14 19:15:23 +000020 """Verify .isrecursive() and .isreadable() w/o recursion."""
Fred Drake43913dd2001-05-14 17:41:20 +000021 verify = self.assert_
Martin v. Löwis339d0f72001-08-17 18:39:25 +000022 for safe in (2, 2.0, 2j, "abc", [3], (2,2), {3: 3}, uni("yaddayadda"),
Fred Drake43913dd2001-05-14 17:41:20 +000023 self.a, self.b):
24 verify(not pprint.isrecursive(safe),
25 "expected not isrecursive for " + `safe`)
26 verify(pprint.isreadable(safe),
27 "expected isreadable for " + `safe`)
Tim Petersa814db52001-05-14 07:05:58 +000028
Fred Drake43913dd2001-05-14 17:41:20 +000029 def test_knotted(self):
Fred Drake992d3872001-05-14 19:15:23 +000030 """Verify .isrecursive() and .isreadable() w/ recursion."""
Fred Drake43913dd2001-05-14 17:41:20 +000031 # Tie a knot.
32 self.b[67] = self.a
33 # Messy dict.
34 self.d = {}
35 self.d[0] = self.d[1] = self.d[2] = self.d
Tim Petersa814db52001-05-14 07:05:58 +000036
Fred Drake43913dd2001-05-14 17:41:20 +000037 verify = self.assert_
Tim Petersa814db52001-05-14 07:05:58 +000038
Fred Drake43913dd2001-05-14 17:41:20 +000039 for icky in self.a, self.b, self.d, (self.d, self.d):
40 verify(pprint.isrecursive(icky), "expected isrecursive")
41 verify(not pprint.isreadable(icky), "expected not isreadable")
42
43 # Break the cycles.
44 self.d.clear()
45 del self.a[:]
46 del self.b[:]
47
48 for safe in self.a, self.b, self.d, (self.d, self.d):
49 verify(not pprint.isrecursive(safe),
50 "expected not isrecursive for " + `safe`)
51 verify(pprint.isreadable(safe),
52 "expected isreadable for " + `safe`)
53
54 def test_unreadable(self):
55 """Not recursive but not readable anyway."""
56 verify = self.assert_
57 for unreadable in type(3), pprint, pprint.isrecursive:
58 verify(not pprint.isrecursive(unreadable),
59 "expected not isrecursive for " + `unreadable`)
60 verify(not pprint.isreadable(unreadable),
61 "expected not isreadable for " + `unreadable`)
62
Tim Peters95b3f782001-05-14 18:39:41 +000063 def test_same_as_repr(self):
64 "Simple objects and small containers that should be same as repr()."
65 verify = self.assert_
Martin v. Löwis339d0f72001-08-17 18:39:25 +000066 for simple in (0, 0L, 0+0j, 0.0, "", uni(""), (), [], {}, verify, pprint,
67 -6, -6L, -6-6j, -1.5, "x", uni("x"), (3,), [3], {3: 6},
Tim Peters95b3f782001-05-14 18:39:41 +000068 (1,2), [3,4], {5: 6, 7: 8},
69 {"xy\tab\n": (3,), 5: [[]], (): {}},
70 range(10, -11, -1)
71 ):
72 native = repr(simple)
73 for function in "pformat", "saferepr":
74 f = getattr(pprint, function)
75 got = f(simple)
76 verify(native == got, "expected %s got %s from pprint.%s" %
77 (native, got, function))
Fred Drake43913dd2001-05-14 17:41:20 +000078
Fred Drake2e2be372001-09-20 21:33:42 +000079
Barry Warsaw00859c02001-11-28 05:49:39 +000080 def test_basic_line_wrap(self):
81 """verify basic line-wrapping operation"""
82 o = {'RPM_cal': 0,
83 'RPM_cal2': 48059,
84 'Speed_cal': 0,
85 'controldesk_runtime_us': 0,
86 'main_code_runtime_us': 0,
87 'read_io_runtime_us': 0,
88 'write_io_runtime_us': 43690}
89 exp = """\
90{'RPM_cal': 0,
91 'RPM_cal2': 48059,
92 'Speed_cal': 0,
93 'controldesk_runtime_us': 0,
94 'main_code_runtime_us': 0,
95 'read_io_runtime_us': 0,
96 'write_io_runtime_us': 43690}"""
97 self.assertEqual(pprint.pformat(o), exp)
98
Fred Drake2e2be372001-09-20 21:33:42 +000099def test_main():
100 test_support.run_unittest(QueryTestCase)
101
102
103if __name__ == "__main__":
104 test_main()