ó
OyTLc           @   s—   d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d d l m Z m Z d „  Z	 d e j
 f d „  ƒ  YZ e d k r“ e j ƒ  n  d S(   s   develop tests
iÿÿÿÿN(   t   DirectorySandboxt   SandboxViolationc          C   s?   t  j j d ƒ s t Sy t d ƒ }  Wn t k
 r: t SXt S(   sp   
    Run this to determine if the local machine has win32com, and if it
    does, include additional tests.
    t   win32t   win32com(   t   syst   platformt
   startswitht   Falset
   __import__t   ImportErrort   True(   t   mod(    (    sA   /usr/lib/python2.7/dist-packages/setuptools/tests/test_sandbox.pyt   has_win32com   s    t   TestSandboxc           B   sM   e  Z d  „  Z d „  Z d „  Z d „  Z e e ƒ Z e ƒ  rK d „  Z n  RS(   c         C   s   t  j ƒ  |  _ d  S(   N(   t   tempfilet   mkdtempt   dir(   t   self(    (    sA   /usr/lib/python2.7/dist-packages/setuptools/tests/test_sandbox.pyt   setUp   s    c         C   s   t  j |  j ƒ d  S(   N(   t   shutilt   rmtreeR   (   R   (    (    sA   /usr/lib/python2.7/dist-packages/setuptools/tests/test_sandbox.pyt   tearDown   s    c         C   s?   t  j d k  r d  St |  j ƒ } | j |  j t j ƒ ƒ d  S(   Ns   2.4(   R   t   versionR    R   t   runt   _file_writert   ost   devnull(   R   t   sandbox(    (    sA   /usr/lib/python2.7/dist-packages/setuptools/tests/test_sandbox.pyt   test_devnull    s    c            s   ‡  f d †  } | S(   Nc             s*   t  ˆ  d ƒ }  |  j d ƒ |  j ƒ  d  S(   Nt   wt   xxx(   t   opent   writet   close(   t   f(   t   path(    sA   /usr/lib/python2.7/dist-packages/setuptools/tests/test_sandbox.pyt   do_write'   s    (    (   R#   R$   (    (   R#   sA   /usr/lib/python2.7/dist-packages/setuptools/tests/test_sandbox.pyR   &   s    c         C   s¢   d d l  } | j } t j j | d ƒ } t |  j ƒ } z? y | j |  j | ƒ ƒ Wn t	 k
 rv |  j
 d ƒ n XWd t j j | ƒ r t j | ƒ n  Xd S(   sm   
            win32com should not be prevented from caching COM interfaces
            in gen_py.
            iÿÿÿÿNt
   test_writes4   Could not create gen_py file due to SandboxViolation(   R   t   __gen_path__R   R#   t   joinR    R   R   R   R   t   failt   existst   remove(   R   R   t   gen_pyt   targetR   (    (    sA   /usr/lib/python2.7/dist-packages/setuptools/tests/test_sandbox.pyt   test_win32com0   s    	 (	   t   __name__t
   __module__R   R   R   R   t   staticmethodR   R-   (    (    (    sA   /usr/lib/python2.7/dist-packages/setuptools/tests/test_sandbox.pyR      s   					t   __main__(   t   __doc__R   R   R   t   unittestR   t   setuptools.sandboxR    R   R   t   TestCaseR   R.   t   main(    (    (    sA   /usr/lib/python2.7/dist-packages/setuptools/tests/test_sandbox.pyt   <module>   s   	)