summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_inspect.py28
-rw-r--r--Lib/test/test_pydoc.py8
2 files changed, 29 insertions, 7 deletions
diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py
index 9cb92c0..78ef817 100644
--- a/Lib/test/test_inspect.py
+++ b/Lib/test/test_inspect.py
@@ -1186,7 +1186,7 @@ class TestClassesAndFunctions(unittest.TestCase):
cls = _testcapi.DocStringNoSignatureTest
obj = _testcapi.DocStringNoSignatureTest()
- for builtin, template in [
+ tests = [
(_testcapi.docstring_no_signature_noargs, meth_noargs),
(_testcapi.docstring_no_signature_o, meth_o),
(cls.meth_noargs, meth_self_noargs),
@@ -1201,7 +1201,6 @@ class TestClassesAndFunctions(unittest.TestCase):
(cls.meth_o_coexist, meth_self_o),
(time.time, meth_noargs),
- (stat.S_IMODE, meth_o),
(str.lower, meth_self_noargs),
(''.lower, meth_self_noargs),
(set.add, meth_self_o),
@@ -1212,7 +1211,16 @@ class TestClassesAndFunctions(unittest.TestCase):
(datetime.datetime.utcnow, meth_type_noargs),
(dict.__dict__['__class_getitem__'], meth_type_o),
(dict.__class_getitem__, meth_type_o),
- ]:
+ ]
+ try:
+ import _stat
+ except ImportError:
+ # if the _stat extension is not available, stat.S_IMODE() is
+ # implemented in Python, not in C
+ pass
+ else:
+ tests.append((stat.S_IMODE, meth_o))
+ for builtin, template in tests:
with self.subTest(builtin):
self.assertEqual(inspect.getfullargspec(builtin),
inspect.getfullargspec(template))
@@ -2934,7 +2942,7 @@ class TestSignatureObject(unittest.TestCase):
cls = _testcapi.DocStringNoSignatureTest
obj = _testcapi.DocStringNoSignatureTest()
- for builtin, template in [
+ tests = [
(_testcapi.docstring_no_signature_noargs, meth_noargs),
(_testcapi.docstring_no_signature_o, meth_o),
(cls.meth_noargs, meth_self_noargs),
@@ -2949,7 +2957,6 @@ class TestSignatureObject(unittest.TestCase):
(cls.meth_o_coexist, meth_self_o),
(time.time, meth_noargs),
- (stat.S_IMODE, meth_o),
(str.lower, meth_self_noargs),
(''.lower, meth_noargs),
(set.add, meth_self_o),
@@ -2960,7 +2967,16 @@ class TestSignatureObject(unittest.TestCase):
(datetime.datetime.utcnow, meth_noargs),
(dict.__dict__['__class_getitem__'], meth_type_o),
(dict.__class_getitem__, meth_o),
- ]:
+ ]
+ try:
+ import _stat
+ except ImportError:
+ # if the _stat extension is not available, stat.S_IMODE() is
+ # implemented in Python, not in C
+ pass
+ else:
+ tests.append((stat.S_IMODE, meth_o))
+ for builtin, template in tests:
with self.subTest(builtin):
self.assertEqual(inspect.signature(builtin),
inspect.signature(template))
diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py
index 9b5c11bf..499eeb9 100644
--- a/Lib/test/test_pydoc.py
+++ b/Lib/test/test_pydoc.py
@@ -1187,7 +1187,13 @@ class TestDescriptions(unittest.TestCase):
"time()")
def test_module_level_callable_o(self):
- self.assertEqual(self._get_summary_line(stat.S_IMODE),
+ try:
+ import _stat
+ except ImportError:
+ # stat.S_IMODE() and _stat.S_IMODE() have a different signature
+ self.skipTest('_stat extension is missing')
+
+ self.assertEqual(self._get_summary_line(_stat.S_IMODE),
"S_IMODE(object, /)")
def test_unbound_builtin_method_noargs(self):