blob: f6a128db5344556dfa99b1fe79155b4fd6323d83 [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
Tim Petersa814db52001-05-14 07:05:58 +00006
Fred Drake43913dd2001-05-14 17:41:20 +00007class QueryTestCase(unittest.TestCase):
Tim Petersa814db52001-05-14 07:05:58 +00008
Fred Drake43913dd2001-05-14 17:41:20 +00009 def setUp(self):
10 self.a = range(100)
11 self.b = range(200)
12 self.a[-12] = self.b
Tim Petersa814db52001-05-14 07:05:58 +000013
Fred Drake43913dd2001-05-14 17:41:20 +000014 def test_basic(self):
15 # Verify that .isrecursive() and .isreadable() work.
16 verify = self.assert_
17 for safe in (2, 2.0, 2j, "abc", [3], (2,2), {3: 3}, u"yaddayadda",
18 self.a, self.b):
19 verify(not pprint.isrecursive(safe),
20 "expected not isrecursive for " + `safe`)
21 verify(pprint.isreadable(safe),
22 "expected isreadable for " + `safe`)
Tim Petersa814db52001-05-14 07:05:58 +000023
Fred Drake43913dd2001-05-14 17:41:20 +000024 def test_knotted(self):
25 # Tie a knot.
26 self.b[67] = self.a
27 # Messy dict.
28 self.d = {}
29 self.d[0] = self.d[1] = self.d[2] = self.d
Tim Petersa814db52001-05-14 07:05:58 +000030
Fred Drake43913dd2001-05-14 17:41:20 +000031 verify = self.assert_
Tim Petersa814db52001-05-14 07:05:58 +000032
Fred Drake43913dd2001-05-14 17:41:20 +000033 for icky in self.a, self.b, self.d, (self.d, self.d):
34 verify(pprint.isrecursive(icky), "expected isrecursive")
35 verify(not pprint.isreadable(icky), "expected not isreadable")
36
37 # Break the cycles.
38 self.d.clear()
39 del self.a[:]
40 del self.b[:]
41
42 for safe in self.a, self.b, self.d, (self.d, self.d):
43 verify(not pprint.isrecursive(safe),
44 "expected not isrecursive for " + `safe`)
45 verify(pprint.isreadable(safe),
46 "expected isreadable for " + `safe`)
47
48 def test_unreadable(self):
49 """Not recursive but not readable anyway."""
50 verify = self.assert_
51 for unreadable in type(3), pprint, pprint.isrecursive:
52 verify(not pprint.isrecursive(unreadable),
53 "expected not isrecursive for " + `unreadable`)
54 verify(not pprint.isreadable(unreadable),
55 "expected not isreadable for " + `unreadable`)
56
57
58test_support.run_unittest(QueryTestCase)