Your IP : 216.73.216.213
�
g f� � @ su d d l m Z d d l m Z m Z d d l Z d d l m Z d d l Z d d l
Z
d d l Z d d � Z d d � Z
d Z e
j d k r� e j � Z e e k r� e j � Z n e j j e � s� d Z q� n d
d � Z d d d � Z e d d � � Z e d d d d d �� Z e d d � � Z Gd d � d � Z Gd d � d e � Z Gd d � d e � Z d S) � )�contextmanager)�util�invalidate_cachesN)�supportc C sL d | k r d n f } t j | � } t j | d | d d �} | | f S)zAImport a module from importlib both w/ and w/o _frozen_importlib.�.� importlib�freshZblocked�_frozen_importlib)z importlib)z_frozen_importlib)r Zimport_fresh_module)Zmodule_namer �frozen�source� r �=/opt/alt/python34/lib64/python3.4/test/test_importlib/util.py�import_importlib
s
r c K s� t j d | j | t j f � } t j d | j | t j f � } | j | _ | _ x@ | j � D]2 \ } \ } } t | | | � t | | | � qd W| | f S)NZFrozen_ZSource_)�types� new_class�__name__�unittestZTestCase�
__module__�items�setattr)Z
test_class�kwargsZfrozen_testsZsource_tests�attrZfrozen_valueZsource_valuer r r
� test_both s r T�win32�cygwinFc C s t j t d � | � S)zRClass decorator that nullifies tests requiring a case-insensitive
file system.z&requires a case-insensitive filesystem)r ZskipIf�CASE_INSENSITIVE_FS)�testr r r
�case_insensitive_tests* s
r � c C sT t j j | | d � } t | d � � } | j | � Wd QXd j | | � | f S)Nz.py�wz{}.{})�os�path�join�open�write�format)�parent�nameZpkg_dir�contentr! Zsubfiler r r
� submodule1 s r) c g s� xU | D]M } | d k r1 t d j | � � � n y t j | =Wq t k
rS Yq Xq Wz d VWd x1 | D]) } y t j | =Wqk t k
r� Yqk Xqk WXd S)z�Uncache a module from sys.modules.
A basic sanity check is performed to prevent uncaching modules that either
cannot/shouldn't be uncached.
�sys�marshal�impzcannot uncache {0}N)zsyszmarshalr, )�
ValueErrorr% r* �modules�KeyError)�namesr'