mirror of https://github.com/python/cpython.git
[3.11] gh-81682: Fix test failures when CPython is built without docstrings (GH-113410) (GH-113430)
(cherry picked from commit 4e5b27e6a3
)
This commit is contained in:
parent
80b2bad2c2
commit
fe2b4dd3c0
|
@ -7,6 +7,7 @@
|
|||
import types
|
||||
import re
|
||||
from idlelib.idle_test.mock_tk import Text
|
||||
from test.support import MISSING_C_DOCSTRINGS
|
||||
|
||||
|
||||
# Test Class TC is used in multiple get_argspec test methods
|
||||
|
@ -50,6 +51,8 @@ class Get_argspecTest(unittest.TestCase):
|
|||
# but a red buildbot is better than a user crash (as has happened).
|
||||
# For a simple mismatch, change the expected output to the actual.
|
||||
|
||||
@unittest.skipIf(MISSING_C_DOCSTRINGS,
|
||||
"Signature information for builtins requires docstrings")
|
||||
def test_builtins(self):
|
||||
|
||||
def tiptest(obj, out):
|
||||
|
@ -143,6 +146,8 @@ def f(): pass
|
|||
f.__doc__ = 'a'*300
|
||||
self.assertEqual(get_spec(f), f"()\n{'a'*(calltip._MAX_COLS-3) + '...'}")
|
||||
|
||||
@unittest.skipIf(MISSING_C_DOCSTRINGS,
|
||||
"Signature information for builtins requires docstrings")
|
||||
def test_multiline_docstring(self):
|
||||
# Test fewer lines than max.
|
||||
self.assertEqual(get_spec(range),
|
||||
|
@ -157,6 +162,7 @@ def test_multiline_docstring(self):
|
|||
bytes(int) -> bytes object of size given by the parameter initialized with null bytes
|
||||
bytes() -> empty bytes object''')
|
||||
|
||||
def test_multiline_docstring_2(self):
|
||||
# Test more than max lines
|
||||
def f(): pass
|
||||
f.__doc__ = 'a\n' * 15
|
||||
|
|
|
@ -590,6 +590,8 @@ def __del__(self):
|
|||
del L
|
||||
self.assertEqual(PyList.num, 0)
|
||||
|
||||
@unittest.skipIf(MISSING_C_DOCSTRINGS,
|
||||
"Signature information for builtins requires docstrings")
|
||||
def test_heap_ctype_doc_and_text_signature(self):
|
||||
self.assertEqual(_testcapi.HeapDocCType.__doc__, "somedoc")
|
||||
self.assertEqual(_testcapi.HeapDocCType.__text_signature__, "(arg1, arg2)")
|
||||
|
|
|
@ -946,11 +946,12 @@ async def b():
|
|||
|
||||
def test_corotype_1(self):
|
||||
ct = types.CoroutineType
|
||||
self.assertIn('into coroutine', ct.send.__doc__)
|
||||
self.assertIn('inside coroutine', ct.close.__doc__)
|
||||
self.assertIn('in coroutine', ct.throw.__doc__)
|
||||
self.assertIn('of the coroutine', ct.__dict__['__name__'].__doc__)
|
||||
self.assertIn('of the coroutine', ct.__dict__['__qualname__'].__doc__)
|
||||
if not support.MISSING_C_DOCSTRINGS:
|
||||
self.assertIn('into coroutine', ct.send.__doc__)
|
||||
self.assertIn('inside coroutine', ct.close.__doc__)
|
||||
self.assertIn('in coroutine', ct.throw.__doc__)
|
||||
self.assertIn('of the coroutine', ct.__dict__['__name__'].__doc__)
|
||||
self.assertIn('of the coroutine', ct.__dict__['__qualname__'].__doc__)
|
||||
self.assertEqual(ct.__name__, 'coroutine')
|
||||
|
||||
async def f(): pass
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
import unittest
|
||||
|
||||
from test.support import (requires, verbose, SaveSignals, cpython_only,
|
||||
check_disallow_instantiation)
|
||||
check_disallow_instantiation, MISSING_C_DOCSTRINGS)
|
||||
from test.support.import_helper import import_module
|
||||
|
||||
# Optionally test curses module. This currently requires that the
|
||||
|
@ -1141,6 +1141,8 @@ def test_encoding(self):
|
|||
with self.assertRaises(TypeError):
|
||||
del stdscr.encoding
|
||||
|
||||
@unittest.skipIf(MISSING_C_DOCSTRINGS,
|
||||
"Signature information for builtins requires docstrings")
|
||||
def test_issue21088(self):
|
||||
stdscr = self.stdscr
|
||||
#
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
import warnings
|
||||
import importlib.util
|
||||
import importlib
|
||||
from test.support import MISSING_C_DOCSTRINGS
|
||||
from test.support.script_helper import assert_python_failure
|
||||
|
||||
|
||||
|
@ -285,7 +286,8 @@ def test_nonascii(self):
|
|||
with self.subTest(name):
|
||||
module = self.load_module_by_name(name)
|
||||
self.assertEqual(module.__name__, name)
|
||||
self.assertEqual(module.__doc__, "Module named in %s" % lang)
|
||||
if not MISSING_C_DOCSTRINGS:
|
||||
self.assertEqual(module.__doc__, "Module named in %s" % lang)
|
||||
|
||||
|
||||
(Frozen_MultiPhaseExtensionModuleTests,
|
||||
|
|
|
@ -3507,6 +3507,8 @@ def foo(a, *, b:1): pass
|
|||
foo_sig = MySignature.from_callable(foo)
|
||||
self.assertIsInstance(foo_sig, MySignature)
|
||||
|
||||
@unittest.skipIf(MISSING_C_DOCSTRINGS,
|
||||
"Signature information for builtins requires docstrings")
|
||||
def test_signature_from_callable_class(self):
|
||||
# A regression test for a class inheriting its signature from `object`.
|
||||
class MySignature(inspect.Signature): pass
|
||||
|
@ -3597,7 +3599,8 @@ def test_signature_eval_str(self):
|
|||
par('c', PORK, annotation="'MyClass'"),
|
||||
)))
|
||||
|
||||
self.assertEqual(signature_func(isa.UnannotatedClass), sig())
|
||||
if not MISSING_C_DOCSTRINGS:
|
||||
self.assertEqual(signature_func(isa.UnannotatedClass), sig())
|
||||
self.assertEqual(signature_func(isa.unannotated_function),
|
||||
sig(
|
||||
parameters=(
|
||||
|
|
|
@ -29,7 +29,7 @@ def test_uninitialized(self):
|
|||
self.fail("__name__ = %s" % repr(s))
|
||||
except AttributeError:
|
||||
pass
|
||||
self.assertEqual(foo.__doc__, ModuleType.__doc__)
|
||||
self.assertEqual(foo.__doc__, ModuleType.__doc__ or '')
|
||||
|
||||
def test_uninitialized_missing_getattr(self):
|
||||
# Issue 8297
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
from test.support import threading_helper
|
||||
from test.support import (reap_children, captured_output, captured_stdout,
|
||||
captured_stderr, is_emscripten, is_wasi,
|
||||
requires_docstrings)
|
||||
requires_docstrings, MISSING_C_DOCSTRINGS)
|
||||
from test.support.os_helper import (TESTFN, rmtree, unlink)
|
||||
from test import pydoc_mod
|
||||
|
||||
|
@ -1062,13 +1062,15 @@ def test_generic_alias(self):
|
|||
doc = pydoc.render_doc(typing.List[int], renderer=pydoc.plaintext)
|
||||
self.assertIn('_GenericAlias in module typing', doc)
|
||||
self.assertIn('List = class list(object)', doc)
|
||||
self.assertIn(list.__doc__.strip().splitlines()[0], doc)
|
||||
if not MISSING_C_DOCSTRINGS:
|
||||
self.assertIn(list.__doc__.strip().splitlines()[0], doc)
|
||||
|
||||
self.assertEqual(pydoc.describe(list[int]), 'GenericAlias')
|
||||
doc = pydoc.render_doc(list[int], renderer=pydoc.plaintext)
|
||||
self.assertIn('GenericAlias in module builtins', doc)
|
||||
self.assertIn('\nclass list(object)', doc)
|
||||
self.assertIn(list.__doc__.strip().splitlines()[0], doc)
|
||||
if not MISSING_C_DOCSTRINGS:
|
||||
self.assertIn(list.__doc__.strip().splitlines()[0], doc)
|
||||
|
||||
def test_union_type(self):
|
||||
self.assertEqual(pydoc.describe(typing.Union[int, str]), '_UnionGenericAlias')
|
||||
|
@ -1082,7 +1084,8 @@ def test_union_type(self):
|
|||
doc = pydoc.render_doc(int | str, renderer=pydoc.plaintext)
|
||||
self.assertIn('UnionType in module types object', doc)
|
||||
self.assertIn('\nclass UnionType(builtins.object)', doc)
|
||||
self.assertIn(types.UnionType.__doc__.strip().splitlines()[0], doc)
|
||||
if not MISSING_C_DOCSTRINGS:
|
||||
self.assertIn(types.UnionType.__doc__.strip().splitlines()[0], doc)
|
||||
|
||||
def test_special_form(self):
|
||||
self.assertEqual(pydoc.describe(typing.NoReturn), '_SpecialForm')
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
from unittest.mock import patch
|
||||
import builtins
|
||||
import rlcompleter
|
||||
from test.support import MISSING_C_DOCSTRINGS
|
||||
|
||||
class CompleteMe:
|
||||
""" Trivial class used in testing rlcompleter.Completer. """
|
||||
|
@ -40,12 +41,12 @@ def test_global_matches(self):
|
|||
|
||||
# test with a customized namespace
|
||||
self.assertEqual(self.completer.global_matches('CompleteM'),
|
||||
['CompleteMe()'])
|
||||
['CompleteMe(' if MISSING_C_DOCSTRINGS else 'CompleteMe()'])
|
||||
self.assertEqual(self.completer.global_matches('eg'),
|
||||
['egg('])
|
||||
# XXX: see issue5256
|
||||
self.assertEqual(self.completer.global_matches('CompleteM'),
|
||||
['CompleteMe()'])
|
||||
['CompleteMe(' if MISSING_C_DOCSTRINGS else 'CompleteMe()'])
|
||||
|
||||
def test_attr_matches(self):
|
||||
# test with builtins namespace
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Python test set -- part 6, built-in types
|
||||
|
||||
from test.support import run_with_locale, cpython_only
|
||||
from test.support import run_with_locale, cpython_only, MISSING_C_DOCSTRINGS
|
||||
import collections.abc
|
||||
from collections import namedtuple
|
||||
import copy
|
||||
|
@ -597,6 +597,8 @@ def test_slot_wrapper_types(self):
|
|||
self.assertIsInstance(object.__lt__, types.WrapperDescriptorType)
|
||||
self.assertIsInstance(int.__lt__, types.WrapperDescriptorType)
|
||||
|
||||
@unittest.skipIf(MISSING_C_DOCSTRINGS,
|
||||
"Signature information for builtins requires docstrings")
|
||||
def test_dunder_get_signature(self):
|
||||
sig = inspect.signature(object.__init__.__get__)
|
||||
self.assertEqual(list(sig.parameters), ["instance", "owner"])
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
from datetime import date, datetime, time, timedelta, timezone
|
||||
from functools import cached_property
|
||||
|
||||
from test.support import MISSING_C_DOCSTRINGS
|
||||
from test.test_zoneinfo import _support as test_support
|
||||
from test.test_zoneinfo._support import OS_ENV_LOCK, TZPATH_TEST_LOCK, ZoneInfoTestBase
|
||||
from test.support.import_helper import import_module
|
||||
|
|
Loading…
Reference in New Issue