]> granicus.if.org Git - python/commitdiff
Issue #23776: Removed asserts from pprint.PrettyPrinter constructor.
authorSerhiy Storchaka <storchaka@gmail.com>
Thu, 26 Mar 2015 06:43:21 +0000 (08:43 +0200)
committerSerhiy Storchaka <storchaka@gmail.com>
Thu, 26 Mar 2015 06:43:21 +0000 (08:43 +0200)
Lib/pprint.py
Lib/test/test_pprint.py

index 9031a0b6ef03ed2c3398c0c073e1b72e2051ae3f..fc5395efc8f8f9512063556e4df147939bdba653 100644 (file)
@@ -124,9 +124,12 @@ class PrettyPrinter:
         """
         indent = int(indent)
         width = int(width)
-        assert indent >= 0, "indent must be >= 0"
-        assert depth is None or depth > 0, "depth must be > 0"
-        assert width, "width must be != 0"
+        if indent < 0:
+            raise ValueError('indent must be >= 0')
+        if depth is not None and depth <= 0:
+            raise ValueError('depth must be > 0')
+        if not width:
+            raise ValueError('width must be != 0')
         self._depth = depth
         self._indent_per_level = indent
         self._width = width
index 3a798d946ca013ab31fce973389bf489b20c59df..01e19feb6dc49b0b8c5108181fa07e08ac4dc43f 100644 (file)
@@ -1,13 +1,14 @@
 # -*- coding: utf-8 -*-
 
+import collections
+import io
+import itertools
 import pprint
+import random
 import test.support
-import unittest
 import test.test_set
-import random
-import collections
-import itertools
 import types
+import unittest
 
 # list, tuple and dict subclasses that do or don't overwrite __repr__
 class list2(list):
@@ -56,6 +57,18 @@ class QueryTestCase(unittest.TestCase):
         self.b = list(range(200))
         self.a[-12] = self.b
 
+    def test_init(self):
+        pp = pprint.PrettyPrinter()
+        pp = pprint.PrettyPrinter(indent=4, width=40, depth=5,
+                                  stream=io.StringIO(), compact=True)
+        pp = pprint.PrettyPrinter(4, 40, 5, io.StringIO())
+        with self.assertRaises(TypeError):
+            pp = pprint.PrettyPrinter(4, 40, 5, io.StringIO(), True)
+        self.assertRaises(ValueError, pprint.PrettyPrinter, indent=-1)
+        self.assertRaises(ValueError, pprint.PrettyPrinter, depth=0)
+        self.assertRaises(ValueError, pprint.PrettyPrinter, depth=-1)
+        self.assertRaises(ValueError, pprint.PrettyPrinter, width=0)
+
     def test_basic(self):
         # Verify .isrecursive() and .isreadable() w/o recursion
         pp = pprint.PrettyPrinter()