Finish bringing SVN into line with latest version of PEP 343 by getting rid of all remaining references to context objects that I could find. Without a __context__() method context objects no longer exist. Also get test_with working again, and adopt a suggestion from Neal for decimal.Context.get_manager()
diff --git a/Lib/test/test_contextlib.py b/Lib/test/test_contextlib.py
index 8d3dd1a..2cf39ae 100644
--- a/Lib/test/test_contextlib.py
+++ b/Lib/test/test_contextlib.py
@@ -13,9 +13,9 @@
class ContextManagerTestCase(unittest.TestCase):
- def test_contextfactory_plain(self):
+ def test_contextmanager_plain(self):
state = []
- @contextfactory
+ @contextmanager
def woohoo():
state.append(1)
yield 42
@@ -26,9 +26,9 @@
state.append(x)
self.assertEqual(state, [1, 42, 999])
- def test_contextfactory_finally(self):
+ def test_contextmanager_finally(self):
state = []
- @contextfactory
+ @contextmanager
def woohoo():
state.append(1)
try:
@@ -47,8 +47,8 @@
self.fail("Expected ZeroDivisionError")
self.assertEqual(state, [1, 42, 999])
- def test_contextfactory_no_reraise(self):
- @contextfactory
+ def test_contextmanager_no_reraise(self):
+ @contextmanager
def whee():
yield
ctx = whee()
@@ -56,8 +56,8 @@
# Calling __exit__ should not result in an exception
self.failIf(ctx.__exit__(TypeError, TypeError("foo"), None))
- def test_contextfactory_trap_yield_after_throw(self):
- @contextfactory
+ def test_contextmanager_trap_yield_after_throw(self):
+ @contextmanager
def whoo():
try:
yield
@@ -69,9 +69,9 @@
RuntimeError, ctx.__exit__, TypeError, TypeError("foo"), None
)
- def test_contextfactory_except(self):
+ def test_contextmanager_except(self):
state = []
- @contextfactory
+ @contextmanager
def woohoo():
state.append(1)
try:
@@ -86,14 +86,14 @@
raise ZeroDivisionError(999)
self.assertEqual(state, [1, 42, 999])
- def test_contextfactory_attribs(self):
+ def test_contextmanager_attribs(self):
def attribs(**kw):
def decorate(func):
for k,v in kw.items():
setattr(func,k,v)
return func
return decorate
- @contextfactory
+ @contextmanager
@attribs(foo='bar')
def baz(spam):
"""Whee!"""
@@ -106,13 +106,13 @@
# XXX This needs more work
def test_nested(self):
- @contextfactory
+ @contextmanager
def a():
yield 1
- @contextfactory
+ @contextmanager
def b():
yield 2
- @contextfactory
+ @contextmanager
def c():
yield 3
with nested(a(), b(), c()) as (x, y, z):
@@ -122,14 +122,14 @@
def test_nested_cleanup(self):
state = []
- @contextfactory
+ @contextmanager
def a():
state.append(1)
try:
yield 2
finally:
state.append(3)
- @contextfactory
+ @contextmanager
def b():
state.append(4)
try:
@@ -148,7 +148,7 @@
def test_nested_right_exception(self):
state = []
- @contextfactory
+ @contextmanager
def a():
yield 1
class b(object):
@@ -170,10 +170,10 @@
self.fail("Didn't raise ZeroDivisionError")
def test_nested_b_swallows(self):
- @contextfactory
+ @contextmanager
def a():
yield
- @contextfactory
+ @contextmanager
def b():
try:
yield
@@ -187,7 +187,7 @@
self.fail("Didn't swallow ZeroDivisionError")
def test_nested_break(self):
- @contextfactory
+ @contextmanager
def a():
yield
state = 0
@@ -199,7 +199,7 @@
self.assertEqual(state, 1)
def test_nested_continue(self):
- @contextfactory
+ @contextmanager
def a():
yield
state = 0
@@ -211,7 +211,7 @@
self.assertEqual(state, 3)
def test_nested_return(self):
- @contextfactory
+ @contextmanager
def a():
try:
yield
@@ -339,12 +339,12 @@
orig_context = ctx.copy()
try:
ctx.prec = save_prec = decimal.ExtendedContext.prec + 5
- with decimal.ExtendedContext.context_manager():
+ with decimal.ExtendedContext.get_manager():
self.assertEqual(decimal.getcontext().prec,
decimal.ExtendedContext.prec)
self.assertEqual(decimal.getcontext().prec, save_prec)
try:
- with decimal.ExtendedContext.context_manager():
+ with decimal.ExtendedContext.get_manager():
self.assertEqual(decimal.getcontext().prec,
decimal.ExtendedContext.prec)
1/0
diff --git a/Lib/test/test_with.py b/Lib/test/test_with.py
index 765bfec..5750508 100644
--- a/Lib/test/test_with.py
+++ b/Lib/test/test_with.py
@@ -10,25 +10,26 @@
import sys
import unittest
from collections import deque
-from contextlib import GeneratorContext, contextfactory
+from contextlib import GeneratorContextManager, contextmanager
from test.test_support import run_unittest
-class MockContextManager(GeneratorContext):
+class MockContextManager(GeneratorContextManager):
def __init__(self, gen):
- GeneratorContext.__init__(self, gen)
+ GeneratorContextManager.__init__(self, gen)
self.enter_called = False
self.exit_called = False
self.exit_args = None
def __enter__(self):
self.enter_called = True
- return GeneratorContext.__enter__(self)
+ return GeneratorContextManager.__enter__(self)
def __exit__(self, type, value, traceback):
self.exit_called = True
self.exit_args = (type, value, traceback)
- return GeneratorContext.__exit__(self, type, value, traceback)
+ return GeneratorContextManager.__exit__(self, type,
+ value, traceback)
def mock_contextmanager(func):
@@ -439,7 +440,7 @@
self.assertAfterWithGeneratorInvariantsNoError(self.bar)
def testRaisedStopIteration1(self):
- @contextfactory
+ @contextmanager
def cm():
yield
@@ -463,7 +464,7 @@
self.assertRaises(StopIteration, shouldThrow)
def testRaisedGeneratorExit1(self):
- @contextfactory
+ @contextmanager
def cm():
yield