From: Serhiy Storchaka Date: Thu, 26 Mar 2015 06:43:21 +0000 (+0200) Subject: Issue #23776: Removed asserts from pprint.PrettyPrinter constructor. X-Git-Tag: v3.5.0a3~36 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f3fa308817a578c8809c70f6b24b1c489eeef803;p=python Issue #23776: Removed asserts from pprint.PrettyPrinter constructor. --- diff --git a/Lib/pprint.py b/Lib/pprint.py index 9031a0b6ef..fc5395efc8 100644 --- a/Lib/pprint.py +++ b/Lib/pprint.py @@ -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 diff --git a/Lib/test/test_pprint.py b/Lib/test/test_pprint.py index 3a798d946c..01e19feb6d 100644 --- a/Lib/test/test_pprint.py +++ b/Lib/test/test_pprint.py @@ -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()