mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60878,60880-60892,60894-60898 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r60876 | georg.brandl | 2008-02-17 16:14:10 +0100 (Sun, 17 Feb 2008) | 2 lines Fix function name. ........ r60877 | facundo.batista | 2008-02-17 17:21:13 +0100 (Sun, 17 Feb 2008) | 4 lines Now we handle different the backup copy, because of security issues regarding user/group and permissions. Fixes 1050828. ........ r60878 | facundo.batista | 2008-02-17 19:59:29 +0100 (Sun, 17 Feb 2008) | 4 lines Issue 2112. mmap does not raises EnvironmentError no more, but a subclass of it. Thanks John Lenton. ........ r60882 | amaury.forgeotdarc | 2008-02-17 21:56:31 +0100 (Sun, 17 Feb 2008) | 5 lines Compilation was broken on Windows since the introduction of Advanced String Formatting. Only PCBuild (vs9) was really tested. Changes for older compilers were done manually. ........ r60883 | georg.brandl | 2008-02-17 22:18:55 +0100 (Sun, 17 Feb 2008) | 2 lines #2133: fix HTML color spec. ........ r60884 | facundo.batista | 2008-02-18 04:43:43 +0100 (Mon, 18 Feb 2008) | 5 lines Issue #1916. Added isgenerator() and isgeneratorfunction() to inspect.py. Thanks Javi Mansilla for patch review and corrections. ........ r60885 | facundo.batista | 2008-02-18 13:48:43 +0100 (Mon, 18 Feb 2008) | 4 lines Issue 1224. Now we support again the double slash in the URL. Thanks Anthony Lenton. ........ r60887 | eric.smith | 2008-02-18 15:25:02 +0100 (Mon, 18 Feb 2008) | 1 line Temporarily removed float tests. See issue 1600. ........ r60891 | kristjan.jonsson | 2008-02-18 18:40:47 +0100 (Mon, 18 Feb 2008) | 1 line Perform correct handling of stack overflow for windows: Catch the correct exception code and reset the overflow condition when handled. ........
This commit is contained in:
parent
5edc1c29ea
commit
7131fd957d
15 changed files with 1979 additions and 41 deletions
|
@ -13,10 +13,10 @@ from test import inspect_fodder2 as mod2
|
|||
|
||||
# Functions tested in this suite:
|
||||
# ismodule, isclass, ismethod, isfunction, istraceback, isframe, iscode,
|
||||
# isbuiltin, isroutine, getmembers, getdoc, getfile, getmodule,
|
||||
# getsourcefile, getcomments, getsource, getclasstree, getargspec,
|
||||
# getargvalues, formatargspec, formatargvalues, currentframe, stack, trace
|
||||
# isdatadescriptor
|
||||
# isbuiltin, isroutine, isgenerator, isgeneratorfunction, getmembers,
|
||||
# getdoc, getfile, getmodule, getsourcefile, getcomments, getsource,
|
||||
# getclasstree, getargspec, getargvalues, formatargspec, formatargvalues,
|
||||
# currentframe, stack, trace, isdatadescriptor
|
||||
|
||||
modfile = mod.__file__
|
||||
if modfile.endswith(('c', 'o')):
|
||||
|
@ -41,23 +41,33 @@ git = mod.StupidGit()
|
|||
class IsTestBase(unittest.TestCase):
|
||||
predicates = set([inspect.isbuiltin, inspect.isclass, inspect.iscode,
|
||||
inspect.isframe, inspect.isfunction, inspect.ismethod,
|
||||
inspect.ismodule, inspect.istraceback])
|
||||
inspect.ismodule, inspect.istraceback,
|
||||
inspect.isgenerator, inspect.isgeneratorfunction])
|
||||
|
||||
def istest(self, predicate, exp):
|
||||
obj = eval(exp)
|
||||
self.failUnless(predicate(obj), '%s(%s)' % (predicate.__name__, exp))
|
||||
|
||||
for other in self.predicates - set([predicate]):
|
||||
if predicate == inspect.isgeneratorfunction and\
|
||||
other == inspect.isfunction:
|
||||
continue
|
||||
self.failIf(other(obj), 'not %s(%s)' % (other.__name__, exp))
|
||||
|
||||
def generator_function_example(self):
|
||||
for i in range(2):
|
||||
yield i
|
||||
|
||||
class TestPredicates(IsTestBase):
|
||||
def test_thirteen(self):
|
||||
def test_fifteen(self):
|
||||
count = len([x for x in dir(inspect) if x.startswith('is')])
|
||||
# Doc/lib/libinspect.tex claims there are 13 such functions
|
||||
expected = 13
|
||||
# This test is here for remember you to update Doc/library/inspect.rst
|
||||
# which claims there are 15 such functions
|
||||
expected = 15
|
||||
err_msg = "There are %d (not %d) is* functions" % (count, expected)
|
||||
self.assertEqual(count, expected, err_msg)
|
||||
|
||||
|
||||
def test_excluding_predicates(self):
|
||||
self.istest(inspect.isbuiltin, 'sys.exit')
|
||||
self.istest(inspect.isbuiltin, '[].append')
|
||||
|
@ -70,6 +80,8 @@ class TestPredicates(IsTestBase):
|
|||
self.istest(inspect.ismodule, 'mod')
|
||||
self.istest(inspect.istraceback, 'tb')
|
||||
self.istest(inspect.isdatadescriptor, 'collections.defaultdict.default_factory')
|
||||
self.istest(inspect.isgenerator, '(x for x in range(2))')
|
||||
self.istest(inspect.isgeneratorfunction, 'generator_function_example')
|
||||
if hasattr(types, 'GetSetDescriptorType'):
|
||||
self.istest(inspect.isgetsetdescriptor,
|
||||
'type(tb.tb_frame).f_locals')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue