mò á¸Ec@s’dZdkZdkZdklZdkZeiZd„e_dklZlZdk l Z dk l Z dk lZdklZlZd k lZee_d klZd klZd eifd „ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZdefd„ƒYZd„Zedjo1ei eƒƒZ!ei"e!odpdƒndS(s]Tests for TALInterpreter. $Id: test_talinterpreter.py 68333 2006-05-29 10:34:19Z philikon $ N(sStringIOcOsdS(N(tNone(tatk((t</data/zmath/zope/lib/python/TAL/tests/test_talinterpreter.pyts(s METALErrors I18NError(s HTMLTALParser(s TALParser(sTALInterpreter(s DummyEnginesDummyTranslationService(s interpolate(sutils(sMessaget TestCaseBasecBstZd„ZRS(NcCs2tƒ}|i|ƒ|iƒ\}}||fS(N(t HTMLTALParsertparsert parseStringtsourcetgetCodetprogramtmacros(tselfR R RR ((Rt_compile/s  (t__name__t __module__R(((RR-stMacroErrorsTestCasecBs,tZd„Zd„Zd„Zd„ZRS(NcCsb|idƒ\}}|d|_t|ƒ|_|idƒ\}}t|h|iƒ|_ dS(Ns"

Booh

tMs

Bah

