ó {G_Tc@s²ddlZddlZddlZddlZddlZejd„ƒZejd„ƒZdefd„ƒYZ dej fd„ƒYZ d„Z e d kr®e ƒndS( iÿÿÿÿNc gs›xT|D]L}|dkr1tdj|ƒƒ‚nytj|=Wqtk rRqXqWz dVWdx0|D](}ytj|=Wqjtk r‘qjXqjWXdS(sšUncache a module from sys.modules. A basic sanity check is performed to prevent uncaching modules that either cannot/shouldn't be uncached. tsystmarshaltimps.cannot uncache {0} as it will break _importlibN(ssyssmarshalsimp(t ValueErrortformatRtmodulestKeyError(tnamestname((s//usr/local/lib/python2.7/test/test_importlib.pytuncaches      cksòi}z·xdgfdgfdgfdiffD]U\}}tt|ƒ||<||krs||}||=n|}tt||ƒq4Wt|ƒr·tdj|jƒƒƒ‚ndVWdx*|jƒD]\}}tt||ƒqÍWXdS(s,Context manager to manage the various importers and stored state in the sys module. The 'modules' attribute is not supported as the interpreter state stores a pointer to the dict that the interpreter uses internally; reassigning to sys.modules does not have the desired effect. t meta_pathtpatht path_hookstpath_importer_cachesunrecognized arguments: {0}N(tgetattrRtsetattrtlenRRtkeystitems(tkwargst originalstattrtdefaultt new_valuetvalue((s//usr/local/lib/python2.7/test/test_importlib.pyt import_state"s"       t mock_modulescBsGeZdZd„Zd„Zdd„Zd„Zd„Zd„Z RS(sA mock importer/loader.cGsâi|_xÒ|D]Ê}|jdƒs.|}n|tdƒ }d|krTd}n+||kry|jddƒd}n|}tj|ƒ}||_d|_||_ ||_ ||krÍdg|_ n||j|s( RtendswithRtNonetrsplitRt new_modulet __loader__t__file__t __package__Rt__path__(tselfRRt import_nametpackagetmodule((s//usr/local/lib/python2.7/test/test_importlib.pyt__init__Es$           cCs |j|S(N(R(R$R((s//usr/local/lib/python2.7/test/test_importlib.pyt __getitem__[scCs||jkrdS|SdS(N(RR(R$tfullnameR ((s//usr/local/lib/python2.7/test/test_importlib.pyt find_module^scCs;||jkrt‚n|j|tj|<|j|SdS(N(Rt ImportErrorR(R$R*((s//usr/local/lib/python2.7/test/test_importlib.pyt load_moduleds cCs)t|jjƒŒ|_|jjƒ|S(N(R RRt_uncachet __enter__(R$((s//usr/local/lib/python2.7/test/test_importlib.pyR/ks cGs|jjdddƒdS(N(R.t__exit__R(R$texc_info((s//usr/local/lib/python2.7/test/test_importlib.pyR0psN( t__name__t __module__t__doc__R(R)RR+R-R/R0(((s//usr/local/lib/python2.7/test/test_importlib.pyRAs     tImportModuleTestscBsDeZdZd„Zd„Zd„Zd„Zd„Zd„ZRS(sTest importlib.import_module.c CsTtdƒB}td|gƒ'tjdƒ}|j|jdƒWdQXWdQXdS(Nt top_levelR (RRt importlibt import_modulet assertEqualR2(R$tmockR'((s//usr/local/lib/python2.7/test/test_importlib.pyttest_module_importysc Cs{d}dj|ƒ}dj|ƒ}t||ƒB}td|gƒ'tj|ƒ}|j|j|ƒWdQXWdQXdS(Ntpkgs {0}.__init__s{0}.modR (RRRR7R8R9R2(R$tpkg_namet pkg_long_nameRR:R'((s//usr/local/lib/python2.7/test/test_importlib.pyttest_absolute_package_import€sc Csiddddg}t|ŒE}td|gƒ*tjddƒ}|j|jdƒWdQXWdQXdS(Ns a.__init__s a.b.__init__sa.b.c.__init__sa.b.c.dR s.dsa.b.c(RRR7R8R9R2(R$RR:R'((s//usr/local/lib/python2.7/test/test_importlib.pyt$test_shallow_relative_package_importŠs c Csfdddg}t|ŒE}td|gƒ*tjddƒ}|j|jdƒWdQXWdQXdS(Ns a.__init__s a.b.__init__sa.cR s..csa.b(RRR7R8R9R2(R$RR:R'((s//usr/local/lib/python2.7/test/test_importlib.pyt!test_deep_relative_package_import‘s c Cs~d}dj|ƒ}dj|ƒ}t||ƒE}td|gƒ*tj||ƒ}|j|j|ƒWdQXWdQXdS(NR<s {0}.__init__s{0}.modR (RRRR7R8R9R2(R$R=R>RR:R'((s//usr/local/lib/python2.7/test/test_importlib.pyt!test_absolute_import_with_package™scCs|jttjdƒdS(Ns.support(t assertRaisest TypeErrorR7R8(R$((s//usr/local/lib/python2.7/test/test_importlib.pyttest_relative_import_wo_package¤s( R2R3R4R;R?R@RARBRE(((s//usr/local/lib/python2.7/test/test_importlib.pyR5us    cCsddlm}|tƒdS(Niÿÿÿÿ(t run_unittest(ttest.test_supportRFR5(RF((s//usr/local/lib/python2.7/test/test_importlib.pyt test_mainªst__main__(t contextlibRR7RtunittesttcontextmanagerR RtobjectRtTestCaseR5RHR2(((s//usr/local/lib/python2.7/test/test_importlib.pyts     45