[Python-checkins] r43367 - in python/trunk/Lib: contextlib.py test/test_contextlib.py
phillip.eby
python-checkins at python.org
Tue Mar 28 02:07:24 CEST 2006
Author: phillip.eby
Date: Tue Mar 28 02:07:24 2006
New Revision: 43367
Modified:
python/trunk/Lib/contextlib.py
python/trunk/Lib/test/test_contextlib.py
Log:
Fix contextlib not copying function attributes
Modified: python/trunk/Lib/contextlib.py
==============================================================================
--- python/trunk/Lib/contextlib.py (original)
+++ python/trunk/Lib/contextlib.py Tue Mar 28 02:07:24 2006
@@ -78,6 +78,7 @@
try:
helper.__name__ = func.__name__
helper.__doc__ = func.__doc__
+ helper.__dict__ = func.__dict__
except:
pass
return helper
Modified: python/trunk/Lib/test/test_contextlib.py
==============================================================================
--- python/trunk/Lib/test/test_contextlib.py (original)
+++ python/trunk/Lib/test/test_contextlib.py Tue Mar 28 02:07:24 2006
@@ -84,6 +84,21 @@
raise ZeroDivisionError(999)
self.assertEqual(state, [1, 42, 999])
+ 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
+ @contextmanager
+ @attribs(foo='bar')
+ def baz(spam):
+ """Whee!"""
+ self.assertEqual(baz.__name__,'baz')
+ self.assertEqual(baz.foo, 'bar')
+ self.assertEqual(baz.__doc__, "Whee!")
+
class NestedTestCase(unittest.TestCase):
# XXX This needs more work
More information about the Python-checkins
mailing list