summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_pprint.py
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2002-04-02 05:08:35 (GMT)
committerFred Drake <fdrake@acm.org>2002-04-02 05:08:35 (GMT)
commitaee113d368ebad8a51386baa7c0aec056aca94d5 (patch)
tree9a81e154b2772284d823cd0df3f966faa59a93e2 /Lib/test/test_pprint.py
parent4993c51b9436bc28126659519c362558fdcdd0d7 (diff)
downloadcpython-aee113d368ebad8a51386baa7c0aec056aca94d5.zip
cpython-aee113d368ebad8a51386baa7c0aec056aca94d5.tar.gz
cpython-aee113d368ebad8a51386baa7c0aec056aca94d5.tar.bz2
Add an experimental mechanism to support extending the pprint formatting.
Partly responds to SF bug #505152.
Diffstat (limited to 'Lib/test/test_pprint.py')
-rw-r--r--Lib/test/test_pprint.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/Lib/test/test_pprint.py b/Lib/test/test_pprint.py
index 14626fb..d5e10aa 100644
--- a/Lib/test/test_pprint.py
+++ b/Lib/test/test_pprint.py
@@ -96,6 +96,27 @@ class QueryTestCase(unittest.TestCase):
'write_io_runtime_us': 43690}"""
self.assertEqual(pprint.pformat(o), exp)
+ def test_subclassing(self):
+ o = {'names with spaces': 'should be presented using repr()',
+ 'others.should.not.be': 'like.this'}
+ exp = """\
+{'names with spaces': 'should be presented using repr()',
+ others.should.not.be: like.this}"""
+ self.assertEqual(DottedPrettyPrinter().pformat(o), exp)
+
+
+class DottedPrettyPrinter(pprint.PrettyPrinter):
+ def format(self, object, context, maxlevels, level):
+ if isinstance(object, str):
+ if ' ' in object:
+ return `object`, 1, 0
+ else:
+ return object, 0, 0
+ else:
+ return pprint.PrettyPrinter.format(
+ self, object, context, maxlevels, level)
+
+
def test_main():
test_support.run_unittest(QueryTestCase)