ó
zªQc           @   s  d  d l  Z  d  d l Z d  d l Z e  j e j j e j j e j j e ƒ ƒ ƒ ƒ d Z d  d l	 Z	 e	 j
 d ƒ d  d l Z d  d l m Z d  d l m Z d e f d „  ƒ  YZ d e j f d „  ƒ  YZ e d	 k rd  d l Z e j d
 ƒ e j ƒ  n  d S(   iÿÿÿÿNt   Bazki(   t   StringIO(   t   formatt   BaseHandlerc           B   sA   e  Z d  „  Z d d „ Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   | S(   N(    (   t   selft   et   pt   contents(    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   prop   s    c         C   s   t  S(   N(   t   True(   R   R   t   parent(    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   start_element   s    c         C   s   d  S(   N(    (   R   R   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   end_element   s    c         C   s   i  S(   N(    (   R   R   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   get_new_properties   s    c         C   s   g  S(   N(    (   R   R   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   get_new_children   s    c         C   s   t  s t ‚ d  S(   N(   t   Falset   AssertionError(   R   t   namet   val(    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt
   set_extern   s    N(	   t   __name__t
   __module__R   t   NoneR   R   R   R   R   (    (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR      s   				t
   FormatTestc           B   sà   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sE   t  | ƒ } t  ƒ  } t j d | | | ƒ |  j | | j ƒ  ƒ d  S(   Ns   /tmp/test.yaml(   R   R   t   parset   assertEqualst   getvalue(   R   t   initialt   handlert   expectedt   inft   outf(    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   expect_becomes   s    	c         C   s}   t  | ƒ } t  ƒ  } y t j d | | | ƒ Wn: t j k
 rk } |  j | | j d k | j d ƒ n X|  j d ƒ d  S(   Ns   /tmp/test.yamli    s   Parsing succeeded.(   R   R   R   t   InvalidBazFilet
   assertTruet   argst   fail(   R   R   R   t   messageR   R   R   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   expect_fails%   s    	(c         C   s1   t  ƒ  } x! d D] } |  j | | | ƒ q Wd  S(   Ns4   foo: bar
baz: 3
quux: True
boingo: 'a sound effect'
s4   foo: bar
baz: |
  This is
  a block
  with returns.
sA   foo: bar
baz: |
  This is 
  a block 
  with end-of-line spaces.
(   s4   foo: bar
baz: 3
quux: True
boingo: 'a sound effect'
s4   foo: bar
baz: |
  This is
  a block
  with returns.
sA   foo: bar
baz: |
  This is 
  a block 
  with end-of-line spaces.
(   R   R    (   R   R   t   y(    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   test_consistency/   s    	  
c         C   s,   t  ƒ  } d } d } |  j | | | ƒ d  S(   Ns2   foo: bar
baz: >
  This is
  a block
  that flows.
s.   foo: bar
baz: >
  This is a block that flows.
(   R   R    (   R   R   R'   t   z(    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt	   test_flowG   s    	c         C   s€   d t  f d „  ƒ  Y} | ƒ  } d } d } |  j | | | ƒ d } d } |  j | | | ƒ d } d } |  j | | | ƒ d  S(	   Nt   SettingHandlerc           B   s   e  Z d  „  Z RS(   c         S   s   | d S(   Nt   !(    (   R   R   R   R   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR   X   s    (   R   R   R   (    (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR+   W   s   s2   foo: bar
baz: 3
quux: True
boingo: a sound effect
s6   foo: bar!
baz: 3!
quux: True!
boingo: a sound effect!
s4   foo: bar
baz: |
  This is
  a block
  with returns.
s:   foo: bar!
baz: |-
  This is
  a block
  with returns.
  !
s2   foo: bar
baz: >
  This is
  a block
  that flows.
s4   foo: bar!
baz: |-
  This is a block that flows.
  !
(   R   R    (   R   R+   R   R'   R)   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   test_prop_settingV   s    	c         C   sš   d t  f d „  ƒ  Y} | ƒ  } d } d } |  j | | | ƒ d } |  j d | | ƒ |  j d | | ƒ d } |  j d	 | | ƒ |  j d
 | | ƒ d  S(   Nt   NewPropHandlerc           B   s   e  Z d  „  Z RS(   c         S   s   i d d 6S(   Nu   Cheese.u   boingo(    (   R   R   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR   †   s    (   R   R   R   (    (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR.   …   s   s	   foo: bar
s   foo: bar
boingo: Cheese.
s   boingo: Cheese.
t    s   
s   ---
boingo: Cheese.
s   ---s   ---
(   R   R    (   R   R.   R   R'   R)   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   test_new_prop„   s    	c            sÕ   xÎ d d d d d d g D]´ \ ‰  } d t  f ‡  f d †  ƒ  Y} | ƒ  } d | } |  j d | | ƒ |  j d | | ƒ d | } |  j d | | ƒ |  j d | | ƒ d } d | } |  j | | | ƒ q Wd  S(   Nu   Cheese.

Or not to cheese.
s!   |
  Cheese.

  Or not to cheese.
u   Cheese.
Or not to cheese.
s    |
  Cheese.
  Or not to cheese.
u   Cheese.
Or not to cheese.s!   |-
  Cheese.
  Or not to cheese.
u   Cheese. 
Or not to cheese.s"   |-
  Cheese. 
  Or not to cheese.
uK   Amnesiac with no aspects, possibly newly created clone or Dollhouse
person.sS   |-
  Amnesiac with no aspects, possibly newly created clone or Dollhouse
  person.
uL   Amnesiac with no aspects, possibly newly created clone or Dollhouse 
person.sT   |-
  Amnesiac with no aspects, possibly newly created clone or Dollhouse 
  person.
R.   c              s   e  Z ‡  f d  †  Z RS(   c            s   i ˆ  d 6S(   Nu   boingo(    (   R   R   (   t   a(    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR   ©   s    (   R   R   R   (    (   R1   (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR.   ¨   s   s   boingo: R/   s   
s   ---
boingo: s   ---s   ---
s	   foo: bar
s   foo: bar
boingo: (   u   Cheese.

Or not to cheese.
s!   |
  Cheese.

  Or not to cheese.
(   u   Cheese.
Or not to cheese.
s    |
  Cheese.
  Or not to cheese.
(   u   Cheese.
Or not to cheese.s!   |-
  Cheese.
  Or not to cheese.
(   u   Cheese. 
Or not to cheese.s"   |-
  Cheese. 
  Or not to cheese.
(   uK   Amnesiac with no aspects, possibly newly created clone or Dollhouse
person.sS   |-
  Amnesiac with no aspects, possibly newly created clone or Dollhouse
  person.
(   uL   Amnesiac with no aspects, possibly newly created clone or Dollhouse 
person.sT   |-
  Amnesiac with no aspects, possibly newly created clone or Dollhouse 
  person.
(   R   R    (   R   t   bR.   R   R)   R'   (    (   R1   sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   test_new_multiline_propsš   s.         	


c         C   s<   d t  f d „  ƒ  Y} | ƒ  } d } |  j | | | ƒ d  S(   Nt   IncludeHandlerc           B   s   e  Z d  „  Z RS(   c         S   s   d S(   Ns   Wombat!(    (   R   t   path(    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   get_include»   s    (   R   R   R6   (    (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR4   º   s   s'   foo: bar
boingo: !include 'attach.txt'
(   R   R    (   R   R4   R   R'   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   test_include_consistency¹   s    	c         C   s<   d t  f d „  ƒ  Y} | ƒ  } d } |  j | | | ƒ d  S(   Nt   IncludeSettingHandlerc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         S   s   d S(   Ns   Wombat!(    (   R   R5   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR6   Ç   s    c         S   s(   | d k r  t  j | j d ƒ S| Sd  S(   Nt   boingoR,   (   R   t   IncludeR   (   R   R   R   R   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR   É   s    c         S   s/   | d k s t  t | ƒ ƒ ‚ | s+ t  ‚ | S(   Ns   Wombat!!(   R   t   str(   R   R5   R   t   new(    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   set_includeÎ   s    (   R   R   R6   R   R=   (    (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR8   Æ   s   		s'   foo: bar
boingo: !include 'attach.txt'
(   R   R    (   R   R8   R   R'   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   test_include_settingÅ   s    	c         C   sB   d t  f d „  ƒ  Y} | ƒ  } d } d } |  j | | | ƒ d  S(   NR8   c           B   s   e  Z d  „  Z d „  Z RS(   c         S   s   d S(   Ns   Wombat!(    (   R   R5   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR6   Ý   s    c         S   s%   | d k r t  | j ƒ d S| Sd  S(   NR9   R,   (   t   unicodeR   (   R   R   R   R   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR   ß   s    (   R   R   R6   R   (    (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR8   Ü   s   	s%   foo: bar
boingo: !include attach.txt
s   foo: bar
boingo: Wombat!!
(   R   R    (   R   R8   R   R'   R)   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   test_include_to_inlineÛ   s
    	c         C   sB   d t  f d „  ƒ  Y} | ƒ  } d } d } |  j | | | ƒ d  S(   NR8   c           B   s   e  Z d  „  Z d „  Z RS(   c         S   s%   | d k r t  j | d ƒ S| Sd  S(   NR9   R,   (   R   R:   (   R   R   R   R   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR   ñ   s    c         S   s.   | d k s t  t | ƒ ƒ ‚ | s* t  ‚ | S(   Ns   Wombat!!(   R   R;   (   R   R5   R   R<   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR=   ö   s    (   R   R   R   R=   (    (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR8   ð   s   	s   foo: bar
boingo: Wombat!
s,   foo: bar
boingo: !include 'test.boingo.txt'
(   R   R    (   R   R8   R   R'   R)   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   test_inline_to_includeï   s
    
	c         C   sB   d t  f d „  ƒ  Y} | ƒ  } d } d } |  j | | | ƒ d  S(   Nt   NewIncludeHandlerc           B   s   e  Z d  „  Z d „  Z RS(   c         S   s.   | d k s t  t | ƒ ƒ ‚ | s* t  ‚ d S(   Ns   Cheese.s
   upload.txt(   R   R;   (   R   R5   R   R<   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR=     s    c         S   s   i d d 6S(   Ns   Cheese.u   boingo(    (   R   R   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR     s    (   R   R   R=   R   (    (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyRB     s   	s	   foo: bar
s'   foo: bar
boingo: !include 'upload.txt'
(   R   R    (   R   RB   R   R'   R)   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   test_new_include  s
    	c         C   s0   |  j  d t ƒ  d ƒ |  j  d t ƒ  d ƒ d  S(   NR/   s   
(   R    R   (   R   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt
   test_empty  s    c         C   s0   |  j  d t ƒ  d ƒ |  j  d t ƒ  d ƒ d  S(   Ns   ---s   ---
(   R    R   (   R   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   test_dashes  s    c         C   s&   t  ƒ  } d } |  j | | | ƒ d  S(   Ns8   ---
foo: bar
baz: 3
quux: True
boingo: 'a sound effect'
(   R   R    (   R   R   R'   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   test_mapping_with_dashes  s    	c         C   s   |  j  d t ƒ  d ƒ d  S(   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.pyt   test_equals_signs*  s    c         C   s   |  j  d t ƒ  d ƒ d  S(   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_square_brackets.  s    c         C   s   |  j  d t ƒ  d ƒ d  S(   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_curly_brackets2  s    c         C   s   |  j  d t ƒ  d ƒ d  S(   Ns   foo: !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.pyt   test_nonlocal_include6  s    c         C   s   |  j  d t ƒ  d ƒ d  S(   Ns   foo: !include bar.yaml
s   Includes must not end in .yaml(   R&   R   (   R   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   test_yaml_include:  s    c         C   s   |  j  d t ƒ  d ƒ d  S(   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>  s    c         C   s   |  j  d t ƒ  d ƒ d  S(   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_question_markB  s    c         C   s   |  j  d t ƒ  d ƒ d  S(   Ns   foo: ?
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_question_mark_aloneF  s    c         C   s   |  j  d t ƒ  d ƒ d  S(   Ns   foo: bar
foo: baz
s   set more than once(   R&   R   (   R   (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   test_duplicate_propval_failsJ  s    (   R   R   R    R&   R(   R*   R-   R0   R3   R7   R>   R@   RA   RC   RD   RE   RF   RG   RH   RI   RJ   RK   RL   RM   RN   RO   (    (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyR      s0   		
			.																		t   __main__t   error(   t   sitet   ost   syst
   addsitedirR5   t   dirnamet   realpatht   __file__t   __requires__t   pkg_resourcest   requiret   unittestt	   cStringIOR   t   bazsvnR   t   objectR   t   TestCaseR   R   t   warningst   simplefiltert   main(    (    (    sG   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/unit.pyt   <module>   s   $1ÿ 2