ó
¨œž[c           @` s¥   d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l Z d  d l	 m
 Z
 d  d l Z d  d l m Z d e j f d „  ƒ  YZ d S(   i    (   t   absolute_importt   divisiont   print_functionN(   t   Popen(   t   mkdtemp(   t   unittestt   AutoreloadTestc           B` s   e  Z d  „  Z d „  Z RS(   c         C` s0  d } t  ƒ  } |  j t j | ƒ t j t j j | d ƒ ƒ t t j j | d ƒ d ƒ j	 ƒ  t t j j | d ƒ d ƒ  } | j
 | ƒ Wd  QXt j ƒ  } d t j k rÊ | t j t j d 7} n  t t j d d g d t j d	 | d
 t t j d | ƒd t ƒ} | j ƒ  d } |  j | d ƒ d  S(   Ns  import os
import sys

from tornado import autoreload

# This import will fail if path is not set up correctly
import testapp

print('Starting')
if 'TESTAPP_STARTED' not in os.environ:
    os.environ['TESTAPP_STARTED'] = '1'
    sys.stdout.flush()
    autoreload._reload()
t   testapps   testapp/__init__.pyt   ws   testapp/__main__.pyt
   PYTHONPATHs   -mt   stdoutt   cwdt   envt   universal_newlinesi    s   Starting
Starting
(   R   t
   addCleanupt   shutilt   rmtreet   ost   mkdirt   patht   joint   opent   closet   writet   getcwdt   environt   pathsepR   t   syst
   executablet
   subprocesst   PIPEt   dictt   Truet   communicatet   assertEqual(   t   selft   mainR   t   ft
   pythonpatht   pt   out(    (    s;   lib/python2.7/site-packages/tornado/test/autoreload_test.pyt   test_reload_module   s     	"!	c   
      C` s˜  d } t  ƒ  } t j t j j | d ƒ ƒ |  j t j | ƒ t j j | d d ƒ } t | d ƒ j	 ƒ  t j j | d d ƒ } t | d ƒ  } | j
 | ƒ Wd  QXt j ƒ  } d t j k rÜ | t j t j d 7} n  t t j d d d d g d	 t j d
 | d t t j d | ƒd t ƒ} xM t d ƒ D]) } | j ƒ  d  k	 rMPn  t j d ƒ q1W| j ƒ  t d ƒ ‚ | j ƒ  d }	 |  j |	 d ƒ d  S(   Ns  import os
import sys

# This import will fail if path is not set up correctly
import testapp

if 'tornado.autoreload' not in sys.modules:
    raise Exception('started without autoreload wrapper')

import tornado.autoreload

print('Starting')
sys.stdout.flush()
if 'TESTAPP_STARTED' not in os.environ:
    os.environ['TESTAPP_STARTED'] = '1'
    # Simulate an internal autoreload (one not caused
    # by the wrapper).
    tornado.autoreload._reload()
else:
    # Exit directly so autoreload doesn't catch it.
    os._exit(0)
R   s   __init__.pyR   s   __main__.pyR	   s   -ms   tornado.autoreloadR
   R   R   R   i(   gš™™™™™¹?s   subprocess failed to terminatei    s	   Starting
i   s   Starting
Starting
(   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    t   ranget   pollt   Nonet   timet   sleept   killt	   ExceptionR!   R"   (
   R#   R$   R   t	   init_filet	   main_fileR%   R&   t   autoreload_proct   iR(   (    (    s;   lib/python2.7/site-packages/tornado/test/autoreload_test.pyt    test_reload_wrapper_preservation5   s2    		
(   t   __name__t
   __module__R)   R5   (    (    (    s;   lib/python2.7/site-packages/tornado/test/autoreload_test.pyR      s   	&(   t
   __future__R    R   R   R   R   R   R   R   t   tempfileR   R-   t   tornado.test.utilR   t   TestCaseR   (    (    (    s;   lib/python2.7/site-packages/tornado/test/autoreload_test.pyt   <module>   s   