( R RtdummyR tmacrot DummyEnginetengineR tTALInterpretert interpreter(R RR R ((RtsetUp8s  cCs5y|iƒWntj onX|idƒdS(NsExpected METALError(R Rt METALErrortfail(R ((RttearDown?s cCsd|idsFOOVALUE ss FOOVALUE (R RR R R2(R R R ((Rttest_simple_messageid_translate^scCs)|idƒ\}}|i|dƒdS(NsL
s
FOOVALUE
(R RR R R2(R R R ((Rt(test_replace_with_messageid_and_i18nnamegscCs)|idƒ\}}|i|dƒdS(NsT
s
FOOVALUE
(R RR R R2(R R R ((Rt3test_pythonexpr_replace_with_messageid_and_i18nnamenscCs)|idƒ\}}|i|dƒdS(Nsm
s
FOOVALUE
(R RR R R2(R R R ((Rt2test_structure_replace_with_messageid_and_i18nnameuscCs)|idƒ\}}|i|dƒdS(Nse
s
FOOVALUE
(R RR R R2(R R R ((Rt0test_complex_replace_with_messageid_and_i18nname}scCs)|idƒ\}}|i|dƒdS(NsL
s!
FOOVALUE
(R RR R R2(R R R ((Rt(test_content_with_messageid_and_i18nname†scCs|it|idƒdS(Ns@(R t assertRaisest I18NErrorR(R ((Rt:test_content_with_messageid_and_i18nname_and_i18ntranslatescCs|it|idƒdS(Ns;green(R R9R:R(R ((Rt:test_content_with_plaintext_and_i18nname_and_i18ntranslate“scCs)|idƒ\}}|i|dƒdS(Nso
This is text for .
s3
THIS IS TEXT FOR BARVALUE.
(R RR R R2(R R R ((Rt%test_translate_static_text_as_dynamic™s cCs^ddfddfdddffdhd d itendScopet.sis3
THIS IS TEXT FOR BARVALUE.
(RR R R2(R R ((Rt3test_translate_static_text_as_dynamic_from_bytecode¡sÿK cCsö|iiiƒtƒ}|idƒ\}}t |h|id|ƒ|_ |i ƒ|iii dƒ}|i ƒ|idt|ƒƒ|id|ddƒ|id|ddƒ|ihd d <|ddƒ|id |iƒƒdS( Nso
This is text for .
R,R%iR'isThis is text for ${bar_name}.iRGsBARVALUEs3
THIS IS TEXT FOR BARVALUE.
(R RttranslationDomaint clearMsgidsR-R.RR R RRt getMsgidstmsgidstsortR/tlenR1(R RRR R R.((Rttest_for_correct_msgidsÂs   ! cCs¡|iiiƒtƒ}|idƒ\}}t |h|id|ƒ|_ |i ƒ|iii dƒ}|i ƒ|idt|ƒƒ|id|ddƒ|id|ddƒ|id |iƒƒ|iiiƒtƒ}tƒ}|id ƒ|iƒ\}}t |h|id|ƒ|_ |i ƒ|iii dƒ}|i ƒ|idt|ƒƒ|id |ddƒ|id |iƒƒdS( Nsu
This is text for div.
 This is text
 	for
 pre. 
R,R%is! This is text for pre. isThis is text for div.isM
THIS IS TEXT FOR DIV.
 THIS IS TEXT
 	FOR
 PRE. 
 This is text
 	for
 barvalue. 
s"This is text for barvalue.sD
THIS IS TEXT  FOR BARVALUE.
(R RRORPR-R.RR R RRRQRRRSR/RTR1t TALParserRRR (R RRRR R R.((Rttest_for_raw_msgidsÖs6           cCsö|iiiƒtƒ}|idƒ\}}t |h|id|ƒ|_ |i ƒ|iii dƒ}|i ƒ|idt|ƒƒ|id|ddƒ|id|ddƒ|ihd d <|ddƒ|id |iƒƒdS( Nsq
This is text for
.
R,R%is RaW isThis is text for ${raw}.iR(s
 	RAW
 
u0
THIS IS TEXT FOR
 	RAW
 
.
(R RRORPR-R.RR R RRRQRRRSR/RTR1(R RRR R R.((Rt*test_raw_msgids_and_i18ntranslate_i18nnames   ! cCs)|idƒ\}}|i|dƒdS(Nsp
Foo
u
FOO À
(R RR R R2(R R R ((Rttest_for_handling_unicode_varsscCs)|idƒ\}}|i|dƒdS(Nss don't translate me (R RR R R2(R R R ((Rt&test_for_untranslated_messageid_simple scCs)|idƒ\}}|i|dƒdS(NsV
s
don't translate me
(R RR R R2(R R R ((Rt(test_for_untranslated_messageid_i18nname$s(RRRR2R3R4R5R6R7R8R;R<R=RNRURWRXRYRZR[(((RR"Ns$          !  .   tI18NErrorsTestCasecBs,tZd„Zd„Zd„Zd„ZRS(NcCs8y|i|ƒWntj onX|i|ƒdS(N(R RtsrcR:Rtmsg(R R]R^((RR2.s cCs|iddƒdS(Ns0

s.expected i18n:id with tal:replace to be denied(R R2(R ((Rttest_id_with_replace6s cCs4|iddƒ|iddƒ|iddƒdS(Ns

s(missing i18n:attributes value not caughts

s"missing i18n:data value not caughts

s missing i18n:id value not caught(R R2(R ((Rttest_missing_values:s    cCs|idddƒdS(Nss4expected attribute being both part of tal:attributess3 and having a msgid in i18n:attributes to be denied(R R2(R ((Rttest_id_with_attributesBs (RRR2R_R`Ra(((RR\,s   tOutputPresentationTestCasecBs>tZd„Zd„Zd„Zd„Zd„Zd„ZRS(NcCs d}d}|i||ƒdS(Ns¦ sœ (tINPUTtEXPECTEDR tcompare(R RdRc((Rttest_attribute_wrappingKscCs d}d}|i||ƒdS(Ns+

para

u

déjà-vu

(RcRdR Re(R RdRc((Rttest_unicode_contentZscCs d}d}|i||ƒdS(Ns5

para

u déjà-vu (RcRdR Re(R RdRc((Rttest_unicode_structure_scCs d}d}|i||ƒdS(Nsx

para

u

FOO 123

(RcRdR Re(R RdRc((Rttest_i18n_replace_numberdscCs d}d}|i||ƒdS(NsJ&a;  
 &a - &; �a; <>sH&a;  
 &a &#45 &; &#0a; <> (RcRdR Re(R RdRc((Rt test_entitiesmscCs]|i|ƒ\}}tƒ}t|htƒ|ddƒ}|ƒ|i |i ƒ|ƒdS(Ntwrapi<( R RRcR R R-tsioRRtinterpR/R1Rd(R RcRdRmR R Rl((RRets  (RRRfRgRhRiRjRe(((RRbIs     tInterpolateTestCasecBs>tZd„Zd„Zd„Zd„Zd„Zd„ZRS(NcCsAd}hdd<dd<}d}|it||ƒ|ƒdS(Nsfoo ${bar_0MAN} $baz_zz beetbar_0MANtfishtbaz_zztmoosfoo fish moo bee(ttexttmappingR0R R/t interpolate(R R0RsRt((Rttest_syntax_ok}scCsAd}hdd<dd<}|}|it||ƒ|ƒdS(Nsfoo $_bar_man} $ ${baz beet_bar_manRptbazRr(RsRtR0R R/Ru(R R0RsRt((Rttest_syntax_badƒscCs8d}hdd<}d}|it||ƒ|ƒdS(Nsfoo ${bar} ${baz}R&Rpsfoo fish ${baz}(RsRtR0R R/Ru(R R0RsRt((Rt test_missing‰scCsAd}hdd<dd<}d}|it||ƒ|ƒdS(Ns foo ${bar}R&RpRxRrsfoo fish(RsRtR0R R/Ru(R R0RsRt((Rttest_redundantscCs8d}hdd<}d}|it||ƒ|ƒdS(Ns foo ${bar}R&i{sfoo 123(RsRtR0R R/Ru(R R0RsRt((Rt test_numeric•scCs8d}hdd<}d}|it||ƒ|ƒdS(Nu foo ${bar}ubarubazufoo baz(RsRtR0R R/Ru(R R0RsRt((Rt test_unicode›s(RRRvRyRzR{R|R}(((RRn{s      cCsktitƒ}|ititƒƒ|ititƒƒ|ititƒƒ|ititƒƒ|S(N( tunittestt makeSuiteR\tsuitetaddTestRRbR"Rn(R€((Rt test_suite©s t__main__ii(#t__doc__tsysR~R-twarningst showwarningt TAL.TALDefsRR:tTAL.HTMLTALParserRt TAL.TALParserRVtTAL.TALInterpreterRtTAL.DummyEngineRtDummyTranslationServiceRut TAL.teststutilstzope.i18nmessageidR+tTestCaseRRR"R\RbRnR‚Rt run_suiteterrstexit(R\R~R"R“R‡RRbRRnRVR†RRuR:R…R+RRR-RR‚RR((Rt?s2              Þ2.