ó
Ž7ÈPc           @€  s…  d  d l  m Z d  d l Z d  d l Z e d k rz e j j e j j e j j e j j e ƒ ƒ ƒ ƒ g e j e _ n  d Z	 d  d l
 Z
 e
 j d ƒ d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z d  d l m Z m Z m Z m Z m Z d  d l Z d e j k Z d „  Z e j j e j j e ƒ ƒ Z d	 e j f d
 „  ƒ  YZ  e d k re j! ƒ  n  d S(   iÿÿÿÿ(   t   with_statementNt   __main__t   Bazki(   t   command(   t   customt   modelt   testingt   dbt
   conversions   -vc         C€  sq   t  s |  j d ƒ n  t j |  d t j d t j ƒ} | j ƒ  \ } } | j d k rm t | j | ƒ ‚ n  d  S(   Ns   -qt   stdoutt   stderri    (   t   verboset   appendt
   subprocesst   Popent   PIPEt   communicatet
   returncodet   EnvironmentError(   t   cmdt   pt   outt   err(    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   run   s    !t   BazsvnWithBazbasec           B€  sU  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 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€  s`   t  j | d t  j d t  j ƒ} | j ƒ  \ } } |  j | | j ƒ |  j | | k | ƒ d  S(   NR	   R
   (   R   R   R   R   t   assertEqualsR   t
   assertTrue(   t   selfR   t   statust   messageR   R   R   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   expectRunGetsStatus$   s
    c      	   C€  sq  t  j ƒ  |  _ t j ƒ  t j |  _ t j	 t _ t
 j j ƒ  t
 j ƒ  t
 j j ƒ  t
 j j ƒ  t j ƒ  t j	 j ƒ  t j d d ƒ |  _ |  j t j _ t j d d |  j g ƒ t  j t  j j t d ƒ t  j j |  j d d ƒ ƒ d d d	 d
 d d t  j j t d ƒ d |  j g } t | ƒ t j d d ƒ |  _ t d d d |  j |  j g ƒ t  j |  j ƒ d  S(   Nt   suffixs	   .testrepot   svnadmint   creates
   pre-committ   hookst   svnt   imports
   --usernamet   bazkis   -ms   Bootstrapping...R   s   file://s   .testcheckoutt   cos	   file://%s(    t   ost   getcwdt   cwdR   t   set_up_for_testsR   t   version_control_hookt   old_vcs_hookt   bazsvnt   hookR   t   sessiont   begint   cleart   committ   closeR   t   invalidate_cachet   clear_checkoutst   tempfilet   mkdtempt   repot
   REPOSITORYR   t
   check_callt   symlinkt   patht   joint   hereR   t   checkoutt   chdir(   R   t
   import_cmd(    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   setUp+   s.    



 c         C€  s@   t  j |  j ƒ t  j |  j ƒ t j |  j ƒ |  j t _	 d  S(   N(
   t   shutilt   rmtreeR?   R8   R'   R@   R)   R,   R   R+   (   R   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   tearDownK   s    c      
   C€  sÜ   d } t  | d ƒ  } | j d j d ƒ ƒ Wd  QXt d d | g ƒ t d d d d	 g ƒ t j ƒ  m t j j d
 ƒ } |  j	 d t
 | d j d ƒ ƒ |  j	 d t
 | d j d ƒ ƒ |  j	 d | j j ƒ Wd  QXd  S(   Ns   Object/Test/UnitTest.yamlt   wu=   comment: |
  This was createdâ€”in a unit test!
name: George
s   utf-8R#   t   addt   cis   -ms	   unit testu   UnitTestu   Georgeu   nameu#   This was createdâ€”in a unit test!
u   commentu   Test(   t   opent   writet   encodeR   R   t   begin_transactionR   t   Elementt   getR   t   unicodet   valuet   parentt   ename(   R   R<   t   outft   e(    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_add_childQ   s     	c      
   C€  s¼   d } t  | d ƒ  } | j d ƒ Wd  QXt d d d d g ƒ t j ƒ  i t j j d ƒ } |  j d	 t	 | d
 j
 d ƒ ƒ t j j d ƒ } |  j d t	 | d
 j
 d ƒ ƒ Wd  QXd  S(   Ns   Object/Test/Test.yamlt   as   name: Paul
R#   RH   s   -ms	   unit testu   Testu   Paulu   names   utf-8u   Sandbox(   RI   RJ   R   R   RL   R   RM   RN   R   RO   RP   (   R   R<   RS   RT   t   e2(    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_add_propvala   s     	c      
   C€  s¶   d } t  | d ƒ  } | j d ƒ Wd  QXt d d d d g ƒ t j ƒ  c t j j d ƒ } |  j d	 t	 | d
 j
 d ƒ ƒ t j j d ƒ } |  j d	 | d
 j ƒ  ƒ Wd  QXd  S(   Ns   Object/Test/Test.yamlRV   s   product: Paul
R#   RH   s   -ms	   unit testu   Testu   Paulu   products   utf-8u   Sandbox(   RI   RJ   R   R   RL   R   RM   RN   R   RO   RP   t   render(   R   R<   RS   RT   RW   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt(   test_add_propval_default_parent_dot_thiso   s     c      
   C€  s°   d } t  | d ƒ  } | j d ƒ Wd  QXt d d d d g ƒ t j ƒ  ] t j j d ƒ } |  j d	 | k ƒ |  j	 d
 t
 | d	 j d ƒ ƒ |  j d | k ƒ Wd  QXd  S(   Ns   Object/Test/MergeTest.yamlRF   sH   comment: This test edits the comment and removes the 'test' prop value.
R#   RH   s   -ms	   unit testu	   MergeTestu   commentu>   This test edits the comment and removes the 'test' prop value.s   utf-8u   test(   RI   RJ   R   R   RL   R   RM   RN   R   R   RO   RP   t   assertFalse(   R   R<   RS   RT   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_remove_propval|   s     c      	   C€  s§   d } t  j | ƒ | d } t | d ƒ  } | j d ƒ Wd  QXt d d | g ƒ |  j d d d d	 g d
 d ƒ t j ƒ  ! |  j t	 j
 t	 j j d ƒ Wd  QXd  S(   Ns   Object/Test/UnitTests   /UnitTest.yamlRF   s;   comment: |
  This was created in a unit test.
name: George
R#   RG   RH   s   -ms	   unit testi   s^   If UnitTest has no kids, it needs to be in the form UnitTest.yaml, not UnitTest/UnitTest.yaml!u   UnitTest(   R'   t   mkdirRI   RJ   R   R   R   RL   t   assertRaisesR   t   NoResultFoundRM   RN   (   R   t   dirpathR<   RS   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt(   test_add_child_with_leaf_directory_failsˆ   s    
c      	   C€  sš   d } | d } t  | d ƒ  } | j d ƒ Wd  QXt d d | g ƒ |  j d d d d	 g d
 d ƒ t j ƒ  ! |  j t j t j	 j
 d ƒ Wd  QXd  S(   Ns   Object/Tests   /UnitTest.yamlRF   sH   parent: Test
comment: |
  This was created in a unit test.
name: George
R#   RG   RH   s   -ms	   unit testi   s6   'parent' specified in non-toplevel element 'UnitTest'!u   UnitTest(   RI   RJ   R   R   R   RL   R^   R   R_   RM   RN   (   R   R`   R<   RS   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt-   test_add_non_toplevel_child_with_parent_fails˜   s    
c         C€  sb   d } t  d d | g ƒ t  d d d d g ƒ t j ƒ  ! |  j t j t j j d ƒ Wd  QXd  S(   Ns   Object/Test/MergeTest.yamlR#   t   rmRH   s   -ms	   unit testu	   MergeTest(   R   R   RL   R^   R   R_   RM   RN   (   R   R<   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_remove_child¨   s    c         C€  s¿   d } d } d } d } t  d d | g ƒ t  d d | | g ƒ t  d d | g ƒ t  d d d	 d
 g ƒ t j ƒ  C |  j d t j j d ƒ j j ƒ |  j	 t j
 t j j d ƒ Wd  QXd  S(   Ns   Object/User/Admin/Daemon.yamls   Object/User/Admin/Admin.yamls   Object/User/Admin.yamls   Object/User/Admin/R#   Rc   t   mvRH   s   -ms	   unit testt   Useru   Adminu   Daemon(   R   R   RL   R   R   RM   RN   RQ   RR   R^   R_   (   R   R<   t   parent_fromt	   parent_tot
   parent_dir(    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_remove_last_child°   s    "c         C€  sq   d } t  d d | g ƒ |  j d d d d g d d ƒ t j ƒ  ' |  j d	 t j j d
 ƒ j j	 ƒ Wd  QXd  S(   Ns   Object/User/Admin/Daemon.yamlR#   Rc   RH   s   -ms	   unit testi   sR   If Admin has no kids, it needs to be in the form Admin.yaml, not Admin/Admin.yaml!u   Adminu   Daemon(
   R   R   R   RL   R   R   RM   RN   RQ   RR   (   R   R<   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt<   test_remove_last_child_without_removing_leaf_directory_fails¾   s    	c         C€  sÎ   d } d } d } d } d } t  d d | | g ƒ t  d d | | g ƒ t  d d | g ƒ t  d d	 d
 d g ƒ t j ƒ  I |  j d t j j d ƒ j j ƒ |  j d t j j d ƒ j j ƒ Wd  QXd  S(   Ns   Object/User/Admins   Object/Test/Admins   Object/Users   Object/User/User.yamls   Object/User.yamlR#   Re   Rc   RH   s   -ms	   unit testt   Testu   Admint   Adminu   Daemon(	   R   R   RL   R   R   RM   RN   RQ   RR   (   R   t	   path_fromt   path_toRi   Rg   Rh   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_move_subtreeÈ   s    "	c      	   C€  sÄ   d } d } d } d } t  d d | | g ƒ t | d ƒ  } | j d ƒ Wd  QXt  d d	 d
 d g ƒ t j ƒ  I |  j d t j j d ƒ j	 j
 ƒ |  j d t j j d ƒ j	 j
 ƒ Wd  QXd  S(   Ns   Object/User/AdminRm   s   Admin/Admin.yamls   Object/UserR#   Re   RF   s   parent: User
comment: whateverRH   s   -ms	   unit testRf   u   Adminu   Daemon(   R   RI   RJ   R   RL   R   R   RM   RN   RQ   RR   (   R   Rn   Ro   t   path_to_yamlRi   RS   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_move_to_toplevel×   s    "	c         C€  s~   d } t  d d | g ƒ t  d d d d g ƒ t j ƒ  = |  j t j t j j d ƒ |  j t j t j j d ƒ Wd  QXd  S(	   Ns   Object/TestR#   Rc   RH   s   -ms	   unit testu   Testu   Sandbox(   R   R   RL   R^   R   R_   RM   RN   (   R   R<   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_remove_subtreeå   s    c         C€  s¿   d } d } d } d } t  d d | g ƒ t  d d | | g ƒ t  d d | g ƒ t  d d d	 d
 g ƒ t j ƒ  C |  j t j t j j d ƒ |  j d t j j d ƒ j	 ƒ  ƒ Wd  QXd  S(   Ns   Object/User/Admins   Object/Users   Object/User/User.yamls   Object/User.yamlR#   Rc   Re   RH   s   -ms	   unit testu   Admini    u   User(
   R   R   RL   R^   R   R_   RM   RN   R   t   countDescendants(   R   R<   Ri   Rg   Rh   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_remove_last_subtreeî   s    c         C€  s“   d } t  d d | g ƒ |  j d d d d g d d ƒ t j ƒ  I |  j d	 t j j d
 ƒ j j	 ƒ |  j d
 t j j d ƒ j j	 ƒ Wd  QXd  S(   Ns   Object/User/AdminR#   Rc   RH   s   -ms	   unit testi   sN   If User has no kids, it needs to be in the form User.yaml, not User/User.yaml!u   Useru   Adminu   Daemon(
   R   R   R   RL   R   R   RM   RN   RQ   RR   (   R   R<   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt>   test_remove_last_subtree_without_removing_leaf_directory_failsû   s    		c         C€  sV  d } t  j | ƒ d } t | d ƒ  } | j d ƒ Wd  QXd } t | d ƒ  } | j d ƒ Wd  QXt d d | g ƒ t d d	 d
 d g ƒ t j ƒ  ² t j j	 d ƒ } |  j
 d t | d j d ƒ ƒ t j j	 d ƒ } |  j
 d t | d j d ƒ ƒ |  j
 d t | d j d ƒ ƒ |  j
 d | j j ƒ |  j
 | | j ƒ Wd  QXd  S(   Ns   Object/Test/UnitTest/s"   Object/Test/UnitTest/UnitTest.yamlRF   s;   comment: |
  This was created in a unit test.
name: George
s!   Object/Test/UnitTest/TestTwo.yamls6   comment: |
  Also created in a unit test.
name: Ringo
R#   RG   RH   s   -ms	   unit testu   UnitTestu   Georgeu   names   utf-8u   TestTwou   Ringou!   This was created in a unit test.
u   commentu   Test(   R'   R]   RI   RJ   R   R   RL   R   RM   RN   R   RO   RP   RQ   RR   (   R   t   dirR<   RS   t   path2RT   RW   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_add_subtree  s*      	c         C€  sÈ   d } d } t  | d ƒ  } | j d ƒ Wd  QXt  | d ƒ  } | j d ƒ Wd  QXt d d | g ƒ t d d	 d
 d g ƒ t j ƒ  7 t j j d ƒ } |  j d t	 | d j
 d ƒ ƒ Wd  QXd  S(   Ns   Object/Test/Test.yamls   Object/Test/existent.txtRV   s   name: !include existent.txt
RF   t   PaulR#   RG   RH   s   -ms	   unit testu   Testu   Paulu   names   utf-8(   RI   RJ   R   R   RL   R   RM   RN   R   RO   RP   (   R   R<   t   includeRS   t   incfRT   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_add_include"  s    c         C€  sN   d } t  | d ƒ  } | j d ƒ Wd  QX|  j d d d d g d d	 ƒ d  S(
   Ns   Object/Test/Test.yamlRV   s   name: !include nonexistent.txt
R#   RH   s   -ms	   unit testi   s'   Couldn't read include 'nonexistent.txt'(   RI   RJ   R   (   R   R<   RS   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_add_broken_include_fails0  s    c      	   C€  s¯   d } d } t  | d ƒ  } | j d ƒ Wd  QXt d d | g ƒ t d d d d	 g ƒ t j ƒ  C |  j d
 t j j d ƒ k ƒ |  j	 d t j j d ƒ k ƒ Wd  QXd  S(   Ns   Object/Test/IncludeTest.yamls   Object/Test/product.txtRF   s   comment: No include.R#   Rc   RH   s   -ms	   unit testu   commentu   IncludeTestu   product(
   RI   RJ   R   R   RL   R   R   RM   RN   R[   (   R   R<   R{   RS   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_remove_include8  s    c      	   C€  sœ   d } d } t  | d ƒ  } | j d ƒ Wd  QXt d d d d g ƒ t j ƒ  C |  j d	 t j j d
 ƒ k ƒ |  j	 d t j j d
 ƒ k ƒ Wd  QXd  S(   Ns   Object/Test/IncludeTest.yamls   Object/Test/product.txtRF   s   comment: No include.R#   RH   s   -ms	   unit testu   commentu   IncludeTestu   product(
   RI   RJ   R   R   RL   R   R   RM   RN   R[   (   R   R<   R{   RS   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt)   test_remove_include_without_removing_fileC  s    c         C€  sB   d } d } t  d d | g ƒ |  j d d d d g d d	 ƒ d  S(
   Ns   Object/Test/IncludeTest.yamls   Object/Test/product.txtR#   Rc   RH   s   -ms	   unit testi   s<   Couldn't read include 'product.txt' for IncludeTest.product!(   R   R   (   R   R<   R{   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt/   test_remove_file_without_removing_include_failsM  s
    c      
   C€  s   d } d } t  | d ƒ  } | j d ƒ Wd  QXt d d d d g ƒ t j ƒ  7 t j j d	 ƒ } |  j d t	 | d
 j
 d ƒ ƒ Wd  QXd  S(   Ns   Object/Test/IncludeTest.yamls   Object/Test/product.txtRF   t   42R#   RH   s   -ms	   unit testu   IncludeTestu   products   utf-8(   RI   RJ   R   R   RL   R   RM   RN   R   RO   RP   (   R   R<   R{   R|   RT   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_change_includeU  s    c      
   C€  s   d } d } t  | d ƒ  } | j d ƒ Wd  QXt d d d d g ƒ t j ƒ  7 t j j d	 ƒ } |  j d
 t	 | d j
 d ƒ ƒ Wd  QXd  S(   Ns   Object/Test/IncludeTest.yamls   Object/Test/product.txtRF   s!   comment: Now inline.
product: 17
R#   RH   s   -ms	   unit testu   IncludeTestt   17u   products   utf-8(   RI   RJ   R   R   RL   R   RM   RN   R   RO   RP   (   R   R<   R{   RS   RT   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_include_to_inline_  s    c         C€  sÈ   d } d } t  | d ƒ  } | j d ƒ Wd  QXt  | d ƒ  } | j d ƒ Wd  QXt d d | g ƒ t d d d	 d
 g ƒ t j ƒ  7 t j j d ƒ } |  j d t	 | d j
 d ƒ ƒ Wd  QXd  S(   Ns   Object/Test/MergeTest.yamls   Object/Test/existent.txtRF   s:   comment: Now with an include!
test: !include existent.txt
s   The banner should be Blue!R#   RG   RH   s   -ms	   unit testu	   MergeTestu   The banner should be Blue!u   tests   utf-8(   RI   RJ   R   R   RL   R   RM   RN   R   RO   RP   (   R   R<   R{   RS   R|   RT   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_inline_to_includek  s    	c      
   C€  sV  d } t  j | ƒ d } t | d ƒ  } | j d ƒ Wd  QXt d d | g ƒ t d d d d	 g ƒ t j ƒ  W t j j	 d
 ƒ } |  j
 d t | d j d ƒ ƒ |  j
 d | j j ƒ d | d <Wd  QXt d d g ƒ |  j t  j j d ƒ ƒ |  j t  j j d ƒ ƒ |  j t  j j d ƒ ƒ t | ƒ  } |  j
 d | j ƒ  ƒ Wd  QXd  S(   Ns   Fish/s   Fish/Fish.yamlRF   s   parent: Object
comment: Tree
R#   RG   RH   s   -ms	   unit testu   Fishu   Treeu   comments   utf-8u   Objectt   Winet   ups   Object/Fish.yamls   Object/Fish/Fish.yamls   parent: Object
comment: Wine
(   R'   R]   RI   RJ   R   R   RL   R   RM   RN   R   RO   RP   RQ   RR   R   R<   t   existsR[   t   read(   R   Rw   R<   RS   RT   t   inf(    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_top_level_lone_element{  s&     	c         C€  st   d } t  j | ƒ d } t | d ƒ  } | j d ƒ Wd  QXt d d | g ƒ |  j d d d d	 g d
 d ƒ d  S(   Ns   Fish/s   Fish/Fish.yamlRF   s   comment: Tree
R#   RG   RH   s   -ms	   unit testi   sC   'parent' not specified at start of toplevel element Fish/Fish.yaml!(   R'   R]   RI   RJ   R   R   (   R   Rw   R<   RS   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt#   test_top_level_without_parent_fails’  s    c         C€  s
  d } t  j | ƒ d } t | d ƒ  } | j d ƒ Wd  QXd } t | d ƒ  } | j d ƒ Wd  QXt d d | g ƒ t d d	 d
 d g ƒ t j ƒ  f t j j	 d ƒ } |  j
 d t | d j d ƒ ƒ |  j
 d | j j ƒ |  j
 d | j j j ƒ Wd  QXd  S(   Ns   Fish/s   Fish/Fish.yamlRF   s   parent: Object
comment: Tree
s   Fish/Tree.yamls   comment: Pine
R#   RG   RH   s   -ms	   unit testu   Treeu   Pineu   comments   utf-8u   Fishu   Object(   R'   R]   RI   RJ   R   R   RL   R   RM   RN   R   RO   RP   RQ   RR   (   R   Rw   R<   RS   Rx   RT   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_top_level_with_kid  s     c      	   C€  sš   d } t  j | ƒ d } t | d ƒ  } | j d ƒ Wd  QXt d d | g ƒ t d d d d	 g ƒ t j ƒ  ! |  j t j	 t j
 j d
 ƒ Wd  QXd  S(   Ns   Not.Object/s   Not.Object/Whatever.yamlRF   s/   It shouldn't matter that this isn't valid yaml.R#   RG   RH   s   -ms	   unit testu   Whatever(   R'   R]   RI   RJ   R   R   RL   R^   R   R_   RM   RN   (   R   Rw   R<   RS   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt'   test_non_toplevel_yaml_not_under_object®  s    c      	   C€  s‡   d } t  | d ƒ  } | j d ƒ Wd  QXt d d | g ƒ t d d d d g ƒ t j ƒ  ! |  j t j t j j	 d	 ƒ Wd  QXd  S(
   Ns   Whatever.yamlRF   s/   It shouldn't matter that this isn't valid yaml.R#   RG   RH   s   -ms	   unit testu   Whatever(
   RI   RJ   R   R   RL   R^   R   R_   RM   RN   (   R   R<   RS   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_bare_yamlº  s    c         C€  st   d } t  j | ƒ d } t | d ƒ  } | j d ƒ Wd  QXt d d | g ƒ |  j d d d d	 g d
 d ƒ d  S(   Ns   Object/Test/Dir/s   Object/Test/Dir/Something.yamlRF   s   comment: Whatever.
R#   RG   RH   s   -ms	   unit testi   s/   Parent 'Dir' for element 'Something' undefined!(   R'   R]   RI   RJ   R   R   (   R   Rw   R<   RS   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt    test_overly_nested_element_failsÄ  s    c         C€  sE   d } d } t  d d | | g ƒ |  j d d d d g d d	 ƒ d  S(
   Nt   Objectt   PizzaR#   Re   RH   s   -ms	   unit testi   s"   You can't delete the root element.(   R   R   (   R   t   object_fromt	   object_to(    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_moving_root_failsÐ  s
    c         C€  sg   d } d } d } d } t  d d | | g ƒ t  d d | | g ƒ |  j d d d d	 g d
 d ƒ d  S(   NR’   R“   s   Pizza/Object.yamls   Pizza/Pizza.yamlR#   Re   RH   s   -ms	   unit testi   s"   You can't delete the root element.(   R   R   (   R   R”   R•   t   def_fromt   def_to(    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt'   test_moving_root_and_renaming_def_fails×  s    c         C€  s<   d } t  d d | g ƒ |  j d d d d g d d ƒ d  S(	   NR’   R#   Rc   RH   s   -ms	   unit testi   s"   You can't delete the root element.(   R   R   (   R   R<   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_deleting_root_dir_failsá  s    c         C€  s<   d } t  d d | g ƒ |  j d d d d g d d ƒ d  S(	   Ns   Object/Object.yamlR#   Rc   RH   s   -ms	   unit testi   s"   You can't delete the root element.(   R   R   (   R   R<   (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_deleting_root_def_failsç  s    c         C€  st   t  j ƒ    t j j d ƒ } d | _ Wd  QXt d d g ƒ |  j t j	 j
 d ƒ ƒ |  j t j	 j
 d ƒ ƒ d  S(   Nu   Sandboxu   DustboxR#   Rˆ   s   Object/Test/Dustbox.yamls   Object/Test/Sandbox.yaml(   R   RL   R   RM   RN   RR   R   R   R'   R<   R‰   R[   (   R   t   sb(    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   test_rename_from_bazbaseí  s    ('   t   __name__t
   __module__R   RB   RE   RU   RX   RZ   R\   Ra   Rb   Rd   Rj   Rk   Rp   Rr   Rs   Ru   Rv   Ry   R}   R~   R   R€   R   Rƒ   R…   R†   RŒ   R   RŽ   R   R   R‘   R–   R™   Rš   R›   R   (    (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyR   "   sJ   		 										
											
		
							
			
		("   t
   __future__R    t   sysR'   Rž   R<   t   dirnamet   realpatht   __file__t   __requires__t   pkg_resourcest   requiret   unittestt   warningsR   RC   R6   t   paste.scriptR   t   bazbaseR   R   R   R   R   R-   t   argvR   R   t   abspathR>   t   TestCaseR   t   main(    (    (    sO   /afs/athena.mit.edu/user/x/a/xavid/Public/bazki/lib/bazsvn/test/with_bazbase.pyt   <module>   s(   +(	ÿ Ô