Your IP : 216.73.216.213
�
g fg �
@ s� d Z d d l Z d d l Z d d l Z d d l Z d d l Td d l m Z y d d l Z Wn e k
rz d Z Yn XGd d � d e j
� Z Gd d � d e j
� Z Gd d
� d
e j
� Z
e j e d � Gd d
� d
e j
� � Z Gd d � d e � Z Gd d � d e j
� Z Gd d � d e j
� Z Gd d � d e j
� Z Gd d � d e j
� Z e d k r�e j � n d S)z9Unit tests for contextlib.py, and other context managers.� N)�*)�supportc @ s� e Z d Z d d � Z d d � Z d d � Z d d � Z d d
� Z d d � Z d
d � Z e
j d d � � Z e
j d d � � Z
d d � Z d S)�ContextManagerTestCasec s} g � t � f d d � � } | � �7 } | j � d g � | j | d � � j | � Wd QX| j � d d d g � d S)Nc 3 s# � j d � d V� j d � d S)N� �* i� )�append� )�stater �9/opt/alt/python34/lib64/python3.4/test/test_contextlib.py�woohoo s
z@ContextManagerTestCase.test_contextmanager_plain.<locals>.woohoor r i� )�contextmanager�assertEqualr )�selfr �xr )r r
�test_contextmanager_plain s z0ContextManagerTestCase.test_contextmanager_plainc s� g � t � f d d � � } | j t � �P | � �@ } | j � d g � | j | d � � j | � t � � Wd QXWd QX| j � d d d g � d S)Nc 3 s+ � j d � z d VWd � j d � Xd S)Nr r i� )r r )r r r
r s
zBContextManagerTestCase.test_contextmanager_finally.<locals>.woohoor r i� )r �assertRaises�ZeroDivisionErrorr
r )r r r r )r r
�test_contextmanager_finally s
z2ContextManagerTestCase.test_contextmanager_finallyc C sK t d d � � } | � } | j � | j | j t t d � d � � d S)Nc s s d Vd S)Nr r r r r
�whee0 s zCContextManagerTestCase.test_contextmanager_no_reraise.<locals>.whee�foo)r � __enter__�assertFalse�__exit__� TypeError)r r �ctxr r r
�test_contextmanager_no_reraise/ s
z5ContextManagerTestCase.test_contextmanager_no_reraisec C sK t d d � � } | � } | j � | j t | j t t d � d � d S)Nc s s y d VWn
d VYn Xd S)Nr r r r r
�whoo9 s zOContextManagerTestCase.test_contextmanager_trap_yield_after_throw.<locals>.whoor )r r r �RuntimeErrorr r )r r r r r r
�*test_contextmanager_trap_yield_after_throw8 s
zAContextManagerTestCase.test_contextmanager_trap_yield_after_throwc s� g � t � � f d d � � } | � �C } � j � d g � � j | d � � j | � t d � � Wd QX� j � d d d g � d S)Nc 3 so � j d � y d VWnR t k
rj } z2 � j | j d � � j � d d d g � WYd d } ~ Xn Xd S)Nr r r i� )r r �argsr
)�e)r r r r
r G s
zAContextManagerTestCase.test_contextmanager_except.<locals>.woohoor r i� )r r
r r )r r r r )r r r
�test_contextmanager_exceptE s
z1ContextManagerTestCase.test_contextmanager_exceptc C s1 d d � } t | d d � d d � � � } | S)Nc s � f d d � } | S)Nc s1 x* � j � D] \ } } t | | | � q
W| S)N)�items�setattr)�func�k�v)�kwr r
�decorateX s zXContextManagerTestCase._create_contextmanager_attribs.<locals>.attribs.<locals>.decorater )r'