Issue #24336: The contextmanager decorator now works with functions with

keyword arguments called "func" and "self".  Patch by Martin Panter.
This commit is contained in:
Serhiy Storchaka 2015-06-28 17:06:07 +03:00
parent acac1e0e3b
commit 101ff3541c
4 changed files with 17 additions and 6 deletions

View file

@ -111,6 +111,14 @@ class ContextManagerTestCase(unittest.TestCase):
baz = self._create_contextmanager_attribs()(None)
self.assertEqual(baz.__doc__, "Whee!")
def test_keywords(self):
# Ensure no keyword arguments are inhibited
@contextmanager
def woohoo(self, func, args, kwds):
yield (self, func, args, kwds)
with woohoo(self=11, func=22, args=33, kwds=44) as target:
self.assertEqual(target, (11, 22, 33, 44))
class ClosingTestCase(unittest.TestCase):