ó
ŠwÛjc           @   s   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 m	 Z	 m
 Z
 m Z m Z m Z m Z e j j Z d d d g Z d Z e d „ Z e d d	 „ Z d
 Z d d „ Z d e j f d „  ƒ  YZ d „  Z e d k rü e ƒ  n  d S(   iÿÿÿÿN(   t
   run_pythont   temp_dirt   make_scriptt   compile_scriptt   assert_python_failuret   make_pkgt   make_zip_scriptt   make_zip_pkgt   test1t   test2t   test3s  # Script may be run with optimisation enabled, so don't rely on assert
# statements being executed
def assertEqual(lhs, rhs):
    if lhs != rhs:
        raise AssertionError('%r != %r' % (lhs, rhs))
def assertIdentical(lhs, rhs):
    if lhs is not rhs:
        raise AssertionError('%r is not %r' % (lhs, rhs))
# Check basic code execution
result = ['Top level assignment']
def f():
    result.append('Lower level reference')
f()
assertEqual(result, ['Top level assignment', 'Lower level reference'])
# Check population of magic variables
assertEqual(__name__, '__main__')
print '__file__==%r' % __file__
print '__package__==%r' % __package__
# Check the sys module
import sys
assertIdentical(globals(), sys.modules[__name__].__dict__)
print 'sys.argv[0]==%r' % sys.argv[0]
c         C   s   t  |  | | ƒ S(   N(   R   (   t
   script_dirt   script_basenamet   source(    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   _make_test_script+   s    i   c         C   s   t  |  | | | | | ƒ S(   N(   R   (   t   zip_dirt   zip_basenamet   pkg_nameR   R   t   depth(    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   _make_test_zip_pkg.   s    sP   import sys, os.path, runpy
sys.path.insert(0, %s)
runpy._run_module_as_main(%r)
c         C   sA   | d  k r d } n t | ƒ } t | | f } t |  | | ƒ S(   Ns   os.path.dirname(__file__)(   t   Nonet   reprt   launch_sourceR   (   R   R   t   module_namet   pathR   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   _make_launch_script=   s
    	t   CmdLineTestc           B   sà   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e j d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         G   sµ   | | f } t  | Œ  \ } } t r6 d | GH| GHn  |  j | d ƒ d | }	 d | }
 d | } t r� d GH|	 GH| GH|
 GHn  |  j |	 | ƒ |  j | | ƒ |  j |
 | ƒ d  S(   Ns   Output from test script %r:i    s   __file__==%rs   sys.argv[0]==%rs   __package__==%rs   Expected output:(   R    t   verboset   assertEqualt   assertIn(   t   selft   script_namet   expected_filet   expected_argv0t   expected_packaget   cmd_line_switchest   run_argst	   exit_codet   datat   printed_filet   printed_argv0t   printed_package(    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   _check_scriptF   s"    	


c         G   sS   | | f } t  | Œ  \ } } t r? d | GH| GHd | GHn  |  j | | ƒ d  S(   Ns   Output from test script %r:s   Expected output: %r(   R    R   R   (   R   R   t   expected_msgR#   R$   R%   R&   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   _check_import_error[   s    	c      	   C   s;   t  ƒ  �, } t | d ƒ } |  j | | | d  ƒ Wd  QXd  S(   Nt   script(   R   R   R*   R   (   R   R   R   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_basic_scripte   s    c      	   C   sT   t  ƒ  �E } t | d ƒ } t | ƒ } t j | ƒ |  j | | | d  ƒ Wd  QXd  S(   NR-   (   R   R   R   t   ost   removeR*   R   (   R   R   R   t   compiled_name(    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_script_compiledj   s
    c      	   C   s;   t  ƒ  �, } t | d ƒ } |  j | | | d ƒ Wd  QXd  S(   Nt   __main__t    (   R   R   R*   (   R   R   R   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_directoryq   s    c      	   C   sT   t  ƒ  �E } t | d ƒ } t | ƒ } t j | ƒ |  j | | | d ƒ Wd  QXd  S(   NR3   R4   (   R   R   R   R/   R0   R*   (   R   R   R   R1   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_directory_compiledv   s
    c         C   s0   t  ƒ  �! } d | } |  j | | ƒ Wd  QXd  S(   Ns"   can't find '__main__' module in %r(   R   R,   (   R   R   t   msg(    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_directory_error}   s    
c      	   C   sS   t  ƒ  �D } t | d ƒ } t | d | ƒ \ } } |  j | | | d ƒ Wd  QXd  S(   NR3   t   test_zipR4   (   R   R   R   R*   (   R   R   R   t   zip_namet   run_name(    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_zipfile‚   s    c      	   C   s_   t  ƒ  �P } t | d ƒ } t | ƒ } t | d | ƒ \ } } |  j | | | d ƒ Wd  QXd  S(   NR3   R9   R4   (   R   R   R   R   R*   (   R   R   R   R1   R:   R;   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_zipfile_compiledˆ   s
    c         C   sW   t  ƒ  �H } t | d ƒ } t | d | ƒ \ } } d | } |  j | | ƒ Wd  QXd  S(   Nt   not_mainR9   s"   can't find '__main__' module in %r(   R   R   R   R,   (   R   R   R   R:   R;   R7   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_zipfile_error�   s
    
c      	   C   sl   t  ƒ  �] } t j j | d ƒ } t | ƒ t | d ƒ } t | d d ƒ } |  j | | | d ƒ Wd  QXd  S(   Nt   test_pkgR-   t   launchs   test_pkg.script(   R   R/   R   t   joinR   R   R   R*   (   R   R   t   pkg_dirR   t   launch_name(    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_module_in_package–   s    
c      	   C   s\   t  ƒ  �M } t | d d d ƒ \ } } t | d d | ƒ } |  j | | | d ƒ Wd  QXd  S(   NR9   R@   R-   RA   s   test_pkg.script(   R   R   R   R*   (   R   R   R:   R;   RD   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt!   test_module_in_package_in_zipfilež   s    c         C   sb   t  ƒ  �S } t | d d d d d ƒ\ } } t | d d | ƒ } |  j | | | d ƒ Wd  QXd  S(	   NR9   R@   R-   R   i   RA   s   test_pkg.test_pkg.scripts   test_pkg.test_pkg(   R   R   R   R*   (   R   R   R:   R;   RD   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt$   test_module_in_subpackage_in_zipfile¤   s    !c      	   C   sl   t  ƒ  �] } t j j | d ƒ } t | ƒ t | d ƒ } t | d d ƒ } |  j | | | d ƒ Wd  QXd  S(   NR@   R3   RA   (   R   R/   R   RB   R   R   R   R*   (   R   R   RC   R   RD   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_packageª   s    
c      	   C   s…   t  ƒ  �v } t j j | d ƒ } t | ƒ t | d ƒ } t | ƒ } t j | ƒ t | d d ƒ } |  j	 | | | d ƒ Wd  QXd  S(   NR@   R3   RA   (
   R   R/   R   RB   R   R   R   R0   R   R*   (   R   R   RC   R   R1   RD   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_package_compiled³   s    
c         C   s]   t  ƒ  �N } t j j | d ƒ } t | ƒ d } t | d d ƒ } |  j | | ƒ Wd  QXd  S(   NR@   s7   'test_pkg' is a package and cannot be directly executedRA   (   R   R/   R   RB   R   R   R,   (   R   R   RC   R7   RD   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_package_error¾   s    
c         C   s|   t  ƒ  �m } t j j | d ƒ } t | ƒ t j j | d ƒ } t | ƒ d } t | d d ƒ } |  j | | ƒ Wd  QXd  S(   NR@   R3   s^   Cannot use package as __main__ module; 'test_pkg' is a package and cannot be directly executedRA   (   R   R/   R   RB   R   R   R,   (   R   R   RC   t   main_dirR7   RD   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_package_recursionÇ   s    

c         g   sV   t  ƒ  �G } t j j | ƒ �, t j j | d ƒ } t | | Œ | VWd  QXWd  QXd  S(   NR@   (   R   t   testt   test_supportt
   change_cwdR/   R   RB   R   (   R   t   argsR   RC   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   setup_test_pkgÓ   s
    c         G   s@   t  d | Œ \ } } } t d k r, | GHn  |  j | d ƒ | S(   Ns   -mi   (   R   R   R   (   R   RP   t   rct   outt   err(    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   check_dash_m_failureÛ   s
    c         C   sM   |  j  ƒ  �; } t | d d ƒ } |  j d t Œ } |  j d | ƒ Wd  QXd  S(   Nt   others+   if __name__ == '__main__': raise ValueErrors   test_pkg.othert
   ValueError(   RQ   R   RU   t   example_argsR   (   R   RC   R   RT   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_dash_m_error_code_is_oneâ   s    c         C   s{   d d d d d d f } x\ | D]T \ } } t  d | ƒ \ } } } |  j | d ƒ |  j | | ƒ |  j d | ƒ q Wd  S(   Nt   __builtin__s   No code object availables   __builtin__.xs   No module nameds   __builtin__.x.ys   os.paths   Loader.*cannot handlet	   importlibs=   No module named.*is a package and cannot be directly executeds   importlib.nonexistants   -mi   t	   Traceback(   RZ   s   No code object available(   s   __builtin__.xs   No module named(   s   __builtin__.x.ys   No module named(   s   os.paths   Loader.*cannot handle(   R[   s=   No module named.*is a package and cannot be directly executed(   s   importlib.nonexistants   No module named(   R   R   t   assertRegexpMatchest   assertNotIn(   R   t   testst   namet   regexRR   t   _RT   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_dash_m_errorsë   s    	c         C   sŸ   t  t t t f } x† | D]~ } | j } d j | ƒ } |  j | ƒ �O } |  j d ƒ } |  j | j	 d ƒ | ƒ |  j d | ƒ |  j d | ƒ Wd  QXq Wd  S(   Ns%   raise {0}('Exception in __init__.py')R@   t   asciis   Exception in __init__.pyR\   (
   t   ImportErrort   AttributeErrort	   TypeErrorRW   t   __name__t   formatRQ   RU   R   t   encode(   R   t
   exceptionst	   exceptiont   initRC   RT   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_dash_m_init_tracebackü   s    	c         C   sn   |  j  ƒ  �\ } d } t | d | ƒ |  j d ƒ } |  j d | ƒ |  j d | ƒ |  j d | ƒ Wd  QXd  S(   Ns1   raise ImportError('Exception in __main__ module')R3   R@   Re   s   Exception in __main__ moduleR\   (   RQ   R   RU   R   (   R   RC   t   mainRT   (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   test_dash_m_main_traceback	  s    (   Rh   t
   __module__R*   R,   R.   R2   R5   R6   R8   R<   R=   R?   RE   RF   RG   RH   RI   RJ   RL   t
   contextlibt   contextmanagerRQ   RU   RY   Rc   Rn   Rp   (    (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyR   E   s.   		
																						c           C   s!   t  j j t ƒ t  j j ƒ  d  S(   N(   RM   RN   t   run_unittestR   t   reap_children(    (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt	   test_main  s    R3   (   Rr   t   unittestR/   t   os.patht   test.test_supportRM   t   test.script_helperR    R   R   R   R   R   R   R   RN   R   RX   t   test_sourceR   R   R   R   R   t   TestCaseR   Rv   Rh   (    (    (    s�   /home/sim/yocto/scarthgap/build/tmp/work/x86_64-linux/python-native/2.7.18/recipe-sysroot-native/usr/lib/python2.7/test/test_cmd_line_script.pyt   <module>   s    :Ï	