File tree Expand file tree Collapse file tree 3 files changed +46
-0
lines changed
Expand file tree Collapse file tree 3 files changed +46
-0
lines changed Original file line number Diff line number Diff line change 1+ Allow rewriting repo and owner
Original file line number Diff line number Diff line change @@ -38,6 +38,12 @@ def valid(self):
3838 ##
3939 # Alias properties
4040 ##
41+ def _update_url (self ):
42+ protocol = getattr (self , "protocol" , None )
43+ if protocol :
44+ self .url = self .format (protocol )
45+ self ._parsed ["url" ] = self .format (protocol )
46+
4147 @property
4248 def host (self ):
4349 return self .domain
@@ -50,6 +56,21 @@ def resource(self):
5056 def name (self ):
5157 return self .repo
5258
59+ @name .setter
60+ def name (self , new_name ):
61+ self .repo = new_name
62+ self ._parsed ["repo" ] = new_name
63+ self ._update_url ()
64+
65+ @property
66+ def owner (self ):
67+ return self ._parsed ["owner" ]
68+
69+ @owner .setter
70+ def owner (self , new_owner ):
71+ self ._parsed ["owner" ] = new_owner
72+ self ._update_url ()
73+
5374 @property
5475 def user (self ):
5576 if hasattr (self , "_user" ):
Original file line number Diff line number Diff line change 7171)
7272
7373
74+ REWRITE_COMPONENTS = {
75+ "name" : {
76+ "source" : "git@github.com:Org/Repo.git" ,
77+ "value" : "New-repo" ,
78+ "expected" : "git@github.com:Org/New-repo.git" ,
79+ },
80+ "owner" : {
81+ "source" : "git@github.com:Org/Repo.git" ,
82+ "value" : "New-Org" ,
83+ "expected" : "git@github.com:New-Org/Repo.git" ,
84+ },
85+ }
86+
87+
7488class UrlRewriteTestCase (unittest .TestCase ):
7589 def _test_rewrite (self , source , protocol , expected ):
7690 parsed = parse (source )
@@ -81,6 +95,16 @@ def test_rewrites(self):
8195 for data in REWRITE_URLS :
8296 self ._test_rewrite (* data )
8397
98+ def _test_rewrite_components (self , field , data ):
99+ parsed = parse (data ["source" ])
100+ setattr (parsed , field , data ["value" ])
101+ self .assertTrue (parsed .valid , "Invalid Url: %s" % data ["source" ])
102+ return self .assertEqual (parsed .url , data ["expected" ])
103+
104+ def test_rewrite_components (self ):
105+ for field , data in REWRITE_COMPONENTS .items ():
106+ self ._test_rewrite_components (field , data )
107+
84108
85109# Test Suite
86110suite = unittest .TestLoader ().loadTestsFromTestCase (UrlRewriteTestCase )
You can’t perform that action at this time.
0 commit comments