ó zªQc@sddlZddlZddlZejejjejjejjeƒƒƒƒdZddl Z e j dƒddl Z ddl m Z ddlmZdefd„ƒYZde jfd„ƒYZed krddlZejd ƒe jƒndS( iÿÿÿÿNtBazki(tStringIO(tformatt BaseHandlercBsAeZd„Zdd„Zd„Zd„Zd„Zd„ZRS(cCs|S(N((tselftetptcontents((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pytpropscCstS(N(tTrue(RRtparent((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt start_elementscCsdS(N((RR((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt end_elementscCsiS(N((RR((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pytget_new_propertiesscCsgS(N((RR((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pytget_new_childrenscCsts t‚dS(N(tFalsetAssertionError(Rtnametval((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt set_externsN( t__name__t __module__RtNoneR R R RR(((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyRs      t FormatTestcBsàeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCsEt|ƒ}tƒ}tjd|||ƒ|j||jƒƒdS(Ns/tmp/test.yaml(RRtparset assertEqualstgetvalue(Rtinitialthandlertexpectedtinftoutf((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pytexpect_becomess  cCs}t|ƒ}tƒ}ytjd|||ƒWn:tjk rk}|j||jdk|jdƒnX|jdƒdS(Ns/tmp/test.yamlisParsing succeeded.(RRRtInvalidBazFilet assertTruetargstfail(RRRtmessageRRR((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt expect_fails%s  (cCs1tƒ}x!dD]}|j|||ƒqWdS(Ns4foo: bar baz: 3 quux: True boingo: 'a sound effect' s4foo: bar baz: | This is a block with returns. sAfoo: bar baz: | This is a block with end-of-line spaces. (s4foo: bar baz: 3 quux: True boingo: 'a sound effect' s4foo: bar baz: | This is a block with returns. sAfoo: bar baz: | This is a block with end-of-line spaces. (RR (RRty((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_consistency/s   cCs,tƒ}d}d}|j|||ƒdS(Ns2foo: bar baz: > This is a block that flows. s.foo: bar baz: > This is a block that flows. (RR (RRR'tz((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt test_flowGs cCs€dtfd„ƒY}|ƒ}d}d}|j|||ƒd}d}|j|||ƒd}d}|j|||ƒdS( NtSettingHandlercBseZd„ZRS(cSs|dS(Nt!((RRRR((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyRXs(RRR(((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR+Wss2foo: bar baz: 3 quux: True boingo: a sound effect s6foo: bar! baz: 3! quux: True! boingo: a sound effect! s4foo: bar baz: | This is a block with returns. s:foo: bar! baz: |- This is a block with returns. ! s2foo: bar baz: > This is a block that flows. s4foo: bar! baz: |- This is a block that flows. ! (RR (RR+RR'R)((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_prop_settingVs cCsšdtfd„ƒY}|ƒ}d}d}|j|||ƒd}|jd||ƒ|jd||ƒd}|jd ||ƒ|jd ||ƒdS( NtNewPropHandlercBseZd„ZRS(cSs idd6S(NuCheese.uboingo((RR((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR †s(RRR (((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR.…ss foo: bar sfoo: bar boingo: Cheese. sboingo: Cheese. ts s--- boingo: Cheese. s---s--- (RR (RR.RR'R)((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt test_new_prop„s csÕxÎddddddgD]´\‰}d tf‡fd†ƒY}|ƒ}d|}|jd||ƒ|jd||ƒd|}|jd||ƒ|jd||ƒd}d|}|j|||ƒqWdS(NuCheese. Or not to cheese. s!| Cheese. Or not to cheese. uCheese. Or not to cheese. s | Cheese. Or not to cheese. uCheese. Or not to cheese.s!|- Cheese. Or not to cheese. uCheese. Or not to cheese.s"|- Cheese. Or not to cheese. uKAmnesiac with no aspects, possibly newly created clone or Dollhouse person.sS|- Amnesiac with no aspects, possibly newly created clone or Dollhouse person. uLAmnesiac with no aspects, possibly newly created clone or Dollhouse person.sT|- Amnesiac with no aspects, possibly newly created clone or Dollhouse person. R.cseZ‡fd†ZRS(cs iˆd6S(Nuboingo((RR(ta(sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR ©s(RRR ((R1(sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR.¨ssboingo: R/s s --- boingo: s---s--- s foo: bar sfoo: bar boingo: (uCheese. Or not to cheese. s!| Cheese. Or not to cheese. (uCheese. Or not to cheese. s | Cheese. Or not to cheese. (uCheese. Or not to cheese.s!|- Cheese. Or not to cheese. (uCheese. Or not to cheese.s"|- Cheese. Or not to cheese. (uKAmnesiac with no aspects, possibly newly created clone or Dollhouse person.sS|- Amnesiac with no aspects, possibly newly created clone or Dollhouse person. (uLAmnesiac with no aspects, possibly newly created clone or Dollhouse person.sT|- Amnesiac with no aspects, possibly newly created clone or Dollhouse person. (RR (RtbR.RR)R'((R1sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_new_multiline_propsšs.    cCs<dtfd„ƒY}|ƒ}d}|j|||ƒdS(NtIncludeHandlercBseZd„ZRS(cSsdS(NsWombat!((Rtpath((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt get_include»s(RRR6(((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR4ºss'foo: bar boingo: !include 'attach.txt' (RR (RR4RR'((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_include_consistency¹s cCs<dtfd„ƒY}|ƒ}d}|j|||ƒdS(NtIncludeSettingHandlercBs#eZd„Zd„Zd„ZRS(cSsdS(NsWombat!((RR5((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR6ÇscSs(|dkr tj|jdƒS|SdS(NtboingoR,(RtIncludeR(RRRR((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyRÉs cSs/|dkstt|ƒƒ‚| s+t‚|S(NsWombat!!(Rtstr(RR5Rtnew((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt set_includeÎs (RRR6RR=(((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR8Æs  s'foo: bar boingo: !include 'attach.txt' (RR (RR8RR'((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_include_settingÅs cCsBdtfd„ƒY}|ƒ}d}d}|j|||ƒdS(NR8cBseZd„Zd„ZRS(cSsdS(NsWombat!((RR5((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR6ÝscSs%|dkrt|jƒdS|SdS(NR9R,(tunicodeR(RRRR((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyRßs (RRR6R(((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR8Üs s%foo: bar boingo: !include attach.txt sfoo: bar boingo: Wombat!! (RR (RR8RR'R)((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_include_to_inlineÛs  cCsBdtfd„ƒY}|ƒ}d}d}|j|||ƒdS(NR8cBseZd„Zd„ZRS(cSs%|dkrtj|dƒS|SdS(NR9R,(RR:(RRRR((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyRñs cSs.|dkstt|ƒƒ‚|s*t‚|S(NsWombat!!(RR;(RR5RR<((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR=ös (RRRR=(((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR8ðs sfoo: bar boingo: Wombat! s,foo: bar boingo: !include 'test.boingo.txt' (RR (RR8RR'R)((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_inline_to_includeïs  cCsBdtfd„ƒY}|ƒ}d}d}|j|||ƒdS(NtNewIncludeHandlercBseZd„Zd„ZRS(cSs.|dkstt|ƒƒ‚|s*t‚dS(NsCheese.s upload.txt(RR;(RR5RR<((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR=s cSs idd6S(NsCheese.uboingo((RR((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR s(RRR=R (((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyRBs s foo: bar s'foo: bar boingo: !include 'upload.txt' (RR (RRBRR'R)((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_new_includes  cCs0|jdtƒdƒ|jdtƒdƒdS(NR/s (R R(R((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt test_emptyscCs0|jdtƒdƒ|jdtƒdƒdS(Ns---s--- (R R(R((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt test_dashesscCs&tƒ}d}|j|||ƒdS(Ns8--- foo: bar baz: 3 quux: True boingo: 'a sound effect' (RR (RRR'((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_mapping_with_dashess cCs|jdtƒdƒdS(Ns === foo: bar s/Non-empty scalar '=== foo' at start of mapping.(R&R(R((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_equals_signs*scCs|jdtƒdƒdS(Ns foo: [[bar]] s'values starting with a [ must be quoted(R&R(R((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_square_brackets.scCs|jdtƒdƒdS(Ns foo: {{bar}} s'values starting with a { must be quoted(R&R(R((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_curly_brackets2scCs|jdtƒdƒdS(Nsfoo: !include bar/baz.png s-Includes must not be in a different directory(R&R(R((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_nonlocal_include6scCs|jdtƒdƒdS(Nsfoo: !include bar.yaml sIncludes must not end in .yaml(R&R(R((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_yaml_include:scCs|jdtƒdƒdS(Ns foo: **bar** s'values starting with a * must be quoted(R&R(R((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt test_asterisk>scCs|jdtƒdƒdS(Ns foo: ? bar s'values starting with a ? must be quoted(R&R(R((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_question_markBscCs|jdtƒdƒdS(Nsfoo: ? s'values starting with a ? must be quoted(R&R(R((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_question_mark_aloneFscCs|jdtƒdƒdS(Nsfoo: bar foo: baz sset more than once(R&R(R((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyttest_duplicate_propval_failsJs(RRR R&R(R*R-R0R3R7R>R@RARCRDRERFRGRHRIRJRKRLRMRNRO(((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyRs0    .                t__main__terror(tsitetostsyst addsitedirR5tdirnametrealpatht__file__t __requires__t pkg_resourcestrequiretunittestt cStringIORtbazsvnRtobjectRtTestCaseRRtwarningst simplefiltertmain(((sG/afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyts$1   ÿ2