ó
ùR‹_c           @@  s‡   d  Z  d d l m Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z e ƒ  Z [ d e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ	 d S(   s   Shared testing utilities.i    (   t   absolute_importt   _Monkeyc           B@  s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   sB   Context-manager for replacing module names in the scope of a test.c         @  sh   ˆ  |  _  | s t d ƒ ‚ n  ‡  f d †  | Dƒ |  _ x* | j ƒ  D] \ } } t ˆ  | | ƒ qD Wd  S(   Ns-   _Monkey was used with nothing to monkey-patchc         @  s"   i  |  ] } t  ˆ  | ƒ | “ q S(    (   t   getattr(   t   .0t   key(   t   module(    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pys
   <dictcomp>   s   	 (   R   t
   ValueErrort
   to_restoret   itemst   setattr(   t   selfR   t   kwR   t   value(    (   R   sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyt   __init__   s    	c         C@  s   |  S(   N(    (   R
   (    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyt	   __enter__   s    c         C@  s7   x0 |  j  j ƒ  D] \ } } t |  j | | ƒ q Wd  S(   N(   R   R   R	   R   (   R
   t   exc_typet   exc_valt   exc_tbR   R   (    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyt   __exit__"   s    (   t   __name__t
   __module__t   __doc__R   R   R   (    (    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyR      s   		t   _NamedTemporaryFilec           B@  s&   e  Z d  d „ Z d „  Z d „  Z RS(   t    c         C@  sD   d d  l  } d d  l } | j d | ƒ \ } |  _ | j | ƒ d  S(   Ni    t   suffix(   t   ost   tempfilet   mkstempt   namet   close(   R
   R   R   R   t
   filehandle(    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyR   (   s    c         C@  s   |  S(   N(    (   R
   (    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyR   /   s    c         C@  s    d d  l  } | j |  j ƒ d  S(   Ni    (   R   t   removeR   (   R
   R   R   R   R   (    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyR   2   s    (   R   R   R   R   R   (    (    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyR   '   s   	c          @  sC   d d  l  }  d d  l ‰  d d  l ‰ |  j ‡  ‡ f d †  ƒ } | S(   Ni    c          3@  s"   ˆ j  ƒ  }  |  Vˆ  j |  ƒ d  S(   N(   t   mkdtempt   rmtree(   t   temp_dir(   t   shutilR   (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyt   _tempdir_mgr=   s    (   t
   contextlibR#   R   t   contextmanager(   R%   R$   (    (   R#   R   sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyt   _tempdir_maker8   s
    t   _GAXBaseAPIc           B@  sM   e  Z e Z d  „  Z e d d „ ƒ Z d „  Z d „  Z	 d „  Z
 d „  Z RS(   c         K@  s   |  j  j | ƒ d  S(   N(   t   __dict__t   update(   R
   R   (    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyR   R   s    c         C@  sQ   d d l  m } d d l m } d } | d d  | |  | ƒ } | | d  d  d  ƒ S(   Ni    (   t	   _RPCState(   t   GrpcRendezvouss   Some error details.(    (   t   grpc._channelR+   t   google.cloud.exceptionsR,   t   None(   t   status_codet   trailingR+   R,   t   detailst	   exc_state(    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyt   _make_grpc_errorU   s
    c         C@  s    d d l  m } |  j | j ƒ S(   Ni    (   t
   StatusCode(   t   grpcR5   R4   t	   NOT_FOUND(   R
   R5   (    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyt   _make_grpc_not_found^   s    c         C@  s    d d l  m } |  j | j ƒ S(   Ni    (   R5   (   R6   R5   R4   t   FAILED_PRECONDITION(   R
   R5   (    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyt   _make_grpc_failed_preconditionc   s    c         C@  s    d d l  m } |  j | j ƒ S(   Ni    (   R5   (   R6   R5   R4   t   ALREADY_EXISTS(   R
   R5   (    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyt   _make_grpc_already_existsh   s    c         C@  s    d d l  m } |  j | j ƒ S(   Ni    (   R5   (   R6   R5   R4   t   DEADLINE_EXCEEDED(   R
   R5   (    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyt   _make_grpc_deadline_exceededm   s    N(   R   R   t   Falset   _random_gax_errorR   t   staticmethodR/   R4   R8   R:   R<   R>   (    (    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyR(   N   s   				t   _GAXPageIteratorc           B@  s    e  Z d  „  Z d „  Z e Z RS(   c         O@  s%   t  | ƒ |  _ | j d ƒ |  _ d  S(   Nt
   page_token(   t   itert   _pagest   getRC   (   R
   t   pagest   kwargs(    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyR   t   s    c         C@  s   d d l  } | j |  j ƒ S(   s   Iterate to the next page.i    N(   t   sixt   nextRE   (   R
   RI   (    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyRJ   x   s    (   R   R   R   RJ   t   __next__(    (    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyRB   s   s   		N(
   R   t
   __future__R    t   objectR   R   R'   t   _tempdirR(   RB   (    (    (    sN   /var/www/syncserver/local/lib/python2.7/site-packages/google/cloud/_testing.pyt   <module>   s   		%