@@ -571,6 +571,163 @@ def test_process_committed_queue_requires_write_lock(self):
571571 )
572572
573573
574+ def test_context_manager (self ):
575+ with wc .Context () as ctx :
576+ self .assertIsNotNone (ctx )
577+ result = ctx .locked (os .path .abspath ("checkout" ))
578+ self .assertIsInstance (result , tuple )
579+
580+ def test_close (self ):
581+ ctx = wc .Context ()
582+ ctx .close ()
583+
584+
585+ class AdmObjTests (SubversionTestCase ):
586+ def setUp (self ):
587+ super ().setUp ()
588+ self .repos_url = self .make_client ("repos" , "checkout" )
589+ self ._adm = None
590+
591+ def tearDown (self ):
592+ if self ._adm is not None :
593+ self ._adm .close ()
594+ self ._adm = None
595+ super ().tearDown ()
596+
597+ def _open_adm (self , ** kwargs ):
598+ self ._adm = wc .Adm (** kwargs )
599+ return self ._adm
600+
601+ def test_open (self ):
602+ adm = self ._open_adm (path = os .path .abspath ("checkout" ), write_lock = False )
603+ self .assertIsNotNone (adm )
604+
605+ def test_open_positional (self ):
606+ self ._adm = wc .Adm (None , os .path .abspath ("checkout" ))
607+ self .assertIsNotNone (self ._adm )
608+
609+ def test_open_no_path (self ):
610+ self .assertRaises (TypeError , wc .Adm )
611+
612+ def test_open_none_path (self ):
613+ self .assertRaises (TypeError , wc .Adm , None , None )
614+
615+ def test_access_path (self ):
616+ adm = self ._open_adm (path = os .path .abspath ("checkout" ), write_lock = False )
617+ self .assertEqual (
618+ os .path .normpath (os .path .abspath ("checkout" )),
619+ os .path .normpath (adm .access_path ()),
620+ )
621+
622+ def test_is_locked_read (self ):
623+ adm = self ._open_adm (path = os .path .abspath ("checkout" ), write_lock = False )
624+ self .assertFalse (adm .is_locked ())
625+
626+ def test_is_locked_write (self ):
627+ adm = self ._open_adm (
628+ path = os .path .abspath ("checkout" ), write_lock = True , depth = - 1
629+ )
630+ self .assertTrue (adm .is_locked ())
631+
632+ def test_context_manager (self ):
633+ with wc .Adm (path = os .path .abspath ("checkout" ), write_lock = False ) as adm :
634+ self .assertIsNotNone (adm )
635+ self .assertEqual (
636+ os .path .normpath (os .path .abspath ("checkout" )),
637+ os .path .normpath (adm .access_path ()),
638+ )
639+
640+ def test_is_wc_root (self ):
641+ adm = self ._open_adm (path = os .path .abspath ("checkout" ), write_lock = False )
642+ self .assertTrue (adm .is_wc_root (os .path .abspath ("checkout" )))
643+
644+ def test_prop_set_get (self ):
645+ self .build_tree ({"checkout/proptest" : b"content" })
646+ self .client_add ("checkout/proptest" )
647+ self .client_commit ("checkout" , message = "add proptest" )
648+ adm = self ._open_adm (
649+ path = os .path .abspath ("checkout" ), write_lock = True , depth = - 1
650+ )
651+ adm .prop_set ("svn:eol-style" , b"native" , os .path .abspath ("checkout/proptest" ))
652+ val = adm .prop_get ("svn:eol-style" , os .path .abspath ("checkout/proptest" ))
653+ self .assertEqual (b"native" , val )
654+
655+ def test_prop_get_nonexistent (self ):
656+ self .build_tree ({"checkout/propnone" : b"content" })
657+ self .client_add ("checkout/propnone" )
658+ self .client_commit ("checkout" , message = "add propnone" )
659+ adm = self ._open_adm (path = os .path .abspath ("checkout" ), write_lock = False )
660+ val = adm .prop_get ("svn:nonexistent" , os .path .abspath ("checkout/propnone" ))
661+ self .assertIsNone (val )
662+
663+ def test_text_modified (self ):
664+ self .build_tree ({"checkout/txtmod" : b"content" })
665+ self .client_add ("checkout/txtmod" )
666+ self .client_commit ("checkout" , message = "add txtmod" )
667+ adm = self ._open_adm (
668+ path = os .path .abspath ("checkout" ), write_lock = False , depth = - 1
669+ )
670+ self .assertFalse (adm .text_modified (os .path .abspath ("checkout/txtmod" ), False ))
671+ self .build_tree ({"checkout/txtmod" : b"changed" })
672+ self .assertTrue (adm .text_modified (os .path .abspath ("checkout/txtmod" ), False ))
673+
674+ def test_props_modified (self ):
675+ self .build_tree ({"checkout/pmod" : b"content" })
676+ self .client_add ("checkout/pmod" )
677+ self .client_commit ("checkout" , message = "add pmod" )
678+ adm = self ._open_adm (
679+ path = os .path .abspath ("checkout" ), write_lock = False , depth = - 1
680+ )
681+ self .assertFalse (adm .props_modified (os .path .abspath ("checkout/pmod" )))
682+
683+ def test_conflicted (self ):
684+ self .build_tree ({"checkout/conflfile" : b"content" })
685+ self .client_add ("checkout/conflfile" )
686+ self .client_commit ("checkout" , message = "add conflfile" )
687+ adm = self ._open_adm (
688+ path = os .path .abspath ("checkout" ), write_lock = False , depth = - 1
689+ )
690+ result = adm .conflicted (os .path .abspath ("checkout/conflfile" ))
691+ self .assertIsInstance (result , tuple )
692+ self .assertEqual (3 , len (result ))
693+ self .assertEqual ((False , False , False ), result )
694+
695+ def test_has_binary_prop (self ):
696+ self .build_tree ({"checkout/binfile" : b"content" })
697+ self .client_add ("checkout/binfile" )
698+ self .client_commit ("checkout" , message = "add binfile" )
699+ adm = self ._open_adm (
700+ path = os .path .abspath ("checkout" ), write_lock = False , depth = - 1
701+ )
702+ self .assertFalse (adm .has_binary_prop (os .path .abspath ("checkout/binfile" )))
703+
704+ def test_add (self ):
705+ self .build_tree ({"checkout/addfile" : b"content" })
706+ adm = self ._open_adm (
707+ path = os .path .abspath ("checkout" ), write_lock = True , depth = - 1
708+ )
709+ adm .add (os .path .abspath ("checkout/addfile" ))
710+
711+ def test_delete (self ):
712+ self .build_tree ({"checkout/delfile" : b"content" })
713+ self .client_add ("checkout/delfile" )
714+ self .client_commit ("checkout" , message = "add delfile" )
715+ adm = self ._open_adm (
716+ path = os .path .abspath ("checkout" ), write_lock = True , depth = - 1
717+ )
718+ adm .delete (os .path .abspath ("checkout/delfile" ))
719+
720+ def test_delete_keep_local (self ):
721+ self .build_tree ({"checkout/delkeep" : b"content" })
722+ self .client_add ("checkout/delkeep" )
723+ self .client_commit ("checkout" , message = "add delkeep" )
724+ adm = self ._open_adm (
725+ path = os .path .abspath ("checkout" ), write_lock = True , depth = - 1
726+ )
727+ adm .delete (os .path .abspath ("checkout/delkeep" ), keep_local = True )
728+ self .assertTrue (os .path .exists ("checkout/delkeep" ))
729+
730+
574731class LockTests (TestCase ):
575732 def test_create_lock (self ):
576733 lock = wc .Lock ()
0 commit comments