Issue #11647: allow contextmanager objects to be used as decorators as described in the docs. Initial patch by Ysj Ray.
diff --git a/Lib/test/test_contextlib.py b/Lib/test/test_contextlib.py
index d6bb5b8..6e38305 100644
--- a/Lib/test/test_contextlib.py
+++ b/Lib/test/test_contextlib.py
@@ -350,13 +350,13 @@
 
 
     def test_contextmanager_as_decorator(self):
-        state = []
         @contextmanager
         def woohoo(y):
             state.append(y)
             yield
             state.append(999)
 
+        state = []
         @woohoo(1)
         def test(x):
             self.assertEqual(state, [1])
@@ -364,6 +364,11 @@
         test('something')
         self.assertEqual(state, [1, 'something', 999])
 
+        # Issue #11647: Ensure the decorated function is 'reusable'
+        state = []
+        test('something else')
+        self.assertEqual(state, [1, 'something else', 999])
+
 
 # This is needed to make the test actually run under regrtest.py!
 def test_main():