tests/test-extensions-wrapfunction.py
changeset 34014 47e52f079a57
parent 29765 19578bb84731
child 34128 82bd4c5a81e5
equal deleted inserted replaced
34013:da07367d683b 34014:47e52f079a57
    35         print('unwrap %s: %s: %s' % (getid(w), getid(result), msg))
    35         print('unwrap %s: %s: %s' % (getid(w), getid(result), msg))
    36 
    36 
    37 batchwrap(wrappers + [wrappers[0]])
    37 batchwrap(wrappers + [wrappers[0]])
    38 batchunwrap([(wrappers[i] if i >= 0 else None)
    38 batchunwrap([(wrappers[i] if i >= 0 else None)
    39              for i in [3, None, 0, 4, 0, 2, 1, None]])
    39              for i in [3, None, 0, 4, 0, 2, 1, None]])
       
    40 
       
    41 wrap0 = extensions.wrappedfunction(dummy, 'getstack', wrappers[0])
       
    42 wrap1 = extensions.wrappedfunction(dummy, 'getstack', wrappers[1])
       
    43 
       
    44 # Use them in a different order from how they were created to check that
       
    45 # the wrapping happens in __enter__, not in __init__
       
    46 print('context manager', dummy.getstack())
       
    47 with wrap1:
       
    48     print('context manager', dummy.getstack())
       
    49     with wrap0:
       
    50         print('context manager', dummy.getstack())
       
    51         # Bad programmer forgets to unwrap the function, but the context
       
    52         # managers still unwrap their wrappings.
       
    53         extensions.wrapfunction(dummy, 'getstack', wrappers[2])
       
    54         print('context manager', dummy.getstack())
       
    55     print('context manager', dummy.getstack())
       
    56 print('context manager', dummy.getstack())