mirror of https://github.com/python/cpython.git
Merged revisions 78351 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r78351 | r.david.murray | 2010-02-22 19:24:49 -0500 (Mon, 22 Feb 2010) | 5 lines Issue 6292: for the moment at least, the test suite passes if run with -OO. Tests requiring docstrings are skipped. Patch by Brian Curtin, thanks to Matias Torchinsky for helping review and improve the patch. ........
This commit is contained in:
parent
72aee3dcab
commit
378c0cf5ab
|
@ -16,7 +16,7 @@ class BuildPyTestCase(support.TempdirManager,
|
|||
support.LoggingSilencer,
|
||||
unittest.TestCase):
|
||||
|
||||
def test_package_data(self):
|
||||
def _setup_package_data(self):
|
||||
sources = self.mkdtemp()
|
||||
f = open(os.path.join(sources, "__init__.py"), "w")
|
||||
f.write("# Pretend this is a package.")
|
||||
|
@ -52,10 +52,19 @@ def test_package_data(self):
|
|||
self.assertEqual(len(cmd.get_outputs()), 3)
|
||||
pkgdest = os.path.join(destination, "pkg")
|
||||
files = os.listdir(pkgdest)
|
||||
return files
|
||||
|
||||
def test_package_data(self):
|
||||
files = self._setup_package_data()
|
||||
self.assertTrue("__init__.py" in files)
|
||||
self.assertTrue("__init__.pyc" in files)
|
||||
self.assertTrue("README.txt" in files)
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"pyc files are not written with -O2 and above")
|
||||
def test_package_data_pyc(self):
|
||||
files = self._setup_package_data()
|
||||
self.assertTrue("__init__.pyc" in files)
|
||||
|
||||
def test_empty_package_dir (self):
|
||||
# See SF 1668596/1720897.
|
||||
cwd = os.getcwd()
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
"""Tests for distutils.extension."""
|
||||
import unittest
|
||||
import os
|
||||
import sys
|
||||
import unittest
|
||||
import warnings
|
||||
|
||||
from test.support import check_warnings
|
||||
|
@ -32,16 +33,22 @@ def test_read_setup_file(self):
|
|||
|
||||
self.assertEquals(names, wanted)
|
||||
|
||||
def test_extension_init(self):
|
||||
# the first argument, which is the name, must be a string
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Assertions are omitted with -O2 and above")
|
||||
def test_extension_init_assertions(self):
|
||||
# The first argument, which is the name, must be a string.
|
||||
self.assertRaises(AssertionError, Extension, 1, [])
|
||||
ext = Extension('name', [])
|
||||
self.assertEquals(ext.name, 'name')
|
||||
|
||||
# the second argument, which is the list of files, must
|
||||
# be a list of strings
|
||||
self.assertRaises(AssertionError, Extension, 'name', 'file')
|
||||
self.assertRaises(AssertionError, Extension, 'name', ['file', 1])
|
||||
|
||||
def test_extension_init(self):
|
||||
ext = Extension('name', [])
|
||||
self.assertEquals(ext.name, 'name')
|
||||
|
||||
|
||||
ext = Extension('name', ['file1', 'file2'])
|
||||
self.assertEquals(ext.sources, ['file1', 'file2'])
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
"""Tests for distutils.command.install_data."""
|
||||
import sys
|
||||
import os
|
||||
import sys
|
||||
import unittest
|
||||
|
||||
from distutils.command.install_lib import install_lib
|
||||
|
@ -31,9 +31,7 @@ def test_finalize_options(self):
|
|||
cmd.finalize_options()
|
||||
self.assertEquals(cmd.optimize, 2)
|
||||
|
||||
@unittest.skipUnless(not sys.dont_write_bytecode,
|
||||
'byte-compile not supported')
|
||||
def test_byte_compile(self):
|
||||
def _setup_byte_compile(self):
|
||||
pkg_dir, dist = self.create_dist()
|
||||
cmd = install_lib(dist)
|
||||
cmd.compile = cmd.optimize = 1
|
||||
|
@ -41,8 +39,15 @@ def test_byte_compile(self):
|
|||
f = os.path.join(pkg_dir, 'foo.py')
|
||||
self.write_file(f, '# python file')
|
||||
cmd.byte_compile([f])
|
||||
self.assertTrue(os.path.exists(os.path.join(pkg_dir, 'foo.pyc')))
|
||||
self.assertTrue(os.path.exists(os.path.join(pkg_dir, 'foo.pyo')))
|
||||
return pkg_dir
|
||||
|
||||
@unittest.skipIf(sys.dont_write_bytecode, 'byte-compile not enabled')
|
||||
def test_byte_compile(self):
|
||||
pkg_dir = self._setup_byte_compile()
|
||||
if sys.flags.optimize < 1:
|
||||
self.assertTrue(os.path.exists(os.path.join(pkg_dir, 'foo.pyc')))
|
||||
else:
|
||||
self.assertTrue(os.path.exists(os.path.join(pkg_dir, 'foo.pyo')))
|
||||
|
||||
def test_get_outputs(self):
|
||||
pkg_dir, dist = self.create_dist()
|
||||
|
|
|
@ -2192,6 +2192,19 @@ def __repr__(self):
|
|||
def shortDescription(self):
|
||||
return "Doctest: " + self._dt_test.name
|
||||
|
||||
class SkipDocTestCase(DocTestCase):
|
||||
def __init__(self):
|
||||
DocTestCase.__init__(self, None)
|
||||
|
||||
def setUp(self):
|
||||
self.skipTest("DocTestSuite will not work with -O2 and above")
|
||||
|
||||
def test_skip(self):
|
||||
pass
|
||||
|
||||
def shortDescription(self):
|
||||
return "Skipping tests from %s" % module.__name__
|
||||
|
||||
def DocTestSuite(module=None, globs=None, extraglobs=None, test_finder=None,
|
||||
**options):
|
||||
"""
|
||||
|
@ -2234,13 +2247,20 @@ def DocTestSuite(module=None, globs=None, extraglobs=None, test_finder=None,
|
|||
|
||||
module = _normalize_module(module)
|
||||
tests = test_finder.find(module, globs=globs, extraglobs=extraglobs)
|
||||
if not tests:
|
||||
|
||||
if not tests and sys.flags.optimize >=2:
|
||||
# Skip doctests when running with -O2
|
||||
suite = unittest.TestSuite()
|
||||
suite.addTest(SkipDocTestCase())
|
||||
return suite
|
||||
elif not tests:
|
||||
# Why do we want to do this? Because it reveals a bug that might
|
||||
# otherwise be hidden.
|
||||
raise ValueError(module, "has no tests")
|
||||
|
||||
tests.sort()
|
||||
suite = unittest.TestSuite()
|
||||
|
||||
for test in tests:
|
||||
if len(test.examples) == 0:
|
||||
continue
|
||||
|
|
|
@ -239,6 +239,9 @@ def test_crlf_newlines(self):
|
|||
finally:
|
||||
os.linesep = old_sep
|
||||
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_refactor_docstring(self):
|
||||
rt = self.rt()
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
import operator
|
||||
import keyword
|
||||
import re
|
||||
import sys
|
||||
from collections import Hashable, Iterable, Iterator
|
||||
from collections import Sized, Container, Callable
|
||||
from collections import Set, MutableSet
|
||||
|
@ -24,7 +25,6 @@ class TestNamedTuple(unittest.TestCase):
|
|||
def test_factory(self):
|
||||
Point = namedtuple('Point', 'x y')
|
||||
self.assertEqual(Point.__name__, 'Point')
|
||||
self.assertEqual(Point.__doc__, 'Point(x, y)')
|
||||
self.assertEqual(Point.__slots__, ())
|
||||
self.assertEqual(Point.__module__, __name__)
|
||||
self.assertEqual(Point.__getitem__, tuple.__getitem__)
|
||||
|
@ -51,6 +51,12 @@ def test_factory(self):
|
|||
self.assertRaises(TypeError, Point._make, [11]) # catch too few args
|
||||
self.assertRaises(TypeError, Point._make, [11, 22, 33]) # catch too many args
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_factory_doc_attr(self):
|
||||
Point = namedtuple('Point', 'x y')
|
||||
self.assertEqual(Point.__doc__, 'Point(x, y)')
|
||||
|
||||
def test_name_fixer(self):
|
||||
for spec, renamed in [
|
||||
[('efg', 'g%hi'), ('efg', '_1')], # field with non-alpha char
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
import sys
|
||||
import os
|
||||
import decimal
|
||||
import sys
|
||||
import tempfile
|
||||
import unittest
|
||||
import threading
|
||||
|
@ -85,7 +86,7 @@ def woohoo():
|
|||
raise ZeroDivisionError(999)
|
||||
self.assertEqual(state, [1, 42, 999])
|
||||
|
||||
def test_contextmanager_attribs(self):
|
||||
def _create_contextmanager_attribs(self):
|
||||
def attribs(**kw):
|
||||
def decorate(func):
|
||||
for k,v in kw.items():
|
||||
|
@ -96,8 +97,17 @@ def decorate(func):
|
|||
@attribs(foo='bar')
|
||||
def baz(spam):
|
||||
"""Whee!"""
|
||||
return baz
|
||||
|
||||
def test_contextmanager_attribs(self):
|
||||
baz = self._create_contextmanager_attribs()
|
||||
self.assertEqual(baz.__name__,'baz')
|
||||
self.assertEqual(baz.foo, 'bar')
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_contextmanager_doc_attrib(self):
|
||||
baz = self._create_contextmanager_attribs()
|
||||
self.assertEqual(baz.__doc__, "Whee!")
|
||||
|
||||
class ClosingTestCase(unittest.TestCase):
|
||||
|
|
|
@ -1817,6 +1817,9 @@ class D(object):
|
|||
else:
|
||||
self.fail("expected ZeroDivisionError from bad property")
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_properties_doc_attrib(self):
|
||||
class E(object):
|
||||
def getter(self):
|
||||
"getter method"
|
||||
|
@ -1829,6 +1832,7 @@ def setter(self_, value):
|
|||
prop2 = property(fset=setter)
|
||||
self.assertEqual(prop2.__doc__, None)
|
||||
|
||||
def test_testcapi_no_segfault(self):
|
||||
# this segfaulted in 2.5b2
|
||||
try:
|
||||
import _testcapi
|
||||
|
|
|
@ -12,7 +12,11 @@
|
|||
|
||||
"""
|
||||
|
||||
import sys
|
||||
import unittest
|
||||
from test import support
|
||||
if sys.flags.optimize >= 2:
|
||||
raise unittest.SkipTest("Cannot test docstrings with -O2")
|
||||
|
||||
class C(object):
|
||||
"""Class C.
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from xmlrpc.server import DocXMLRPCServer
|
||||
import http.client
|
||||
import sys
|
||||
from test import support
|
||||
import threading
|
||||
import time
|
||||
|
@ -7,6 +8,20 @@
|
|||
|
||||
PORT = None
|
||||
|
||||
def make_request_and_skipIf(condition, reason):
|
||||
# If we skip the test, we have to make a request because the
|
||||
# the server created in setUp blocks expecting one to come in.
|
||||
if not condition:
|
||||
return lambda func: func
|
||||
def decorator(func):
|
||||
def make_request_and_skip(self):
|
||||
self.client.request("GET", "/")
|
||||
self.client.getresponse()
|
||||
raise unittest.SkipTest(reason)
|
||||
return make_request_and_skip
|
||||
return decorator
|
||||
|
||||
|
||||
def server(evt, numrequests):
|
||||
serv = DocXMLRPCServer(("localhost", 0), logRequests=False)
|
||||
|
||||
|
@ -110,10 +125,12 @@ def test_lambda(self):
|
|||
b'<lambda></strong></a>(x, y)</dt></dl>'),
|
||||
response.read())
|
||||
|
||||
@make_request_and_skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_autolinking(self):
|
||||
"""Test that the server correctly automatically wraps references to PEPS
|
||||
and RFCs with links, and that it linkifies text starting with http or
|
||||
ftp protocol prefixes.
|
||||
"""Test that the server correctly automatically wraps references to
|
||||
PEPS and RFCs with links, and that it linkifies text starting with
|
||||
http or ftp protocol prefixes.
|
||||
|
||||
The documentation for the "add" method contains the test material.
|
||||
"""
|
||||
|
@ -132,11 +149,13 @@ def test_autolinking(self):
|
|||
b'auto-linked, too:<br>\n<a href="http://google.com">'
|
||||
b'http://google.com</a>.</tt></dd></dl>'), response)
|
||||
|
||||
@make_request_and_skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_system_methods(self):
|
||||
"""Test the precense of three consecutive system.* methods.
|
||||
|
||||
This also tests their use of parameter type recognition and the systems
|
||||
related to that process.
|
||||
This also tests their use of parameter type recognition and the
|
||||
systems related to that process.
|
||||
"""
|
||||
self.client.request("GET", "/")
|
||||
response = self.client.getresponse().read()
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import functools
|
||||
import sys
|
||||
import unittest
|
||||
from test import support
|
||||
from weakref import proxy
|
||||
|
@ -180,7 +181,7 @@ def check_wrapper(self, wrapper, wrapped,
|
|||
for key in wrapped_attr:
|
||||
self.assertTrue(wrapped_attr[key] is wrapper_attr[key])
|
||||
|
||||
def test_default_update(self):
|
||||
def _default_update(self):
|
||||
def f():
|
||||
"""This is a test"""
|
||||
pass
|
||||
|
@ -188,11 +189,20 @@ def f():
|
|||
def wrapper():
|
||||
pass
|
||||
functools.update_wrapper(wrapper, f)
|
||||
return wrapper, f
|
||||
|
||||
def test_default_update(self):
|
||||
wrapper, f = self._default_update()
|
||||
self.check_wrapper(wrapper, f)
|
||||
self.assertEqual(wrapper.__name__, 'f')
|
||||
self.assertEqual(wrapper.__doc__, 'This is a test')
|
||||
self.assertEqual(wrapper.attr, 'This is also a test')
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_default_update_doc(self):
|
||||
wrapper, f = self._default_update()
|
||||
self.assertEqual(wrapper.__doc__, 'This is a test')
|
||||
|
||||
def test_no_update(self):
|
||||
def f():
|
||||
"""This is a test"""
|
||||
|
@ -233,7 +243,7 @@ def wrapper():
|
|||
|
||||
class TestWraps(TestUpdateWrapper):
|
||||
|
||||
def test_default_update(self):
|
||||
def _default_update(self):
|
||||
def f():
|
||||
"""This is a test"""
|
||||
pass
|
||||
|
@ -242,10 +252,19 @@ def f():
|
|||
def wrapper():
|
||||
pass
|
||||
self.check_wrapper(wrapper, f)
|
||||
return wrapper
|
||||
|
||||
def test_default_update(self):
|
||||
wrapper = self._default_update()
|
||||
self.assertEqual(wrapper.__name__, 'f')
|
||||
self.assertEqual(wrapper.__doc__, 'This is a test')
|
||||
self.assertEqual(wrapper.attr, 'This is also a test')
|
||||
|
||||
@unittest.skipIf(not sys.flags.optimize <= 1,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_default_update_doc(self):
|
||||
wrapper = self._default_update()
|
||||
self.assertEqual(wrapper.__doc__, 'This is a test')
|
||||
|
||||
def test_no_update(self):
|
||||
def f():
|
||||
"""This is a test"""
|
||||
|
@ -350,7 +369,6 @@ def __getitem__(self, i):
|
|||
|
||||
|
||||
def test_main(verbose=None):
|
||||
import sys
|
||||
test_classes = (
|
||||
TestPartial,
|
||||
TestPartialSubclass,
|
||||
|
|
|
@ -236,6 +236,8 @@ def test_getfunctions(self):
|
|||
self.assertEqual(functions, [('eggs', mod.eggs),
|
||||
('spam', mod.spam)])
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_getdoc(self):
|
||||
self.assertEqual(inspect.getdoc(mod), 'A module docstring.')
|
||||
self.assertEqual(inspect.getdoc(mod.StupidGit),
|
||||
|
|
|
@ -53,7 +53,8 @@ def setUp(self):
|
|||
def tearDown(self):
|
||||
sys.path[:] = self.syspath
|
||||
support.modules_cleanup(*self.modules_before)
|
||||
cleanout(self.root)
|
||||
if self.root: # Only clean if the test was actually run
|
||||
cleanout(self.root)
|
||||
|
||||
# delete all modules concerning the tested hiearchy
|
||||
if self.pkgname:
|
||||
|
@ -103,9 +104,6 @@ def test_2(self):
|
|||
]
|
||||
self.mkhier(hier)
|
||||
|
||||
import t2
|
||||
self.assertEqual(t2.__doc__, "doc for t2")
|
||||
|
||||
import t2.sub
|
||||
import t2.sub.subsub
|
||||
self.assertEqual(t2.__name__, "t2")
|
||||
|
@ -276,6 +274,17 @@ def test_7(self):
|
|||
self.assertFalse(sub)
|
||||
self.assertFalse(subsub)
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_8(self):
|
||||
hier = [
|
||||
("t8", None),
|
||||
("t8 __init__"+os.extsep+"py", "'doc for t8'"),
|
||||
]
|
||||
self.mkhier(hier)
|
||||
|
||||
import t8
|
||||
self.assertEqual(t8.__doc__, "doc for t8")
|
||||
|
||||
def test_main():
|
||||
support.run_unittest(__name__)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# Test case for property
|
||||
# more tests are in test_descr
|
||||
|
||||
import sys
|
||||
import unittest
|
||||
from test.support import run_unittest
|
||||
|
||||
|
@ -91,7 +92,6 @@ def test_property_decorator_baseclass(self):
|
|||
base.spam = 20
|
||||
self.assertEqual(base.spam, 20)
|
||||
self.assertEqual(base._spam, 20)
|
||||
self.assertEqual(base.__class__.spam.__doc__, "BaseClass.getter")
|
||||
|
||||
def test_property_decorator_subclass(self):
|
||||
# see #1620
|
||||
|
@ -99,14 +99,27 @@ def test_property_decorator_subclass(self):
|
|||
self.assertRaises(PropertyGet, getattr, sub, "spam")
|
||||
self.assertRaises(PropertySet, setattr, sub, "spam", None)
|
||||
self.assertRaises(PropertyDel, delattr, sub, "spam")
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_property_decorator_subclass_doc(self):
|
||||
sub = SubClass()
|
||||
self.assertEqual(sub.__class__.spam.__doc__, "SubClass.getter")
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_property_decorator_baseclass_doc(self):
|
||||
base = BaseClass()
|
||||
self.assertEqual(base.__class__.spam.__doc__, "BaseClass.getter")
|
||||
|
||||
def test_property_decorator_doc(self):
|
||||
base = PropertyDocBase()
|
||||
sub = PropertyDocSub()
|
||||
self.assertEqual(base.__class__.spam.__doc__, "spam spam spam")
|
||||
self.assertEqual(sub.__class__.spam.__doc__, "spam spam spam")
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 1,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_property_getter_doc_override(self):
|
||||
newgettersub = PropertySubNewGetter()
|
||||
self.assertEqual(newgettersub.spam, 5)
|
||||
|
@ -126,16 +139,6 @@ class PropertySubSlots(property):
|
|||
|
||||
class PropertySubclassTests(unittest.TestCase):
|
||||
|
||||
def test_docstring_copy(self):
|
||||
class Foo(object):
|
||||
@PropertySub
|
||||
def spam(self):
|
||||
"""spam wrapped in property subclass"""
|
||||
return 1
|
||||
self.assertEqual(
|
||||
Foo.spam.__doc__,
|
||||
"spam wrapped in property subclass")
|
||||
|
||||
def test_slots_docstring_copy_exception(self):
|
||||
try:
|
||||
class Foo(object):
|
||||
|
@ -148,6 +151,20 @@ def spam(self):
|
|||
else:
|
||||
raise Exception("AttributeError not raised")
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_docstring_copy(self):
|
||||
class Foo(object):
|
||||
@PropertySub
|
||||
def spam(self):
|
||||
"""spam wrapped in property subclass"""
|
||||
return 1
|
||||
self.assertEqual(
|
||||
Foo.spam.__doc__,
|
||||
"spam wrapped in property subclass")
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize <= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_property_setter_copies_getter_docstring(self):
|
||||
class Foo(object):
|
||||
def __init__(self): self._spam = 1
|
||||
|
@ -179,6 +196,8 @@ def spam(self, value):
|
|||
FooSub.spam.__doc__,
|
||||
"spam wrapped in property subclass")
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize <= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_property_new_getter_new_docstring(self):
|
||||
|
||||
class Foo(object):
|
||||
|
|
|
@ -236,6 +236,8 @@ def print_diffs(text1, text2):
|
|||
|
||||
class PyDocDocTest(unittest.TestCase):
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_html_doc(self):
|
||||
result, doc_loc = get_pydoc_html(pydoc_mod)
|
||||
mod_file = inspect.getabsfile(pydoc_mod)
|
||||
|
@ -249,6 +251,8 @@ def test_html_doc(self):
|
|||
print_diffs(expected_html, result)
|
||||
self.fail("outputs are not equal, see diff above")
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_text_doc(self):
|
||||
result, doc_loc = get_pydoc_text(pydoc_mod)
|
||||
expected_text = expected_text_pattern % \
|
||||
|
|
|
@ -2051,6 +2051,8 @@ def testGetDescriptionWithoutDocstring(self):
|
|||
'testGetDescriptionWithoutDocstring (' + __name__ +
|
||||
'.Test_TestResult)')
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def testGetDescriptionWithOneLineDocstring(self):
|
||||
"""Tests getDescription() for a method with a docstring."""
|
||||
result = unittest.TextTestResult(None, True, 1)
|
||||
|
@ -2060,6 +2062,8 @@ def testGetDescriptionWithOneLineDocstring(self):
|
|||
'(' + __name__ + '.Test_TestResult)\n'
|
||||
'Tests getDescription() for a method with a docstring.'))
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def testGetDescriptionWithMultiLineDocstring(self):
|
||||
"""Tests getDescription() for a method with a longer docstring.
|
||||
The second line of the docstring.
|
||||
|
@ -2489,12 +2493,16 @@ def defaultTestResult(self):
|
|||
def testShortDescriptionWithoutDocstring(self):
|
||||
self.assertIsNone(self.shortDescription())
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def testShortDescriptionWithOneLineDocstring(self):
|
||||
"""Tests shortDescription() for a method with a docstring."""
|
||||
self.assertEqual(
|
||||
self.shortDescription(),
|
||||
'Tests shortDescription() for a method with a docstring.')
|
||||
|
||||
@unittest.skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def testShortDescriptionWithMultiLineDocstring(self):
|
||||
"""Tests shortDescription() for a method with a longer docstring.
|
||||
|
||||
|
|
|
@ -383,6 +383,22 @@ def is_unavailable_exception(e):
|
|||
if exc_mess and 'temporarily unavailable' in exc_mess.lower():
|
||||
return True
|
||||
|
||||
def make_request_and_skipIf(condition, reason):
|
||||
# If we skip the test, we have to make a request because the
|
||||
# the server created in setUp blocks expecting one to come in.
|
||||
if not condition:
|
||||
return lambda func: func
|
||||
def decorator(func):
|
||||
def make_request_and_skip(self):
|
||||
try:
|
||||
xmlrpclib.ServerProxy(URL).my_function()
|
||||
except (xmlrpclib.ProtocolError, socket.error) as e:
|
||||
if not is_unavailable_exception(e):
|
||||
raise
|
||||
raise unittest.SkipTest(reason)
|
||||
return make_request_and_skip
|
||||
return decorator
|
||||
|
||||
class BaseServerTestCase(unittest.TestCase):
|
||||
requestHandler = None
|
||||
request_count = 1
|
||||
|
@ -403,6 +419,7 @@ def setUp(self):
|
|||
def tearDown(self):
|
||||
# wait on the server thread to terminate
|
||||
self.evt.wait(4.0)
|
||||
# XXX this code does not work, and in fact stop_serving doesn't exist.
|
||||
if not self.evt.is_set():
|
||||
self.evt.set()
|
||||
stop_serving()
|
||||
|
@ -474,6 +491,8 @@ def test_introspection2(self):
|
|||
# protocol error; provide additional information in test output
|
||||
self.fail("%s\n%s" % (e, getattr(e, "headers", "")))
|
||||
|
||||
@make_request_and_skipIf(sys.flags.optimize >= 2,
|
||||
"Docstrings are omitted with -O2 and above")
|
||||
def test_introspection3(self):
|
||||
try:
|
||||
# test native doc
|
||||
|
|
|
@ -763,6 +763,7 @@ Christian Tismer
|
|||
Frank J. Tobin
|
||||
R Lindsay Todd
|
||||
Bennett Todd
|
||||
Matias Torchinsky
|
||||
Richard Townsend
|
||||
Laurence Tratt
|
||||
John Tromp
|
||||
|
|
|
@ -12,7 +12,6 @@ What's New in Python 3.2 Alpha 1?
|
|||
Core and Builtins
|
||||
-----------------
|
||||
|
||||
=======
|
||||
- Issue #6902: Fix problem with built-in types format incorrectly with
|
||||
0 padding.
|
||||
|
||||
|
@ -782,6 +781,9 @@ Documentation
|
|||
Tests
|
||||
-----
|
||||
|
||||
- Issue #6292: for the moment at least, the test suite runs cleanly if python
|
||||
is run with the -OO flag. Tests requiring docstrings are skipped.
|
||||
|
||||
- Issue #7712: test.support gained a new `temp_cwd` context manager which is
|
||||
now also used by regrtest to run all the tests in a temporary directory.
|
||||
The original CWD is saved in `support.SAVEDCWD`.
|
||||
|
|
Loading…
Reference in New Issue