2005-10-20 16:59:25 -03:00
|
|
|
"""This module includes tests of the code object representation.
|
|
|
|
|
|
|
|
>>> def f(x):
|
|
|
|
... def g(y):
|
|
|
|
... return x + y
|
|
|
|
... return g
|
|
|
|
...
|
|
|
|
|
2007-02-25 16:55:47 -04:00
|
|
|
>>> dump(f.__code__)
|
2005-10-20 16:59:25 -03:00
|
|
|
name: f
|
|
|
|
argcount: 1
|
2006-10-27 20:31:49 -03:00
|
|
|
kwonlyargcount: 0
|
2005-10-20 16:59:25 -03:00
|
|
|
names: ()
|
|
|
|
varnames: ('x', 'g')
|
|
|
|
cellvars: ('x',)
|
|
|
|
freevars: ()
|
|
|
|
nlocals: 2
|
|
|
|
flags: 3
|
2011-11-25 13:56:07 -04:00
|
|
|
consts: ('None', '<code object g>', "'f.<locals>.g'")
|
2005-10-20 16:59:25 -03:00
|
|
|
|
2007-02-25 16:55:47 -04:00
|
|
|
>>> dump(f(4).__code__)
|
2005-10-20 16:59:25 -03:00
|
|
|
name: g
|
|
|
|
argcount: 1
|
2006-10-27 20:31:49 -03:00
|
|
|
kwonlyargcount: 0
|
2005-10-20 16:59:25 -03:00
|
|
|
names: ()
|
|
|
|
varnames: ('y',)
|
|
|
|
cellvars: ()
|
|
|
|
freevars: ('x',)
|
|
|
|
nlocals: 1
|
|
|
|
flags: 19
|
|
|
|
consts: ('None',)
|
|
|
|
|
|
|
|
>>> def h(x, y):
|
|
|
|
... a = x + y
|
|
|
|
... b = x - y
|
|
|
|
... c = a * b
|
|
|
|
... return c
|
2005-12-25 19:18:31 -04:00
|
|
|
...
|
2006-10-27 20:31:49 -03:00
|
|
|
|
2007-02-25 16:55:47 -04:00
|
|
|
>>> dump(h.__code__)
|
2005-10-20 16:59:25 -03:00
|
|
|
name: h
|
|
|
|
argcount: 2
|
2006-10-27 20:31:49 -03:00
|
|
|
kwonlyargcount: 0
|
2005-10-20 16:59:25 -03:00
|
|
|
names: ()
|
|
|
|
varnames: ('x', 'y', 'a', 'b', 'c')
|
|
|
|
cellvars: ()
|
|
|
|
freevars: ()
|
|
|
|
nlocals: 5
|
|
|
|
flags: 67
|
|
|
|
consts: ('None',)
|
|
|
|
|
|
|
|
>>> def attrs(obj):
|
2007-02-09 16:13:25 -04:00
|
|
|
... print(obj.attr1)
|
|
|
|
... print(obj.attr2)
|
|
|
|
... print(obj.attr3)
|
2005-10-20 16:59:25 -03:00
|
|
|
|
2007-02-25 16:55:47 -04:00
|
|
|
>>> dump(attrs.__code__)
|
2005-10-20 16:59:25 -03:00
|
|
|
name: attrs
|
|
|
|
argcount: 1
|
2006-10-27 20:31:49 -03:00
|
|
|
kwonlyargcount: 0
|
* Remove PRINT_ITEM(_TO), PRINT_NEWLINE(_TO) opcodes.
* Fix some docstrings and one Print -> print.
* Fix test_{class,code,descrtut,dis,extcall,parser,popen,pkg,subprocess,syntax,traceback}.
These were the ones that generated code with a print statement.
In most remaining failing tests there's an issue with the soft space.
2007-02-09 17:28:07 -04:00
|
|
|
names: ('print', 'attr1', 'attr2', 'attr3')
|
2005-10-20 16:59:25 -03:00
|
|
|
varnames: ('obj',)
|
|
|
|
cellvars: ()
|
|
|
|
freevars: ()
|
|
|
|
nlocals: 1
|
|
|
|
flags: 67
|
|
|
|
consts: ('None',)
|
|
|
|
|
2016-02-08 17:45:06 -04:00
|
|
|
>>> def optimize_away():
|
|
|
|
... 'doc string'
|
|
|
|
... 'not a docstring'
|
|
|
|
... 53
|
|
|
|
... 0x53
|
|
|
|
|
|
|
|
>>> dump(optimize_away.__code__)
|
|
|
|
name: optimize_away
|
|
|
|
argcount: 0
|
|
|
|
kwonlyargcount: 0
|
|
|
|
names: ()
|
|
|
|
varnames: ()
|
|
|
|
cellvars: ()
|
|
|
|
freevars: ()
|
|
|
|
nlocals: 0
|
|
|
|
flags: 67
|
|
|
|
consts: ("'doc string'", 'None')
|
|
|
|
|
2006-10-27 20:31:49 -03:00
|
|
|
>>> def keywordonly_args(a,b,*,k1):
|
|
|
|
... return a,b,k1
|
|
|
|
...
|
|
|
|
|
2007-02-25 16:55:47 -04:00
|
|
|
>>> dump(keywordonly_args.__code__)
|
2006-10-27 20:31:49 -03:00
|
|
|
name: keywordonly_args
|
|
|
|
argcount: 2
|
|
|
|
kwonlyargcount: 1
|
|
|
|
names: ()
|
|
|
|
varnames: ('a', 'b', 'k1')
|
|
|
|
cellvars: ()
|
|
|
|
freevars: ()
|
|
|
|
nlocals: 3
|
|
|
|
flags: 67
|
|
|
|
consts: ('None',)
|
|
|
|
|
2005-10-20 16:59:25 -03:00
|
|
|
"""
|
|
|
|
|
Merged revisions 72487-72488,72879 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r72487 | jeffrey.yasskin | 2009-05-08 17:51:06 -0400 (Fri, 08 May 2009) | 7 lines
PyCode_NewEmpty:
Most uses of PyCode_New found by http://www.google.com/codesearch?q=PyCode_New
are trying to build an empty code object, usually to put it in a dummy frame
object. This patch adds a PyCode_NewEmpty wrapper which lets the user specify
just the filename, function name, and first line number, instead of also
requiring lots of code internals.
........
r72488 | jeffrey.yasskin | 2009-05-08 18:23:21 -0400 (Fri, 08 May 2009) | 13 lines
Issue 5954, PyFrame_GetLineNumber:
Most uses of PyCode_Addr2Line
(http://www.google.com/codesearch?q=PyCode_Addr2Line) are just trying to get
the line number of a specified frame, but there's no way to do that directly.
Forcing people to go through the code object makes them know more about the
guts of the interpreter than they should need.
The remaining uses of PyCode_Addr2Line seem to be getting the line from a
traceback (for example,
http://www.google.com/codesearch/p?hl=en#u_9_nDrchrw/pygame-1.7.1release/src/base.c&q=PyCode_Addr2Line),
which is replaced by the tb_lineno field. So we may be able to deprecate
PyCode_Addr2Line entirely for external use.
........
r72879 | jeffrey.yasskin | 2009-05-23 19:23:01 -0400 (Sat, 23 May 2009) | 14 lines
Issue #6042:
lnotab-based tracing is very complicated and isn't documented very well. There
were at least 3 comment blocks purporting to document co_lnotab, and none did a
very good job. This patch unifies them into Objects/lnotab_notes.txt which
tries to completely capture the current state of affairs.
I also discovered that we've attached 2 layers of patches to the basic tracing
scheme. The first layer avoids jumping to instructions that don't start a line,
to avoid problems in if statements and while loops. The second layer
discovered that jumps backward do need to trace at instructions that don't
start a line, so it added extra lnotab entries for 'while' and 'for' loops, and
added a special case for backward jumps within the same line. I replaced these
patches by just treating forward and backward jumps differently.
........
2009-07-21 01:30:03 -03:00
|
|
|
import unittest
|
2010-03-18 19:46:40 -03:00
|
|
|
import weakref
|
2014-02-07 04:06:39 -04:00
|
|
|
from test.support import run_doctest, run_unittest, cpython_only
|
Merged revisions 72487-72488,72879 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r72487 | jeffrey.yasskin | 2009-05-08 17:51:06 -0400 (Fri, 08 May 2009) | 7 lines
PyCode_NewEmpty:
Most uses of PyCode_New found by http://www.google.com/codesearch?q=PyCode_New
are trying to build an empty code object, usually to put it in a dummy frame
object. This patch adds a PyCode_NewEmpty wrapper which lets the user specify
just the filename, function name, and first line number, instead of also
requiring lots of code internals.
........
r72488 | jeffrey.yasskin | 2009-05-08 18:23:21 -0400 (Fri, 08 May 2009) | 13 lines
Issue 5954, PyFrame_GetLineNumber:
Most uses of PyCode_Addr2Line
(http://www.google.com/codesearch?q=PyCode_Addr2Line) are just trying to get
the line number of a specified frame, but there's no way to do that directly.
Forcing people to go through the code object makes them know more about the
guts of the interpreter than they should need.
The remaining uses of PyCode_Addr2Line seem to be getting the line from a
traceback (for example,
http://www.google.com/codesearch/p?hl=en#u_9_nDrchrw/pygame-1.7.1release/src/base.c&q=PyCode_Addr2Line),
which is replaced by the tb_lineno field. So we may be able to deprecate
PyCode_Addr2Line entirely for external use.
........
r72879 | jeffrey.yasskin | 2009-05-23 19:23:01 -0400 (Sat, 23 May 2009) | 14 lines
Issue #6042:
lnotab-based tracing is very complicated and isn't documented very well. There
were at least 3 comment blocks purporting to document co_lnotab, and none did a
very good job. This patch unifies them into Objects/lnotab_notes.txt which
tries to completely capture the current state of affairs.
I also discovered that we've attached 2 layers of patches to the basic tracing
scheme. The first layer avoids jumping to instructions that don't start a line,
to avoid problems in if statements and while loops. The second layer
discovered that jumps backward do need to trace at instructions that don't
start a line, so it added extra lnotab entries for 'while' and 'for' loops, and
added a special case for backward jumps within the same line. I replaced these
patches by just treating forward and backward jumps differently.
........
2009-07-21 01:30:03 -03:00
|
|
|
|
2010-03-18 19:46:40 -03:00
|
|
|
|
2005-10-20 16:59:25 -03:00
|
|
|
def consts(t):
|
|
|
|
"""Yield a doctest-safe sequence of object reprs."""
|
|
|
|
for elt in t:
|
|
|
|
r = repr(elt)
|
|
|
|
if r.startswith("<code object"):
|
|
|
|
yield "<code object %s>" % elt.co_name
|
|
|
|
else:
|
|
|
|
yield r
|
|
|
|
|
|
|
|
def dump(co):
|
|
|
|
"""Print out a text representation of a code object."""
|
2006-10-27 20:31:49 -03:00
|
|
|
for attr in ["name", "argcount", "kwonlyargcount", "names", "varnames",
|
|
|
|
"cellvars", "freevars", "nlocals", "flags"]:
|
2007-02-09 01:37:30 -04:00
|
|
|
print("%s: %s" % (attr, getattr(co, "co_" + attr)))
|
|
|
|
print("consts:", tuple(consts(co.co_consts)))
|
2005-10-20 16:59:25 -03:00
|
|
|
|
Merged revisions 72487-72488,72879 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r72487 | jeffrey.yasskin | 2009-05-08 17:51:06 -0400 (Fri, 08 May 2009) | 7 lines
PyCode_NewEmpty:
Most uses of PyCode_New found by http://www.google.com/codesearch?q=PyCode_New
are trying to build an empty code object, usually to put it in a dummy frame
object. This patch adds a PyCode_NewEmpty wrapper which lets the user specify
just the filename, function name, and first line number, instead of also
requiring lots of code internals.
........
r72488 | jeffrey.yasskin | 2009-05-08 18:23:21 -0400 (Fri, 08 May 2009) | 13 lines
Issue 5954, PyFrame_GetLineNumber:
Most uses of PyCode_Addr2Line
(http://www.google.com/codesearch?q=PyCode_Addr2Line) are just trying to get
the line number of a specified frame, but there's no way to do that directly.
Forcing people to go through the code object makes them know more about the
guts of the interpreter than they should need.
The remaining uses of PyCode_Addr2Line seem to be getting the line from a
traceback (for example,
http://www.google.com/codesearch/p?hl=en#u_9_nDrchrw/pygame-1.7.1release/src/base.c&q=PyCode_Addr2Line),
which is replaced by the tb_lineno field. So we may be able to deprecate
PyCode_Addr2Line entirely for external use.
........
r72879 | jeffrey.yasskin | 2009-05-23 19:23:01 -0400 (Sat, 23 May 2009) | 14 lines
Issue #6042:
lnotab-based tracing is very complicated and isn't documented very well. There
were at least 3 comment blocks purporting to document co_lnotab, and none did a
very good job. This patch unifies them into Objects/lnotab_notes.txt which
tries to completely capture the current state of affairs.
I also discovered that we've attached 2 layers of patches to the basic tracing
scheme. The first layer avoids jumping to instructions that don't start a line,
to avoid problems in if statements and while loops. The second layer
discovered that jumps backward do need to trace at instructions that don't
start a line, so it added extra lnotab entries for 'while' and 'for' loops, and
added a special case for backward jumps within the same line. I replaced these
patches by just treating forward and backward jumps differently.
........
2009-07-21 01:30:03 -03:00
|
|
|
|
|
|
|
class CodeTest(unittest.TestCase):
|
|
|
|
|
2014-02-07 04:06:39 -04:00
|
|
|
@cpython_only
|
Merged revisions 72487-72488,72879 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r72487 | jeffrey.yasskin | 2009-05-08 17:51:06 -0400 (Fri, 08 May 2009) | 7 lines
PyCode_NewEmpty:
Most uses of PyCode_New found by http://www.google.com/codesearch?q=PyCode_New
are trying to build an empty code object, usually to put it in a dummy frame
object. This patch adds a PyCode_NewEmpty wrapper which lets the user specify
just the filename, function name, and first line number, instead of also
requiring lots of code internals.
........
r72488 | jeffrey.yasskin | 2009-05-08 18:23:21 -0400 (Fri, 08 May 2009) | 13 lines
Issue 5954, PyFrame_GetLineNumber:
Most uses of PyCode_Addr2Line
(http://www.google.com/codesearch?q=PyCode_Addr2Line) are just trying to get
the line number of a specified frame, but there's no way to do that directly.
Forcing people to go through the code object makes them know more about the
guts of the interpreter than they should need.
The remaining uses of PyCode_Addr2Line seem to be getting the line from a
traceback (for example,
http://www.google.com/codesearch/p?hl=en#u_9_nDrchrw/pygame-1.7.1release/src/base.c&q=PyCode_Addr2Line),
which is replaced by the tb_lineno field. So we may be able to deprecate
PyCode_Addr2Line entirely for external use.
........
r72879 | jeffrey.yasskin | 2009-05-23 19:23:01 -0400 (Sat, 23 May 2009) | 14 lines
Issue #6042:
lnotab-based tracing is very complicated and isn't documented very well. There
were at least 3 comment blocks purporting to document co_lnotab, and none did a
very good job. This patch unifies them into Objects/lnotab_notes.txt which
tries to completely capture the current state of affairs.
I also discovered that we've attached 2 layers of patches to the basic tracing
scheme. The first layer avoids jumping to instructions that don't start a line,
to avoid problems in if statements and while loops. The second layer
discovered that jumps backward do need to trace at instructions that don't
start a line, so it added extra lnotab entries for 'while' and 'for' loops, and
added a special case for backward jumps within the same line. I replaced these
patches by just treating forward and backward jumps differently.
........
2009-07-21 01:30:03 -03:00
|
|
|
def test_newempty(self):
|
2014-02-07 04:06:39 -04:00
|
|
|
import _testcapi
|
Merged revisions 72487-72488,72879 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r72487 | jeffrey.yasskin | 2009-05-08 17:51:06 -0400 (Fri, 08 May 2009) | 7 lines
PyCode_NewEmpty:
Most uses of PyCode_New found by http://www.google.com/codesearch?q=PyCode_New
are trying to build an empty code object, usually to put it in a dummy frame
object. This patch adds a PyCode_NewEmpty wrapper which lets the user specify
just the filename, function name, and first line number, instead of also
requiring lots of code internals.
........
r72488 | jeffrey.yasskin | 2009-05-08 18:23:21 -0400 (Fri, 08 May 2009) | 13 lines
Issue 5954, PyFrame_GetLineNumber:
Most uses of PyCode_Addr2Line
(http://www.google.com/codesearch?q=PyCode_Addr2Line) are just trying to get
the line number of a specified frame, but there's no way to do that directly.
Forcing people to go through the code object makes them know more about the
guts of the interpreter than they should need.
The remaining uses of PyCode_Addr2Line seem to be getting the line from a
traceback (for example,
http://www.google.com/codesearch/p?hl=en#u_9_nDrchrw/pygame-1.7.1release/src/base.c&q=PyCode_Addr2Line),
which is replaced by the tb_lineno field. So we may be able to deprecate
PyCode_Addr2Line entirely for external use.
........
r72879 | jeffrey.yasskin | 2009-05-23 19:23:01 -0400 (Sat, 23 May 2009) | 14 lines
Issue #6042:
lnotab-based tracing is very complicated and isn't documented very well. There
were at least 3 comment blocks purporting to document co_lnotab, and none did a
very good job. This patch unifies them into Objects/lnotab_notes.txt which
tries to completely capture the current state of affairs.
I also discovered that we've attached 2 layers of patches to the basic tracing
scheme. The first layer avoids jumping to instructions that don't start a line,
to avoid problems in if statements and while loops. The second layer
discovered that jumps backward do need to trace at instructions that don't
start a line, so it added extra lnotab entries for 'while' and 'for' loops, and
added a special case for backward jumps within the same line. I replaced these
patches by just treating forward and backward jumps differently.
........
2009-07-21 01:30:03 -03:00
|
|
|
co = _testcapi.code_newempty("filename", "funcname", 15)
|
2010-11-20 15:04:17 -04:00
|
|
|
self.assertEqual(co.co_filename, "filename")
|
|
|
|
self.assertEqual(co.co_name, "funcname")
|
|
|
|
self.assertEqual(co.co_firstlineno, 15)
|
Merged revisions 72487-72488,72879 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r72487 | jeffrey.yasskin | 2009-05-08 17:51:06 -0400 (Fri, 08 May 2009) | 7 lines
PyCode_NewEmpty:
Most uses of PyCode_New found by http://www.google.com/codesearch?q=PyCode_New
are trying to build an empty code object, usually to put it in a dummy frame
object. This patch adds a PyCode_NewEmpty wrapper which lets the user specify
just the filename, function name, and first line number, instead of also
requiring lots of code internals.
........
r72488 | jeffrey.yasskin | 2009-05-08 18:23:21 -0400 (Fri, 08 May 2009) | 13 lines
Issue 5954, PyFrame_GetLineNumber:
Most uses of PyCode_Addr2Line
(http://www.google.com/codesearch?q=PyCode_Addr2Line) are just trying to get
the line number of a specified frame, but there's no way to do that directly.
Forcing people to go through the code object makes them know more about the
guts of the interpreter than they should need.
The remaining uses of PyCode_Addr2Line seem to be getting the line from a
traceback (for example,
http://www.google.com/codesearch/p?hl=en#u_9_nDrchrw/pygame-1.7.1release/src/base.c&q=PyCode_Addr2Line),
which is replaced by the tb_lineno field. So we may be able to deprecate
PyCode_Addr2Line entirely for external use.
........
r72879 | jeffrey.yasskin | 2009-05-23 19:23:01 -0400 (Sat, 23 May 2009) | 14 lines
Issue #6042:
lnotab-based tracing is very complicated and isn't documented very well. There
were at least 3 comment blocks purporting to document co_lnotab, and none did a
very good job. This patch unifies them into Objects/lnotab_notes.txt which
tries to completely capture the current state of affairs.
I also discovered that we've attached 2 layers of patches to the basic tracing
scheme. The first layer avoids jumping to instructions that don't start a line,
to avoid problems in if statements and while loops. The second layer
discovered that jumps backward do need to trace at instructions that don't
start a line, so it added extra lnotab entries for 'while' and 'for' loops, and
added a special case for backward jumps within the same line. I replaced these
patches by just treating forward and backward jumps differently.
........
2009-07-21 01:30:03 -03:00
|
|
|
|
|
|
|
|
2010-03-18 19:46:40 -03:00
|
|
|
class CodeWeakRefTest(unittest.TestCase):
|
|
|
|
|
|
|
|
def test_basic(self):
|
|
|
|
# Create a code object in a clean environment so that we know we have
|
|
|
|
# the only reference to it left.
|
|
|
|
namespace = {}
|
|
|
|
exec("def f(): pass", globals(), namespace)
|
|
|
|
f = namespace["f"]
|
|
|
|
del namespace
|
|
|
|
|
|
|
|
self.called = False
|
|
|
|
def callback(code):
|
|
|
|
self.called = True
|
|
|
|
|
|
|
|
# f is now the last reference to the function, and through it, the code
|
|
|
|
# object. While we hold it, check that we can create a weakref and
|
|
|
|
# deref it. Then delete it, and check that the callback gets called and
|
|
|
|
# the reference dies.
|
|
|
|
coderef = weakref.ref(f.__code__, callback)
|
|
|
|
self.assertTrue(bool(coderef()))
|
|
|
|
del f
|
|
|
|
self.assertFalse(bool(coderef()))
|
|
|
|
self.assertTrue(self.called)
|
|
|
|
|
|
|
|
|
2005-10-20 16:59:25 -03:00
|
|
|
def test_main(verbose=None):
|
|
|
|
from test import test_code
|
|
|
|
run_doctest(test_code, verbose)
|
2010-03-18 19:46:40 -03:00
|
|
|
run_unittest(CodeTest, CodeWeakRefTest)
|
Merged revisions 62090-62091,62096,62100,62102,62110-62114 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r62090 | brett.cannon | 2008-04-01 07:37:43 -0500 (Tue, 01 Apr 2008) | 3 lines
Generalize test.test_support.test_stdout() with a base context manager so that
it is easy to capture stderr if desired.
........
r62091 | brett.cannon | 2008-04-01 07:46:02 -0500 (Tue, 01 Apr 2008) | 3 lines
Add ``if __name__ == '__main__'`` to some test files where it didn't take a lot
of effort to do so.
........
r62096 | amaury.forgeotdarc | 2008-04-01 17:52:48 -0500 (Tue, 01 Apr 2008) | 4 lines
Newly enabled test appears to leak:
it registers the same codec on each iteration.
Do it only once at load time.
........
r62100 | amaury.forgeotdarc | 2008-04-01 19:55:04 -0500 (Tue, 01 Apr 2008) | 4 lines
A DocTestSuite cannot run multiple times: it clears its globals dictionary after the first run.
Rebuild the DocTestSuite on each iteration.
........
r62102 | jeffrey.yasskin | 2008-04-01 23:07:44 -0500 (Tue, 01 Apr 2008) | 3 lines
Try to make test_signal less flaky. I still see some flakiness in
test_itimer_prof.
........
r62110 | vinay.sajip | 2008-04-02 16:09:27 -0500 (Wed, 02 Apr 2008) | 1 line
Fix: #2315, #2316, #2317: TimedRotatingFileHandler - changed logic to better handle daylight savings time, deletion of old log files, and fixed a bug in calculating rollover when no logging occurs for a longer interval than the rollover period.
........
r62111 | vinay.sajip | 2008-04-02 16:10:23 -0500 (Wed, 02 Apr 2008) | 1 line
Added updates with respect to recent changes to TimedRotatingFileHandler.
........
r62112 | vinay.sajip | 2008-04-02 16:17:25 -0500 (Wed, 02 Apr 2008) | 1 line
Added updates with respect to recent changes to TimedRotatingFileHandler.
........
r62113 | amaury.forgeotdarc | 2008-04-02 16:18:46 -0500 (Wed, 02 Apr 2008) | 2 lines
Remove debug prints; the buildbot now passes the tests
........
r62114 | benjamin.peterson | 2008-04-02 16:20:35 -0500 (Wed, 02 Apr 2008) | 2 lines
Suggested proposed changes to Python be considered on some mailing lists first
........
2008-04-02 18:49:44 -03:00
|
|
|
|
|
|
|
|
2010-03-18 19:46:40 -03:00
|
|
|
if __name__ == "__main__":
|
Merged revisions 62090-62091,62096,62100,62102,62110-62114 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r62090 | brett.cannon | 2008-04-01 07:37:43 -0500 (Tue, 01 Apr 2008) | 3 lines
Generalize test.test_support.test_stdout() with a base context manager so that
it is easy to capture stderr if desired.
........
r62091 | brett.cannon | 2008-04-01 07:46:02 -0500 (Tue, 01 Apr 2008) | 3 lines
Add ``if __name__ == '__main__'`` to some test files where it didn't take a lot
of effort to do so.
........
r62096 | amaury.forgeotdarc | 2008-04-01 17:52:48 -0500 (Tue, 01 Apr 2008) | 4 lines
Newly enabled test appears to leak:
it registers the same codec on each iteration.
Do it only once at load time.
........
r62100 | amaury.forgeotdarc | 2008-04-01 19:55:04 -0500 (Tue, 01 Apr 2008) | 4 lines
A DocTestSuite cannot run multiple times: it clears its globals dictionary after the first run.
Rebuild the DocTestSuite on each iteration.
........
r62102 | jeffrey.yasskin | 2008-04-01 23:07:44 -0500 (Tue, 01 Apr 2008) | 3 lines
Try to make test_signal less flaky. I still see some flakiness in
test_itimer_prof.
........
r62110 | vinay.sajip | 2008-04-02 16:09:27 -0500 (Wed, 02 Apr 2008) | 1 line
Fix: #2315, #2316, #2317: TimedRotatingFileHandler - changed logic to better handle daylight savings time, deletion of old log files, and fixed a bug in calculating rollover when no logging occurs for a longer interval than the rollover period.
........
r62111 | vinay.sajip | 2008-04-02 16:10:23 -0500 (Wed, 02 Apr 2008) | 1 line
Added updates with respect to recent changes to TimedRotatingFileHandler.
........
r62112 | vinay.sajip | 2008-04-02 16:17:25 -0500 (Wed, 02 Apr 2008) | 1 line
Added updates with respect to recent changes to TimedRotatingFileHandler.
........
r62113 | amaury.forgeotdarc | 2008-04-02 16:18:46 -0500 (Wed, 02 Apr 2008) | 2 lines
Remove debug prints; the buildbot now passes the tests
........
r62114 | benjamin.peterson | 2008-04-02 16:20:35 -0500 (Wed, 02 Apr 2008) | 2 lines
Suggested proposed changes to Python be considered on some mailing lists first
........
2008-04-02 18:49:44 -03:00
|
|
|
test_main()
|