summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/idle_test
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2014-01-27 01:08:26 (GMT)
committerTerry Jan Reedy <tjreedy@udel.edu>2014-01-27 01:08:26 (GMT)
commite2d9b39dd4e11c7d9d348b14c62378ca36a53473 (patch)
tree7b10ecec914fe6765ad339309b7eac5b17a95aa9 /Lib/idlelib/idle_test
parent8860443749295acbeecb074be8460113fc478468 (diff)
parenta0f1e220684506f703f859350024a1365fa5cf7b (diff)
downloadcpython-e2d9b39dd4e11c7d9d348b14c62378ca36a53473.zip
cpython-e2d9b39dd4e11c7d9d348b14c62378ca36a53473.tar.gz
cpython-e2d9b39dd4e11c7d9d348b14c62378ca36a53473.tar.bz2
Issue #20338: Increase allowed tip width slightly and wrap long signagure lines.
Original patch by Serhiy Storchaka.
Diffstat (limited to 'Lib/idlelib/idle_test')
-rw-r--r--Lib/idlelib/idle_test/test_calltips.py34
1 files changed, 26 insertions, 8 deletions
diff --git a/Lib/idlelib/idle_test/test_calltips.py b/Lib/idlelib/idle_test/test_calltips.py
index eca24ec..f27994f 100644
--- a/Lib/idlelib/idle_test/test_calltips.py
+++ b/Lib/idlelib/idle_test/test_calltips.py
@@ -1,5 +1,6 @@
import unittest
import idlelib.CallTips as ct
+import textwrap
import types
default_tip = ct._default_callable_argspec
@@ -64,20 +65,37 @@ class Get_signatureTest(unittest.TestCase):
gtest(types.MethodType, "method(function, instance)")
gtest(SB(), default_tip)
+ def test_signature_wrap(self):
+ #print(signature(textwrap.TextWrapper))
+ self.assertEqual(signature(textwrap.TextWrapper), '''\
+(width=70, initial_indent='', subsequent_indent='', expand_tabs=True,
+ replace_whitespace=True, fix_sentence_endings=False, break_long_words=True,
+ drop_whitespace=True, break_on_hyphens=True, tabsize=8, *, max_lines=None,
+ placeholder=' [...]')''')
+
+ def test_docline_truncation(self):
+ def f(): pass
+ f.__doc__ = 'a'*300
+ self.assertEqual(signature(f), '()\n' + 'a' * (ct._MAX_COLS-3) + '...')
+
def test_multiline_docstring(self):
# Test fewer lines than max.
self.assertEqual(signature(list),
"list() -> new empty list\n"
"list(iterable) -> new list initialized from iterable's items")
- # Test max lines and line (currently) too long.
- self.assertEqual(signature(bytes),
-"bytes(iterable_of_ints) -> bytes\n"
-"bytes(string, encoding[, errors]) -> bytes\n"
-"bytes(bytes_or_buffer) -> immutable copy of bytes_or_buffer\n"
-#bytes(int) -> bytes object of size given by the parameter initialized with null bytes
-"bytes(int) -> bytes object of size given by the parameter initialized with n...\n"
-"bytes() -> empty bytes object")
+ # Test max lines
+ self.assertEqual(signature(bytes), '''\
+bytes(iterable_of_ints) -> bytes
+bytes(string, encoding[, errors]) -> bytes
+bytes(bytes_or_buffer) -> immutable copy of bytes_or_buffer
+bytes(int) -> bytes object of size given by the parameter initialized with null bytes
+bytes() -> empty bytes object''')
+
+ # Test more than max lines
+ def f(): pass
+ f.__doc__ = 'a\n' * 15
+ self.assertEqual(signature(f), '()' + '\na' * ct._MAX_LINES)
def test_functions(self):
def t1(): 'doc'