ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ ,Qc@sdZddlZddlZddlZddlZddlZddlmZmZm Z m Z m Z m Z m Z ddlmZmZddlmZmZddlmZddlmZdefd YZd efd YZd ZdS( s jinja2.testsuite.loader ~~~~~~~~~~~~~~~~~~~~~~~ Test the loaders. :copyright: (c) 2010 by the Jinja Team. :license: BSD, see LICENSE for more details. iN(t JinjaTestCaset dict_loadertpackage_loadertfilesystem_loadertfunction_loadert choice_loadert prefix_loader(t Environmenttloaders(tPYPYtPY2(tsplit_template_path(tTemplateNotFoundtLoaderTestCasecBsYeZdZdZdZdZdZdZdZdZ dZ RS( cCsVtdt}|jd}|jjdks<t|jt|jddS(Ntloaders justdict.htmltFOOs missing.html(RRt get_templatetrendertstriptAssertionErrort assert_raisesR (tselftenvttmpl((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyttest_dict_loaderscCsVtdt}|jd}|jjdks<t|jt|jddS(NRs test.htmltBARs missing.html(RRRRRRRR (RRR((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyttest_package_loader#scCstdt}|jd}|jjdks<t|jd}|jjdksit|jt|jddS(NRs test.htmlRs foo/test.htmlRs missing.html(RRRRRRRR (RRR((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyttest_filesystem_loader)s cCstdt}|jd}|jjdks<t|jd}|jjdksit|jt|jddS(NRs justdict.htmlRs test.htmlRs missing.html(RRRRRRRR (RRR((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyttest_choice_loader1s cCsVtdt}|jd}|jjdks<t|jt|jddS(NRsjustfunction.htmlRs missing.html(RRRRRRRR (RRR((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyttest_function_loader9scCstdt}|jd}|jjdks<t|jd}|jjdksit|jt|jddS(NRs a/test.htmlRsb/justdict.htmlRtmissing(RRRRRRRR (RRR((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyttest_prefix_loader?s cstdtjffdY}td|dd}|jd}||jdksgtt||jdk stttd|dd}|jd|jdk sttd|dd}|jd }|jd }||jd kst||jd ks6t|jd }d |jksZtd |jksotd |jkstdS( Nt TestLoadercseZfdZRS(csddfdfS(Nufoocs S(N(((tchanged(sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pytKt(tNone(Rt environmentttemplate(R!(sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt get_sourceJs(t__name__t __module__R'((R!(sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyR IsRt cache_sizeiR&iitonettwotthree(tFalseRt BaseLoaderRRRtTruetcache(RR RRtt1tt2tt3((R!sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt test_cachingGs( cCsuidd6}tdtj|}|jdjdksFtd|d<|jdjdksqtdS(NR+tfooRR,(RRt DictLoaderRRR(RtmappingR((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt"test_dict_loader_cache_invalidatesas  ! cCsStdddgksttdddgks<t|jttddS(Nsfoo/barR6tbars ./foo/bars../foo(R RRR (R((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyttest_split_template_pathhs( R(R)RRRRRRR5R9R;(((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyR s        tModuleLoaderTestCasecBseZd ZdedZdZdZdZdZ dZ dZ dZ e rse rsd Znd Zd ZRS( tdeflatedcCstt|jg}tdt|_|dk rStjddd|_ ntj |_ |jj |j d|d|j d|tdt j|j |_dj|S( NRtsuffixs.zipitzipt log_functiont py_compileR#(tsuperR<tsetupRRtreg_envR$ttempfiletmkstemptarchivetmkdtemptcompile_templatestappendRt ModuleLoadertmod_envtjoin(RR?RAtlog((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt compile_downqs  cCsjtt|jt|drftjj|jrJtj|jnt j |jd|_ndS(NRL( RBR<tteardownthasattrtostpathtisfileRGtremovetshutiltrmtreeR$(R((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyRPs cCsF|j}d|kstd|ks0td|ksBtdS(NsKCompiled "a/foo/test.html" as tmpl_a790caf9d669e39ea4d280d597ec891c4ef0404asFinished compiling templatessGCould not compile "a/syntaxerror.html": Encountered unknown tag 'endif'(ROR(RRN((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyttest_logs  cCs|jjd}|jjd}|j|jksBt|jjd}|jjd}|j|jkstdS(Ns a/test.htmlsb/justdict.html(RDRRLRR(Rttmpl1ttmpl2((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt _test_commons cCs|jdd|jdS(NR?R=(ROR[(R((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyttest_deflated_zip_compilescCs|jdd|jdS(NR?tstored(ROR[(R((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyttest_stored_zip_compilescCs|jdd|jdS(NR?(ROR$R[(R((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyttest_filesystem_compilescCs|j|jjd}tjjd}|jjjj}t |jjj|s^t |t j ksst d|_}yddl}|jWnnX|t j kst dS(Ns a/test.htmli(RORLRRRKtget_template_keyRtmoduleR(RQRtsystmodulesR$tgctcollect(RRtkeytnameRd((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyttest_weak_referencess   cCsd|jdt}d|ks$t|jjd}|jjjj}|jj ds`tdS(NRAsByte-compiled "a/test.html"s a/test.htmls.pyc( ROR0RRLRRRat-tmpl_3c4ddf650c1a73df961a6d3d2ce2752f1b8fd490t__file__tendswith(RRNRYtmod((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyttest_byte_compilations cCs|j}tj|jjtjidd6g|j_|jjd}|j|jd|jjd}|j|jddS(Nt DICT_TEMPLATEt DICT_SOURCEs a/test.htmlR( RORt ChoiceLoaderRLRR7Rt assert_equalR(RRNRYRZ((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyRs  "cCs|j}tji|jjd6tjidd6d6|j_|jjd}|j|jd|jjd}|j|jddS(NtMODRns test.htmltDICTsMOD/a/test.htmlRsDICT/test.html( RORt PrefixLoaderRLRR7RRqR(RRNRYRZ((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyRs   #N(R(R)R$RGR.RORPRXR[R\R^R_RhR R RmRR(((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyR<ns        cCs<tj}|jtjt|jtjt|S(N(tunittestt TestSuitetaddTestt makeSuiteR R<(tsuite((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyRys (t__doc__RRRbRERVRutjinja2.testsuiteRRRRRRRtjinja2RRtjinja2._compatR R tjinja2.loadersR tjinja2.exceptionsR R R<Ry(((sH/opt/alt/python27/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt s     4Sp