summaryrefslogtreecommitdiff
path: root/morphlib
diff options
context:
space:
mode:
authorDaniel Silverstone (br7vm) <daniel.silverstone@codethink.co.uk>2013-05-28 16:10:17 +0000
committerDaniel Silverstone (br7vm) <daniel.silverstone@codethink.co.uk>2013-05-28 16:10:17 +0000
commitad28474a0334e60e9036050c625b4a2341f33462 (patch)
treefd6b214cae54c24e539505587cd4f01a33150544 /morphlib
parent5df056c4c06f2a74ed4d5ee965c5bcf237295c58 (diff)
downloadmorph-ad28474a0334e60e9036050c625b4a2341f33462.tar.gz
REPOALIAS: Update repo alias to support dashes and to be more strict.
Now, repo aliases must meet [a-z][a-z0-9-]+ rather than just [a-z0-9]+
Diffstat (limited to 'morphlib')
-rw-r--r--morphlib/repoaliasresolver.py4
-rw-r--r--morphlib/repoaliasresolver_tests.py9
2 files changed, 11 insertions, 2 deletions
diff --git a/morphlib/repoaliasresolver.py b/morphlib/repoaliasresolver.py
index 653eba90..5ade0639 100644
--- a/morphlib/repoaliasresolver.py
+++ b/morphlib/repoaliasresolver.py
@@ -45,7 +45,7 @@ class RepoAliasResolver(object):
def __init__(self, aliases):
self.aliases = {}
- alias_pattern = (r'^(?P<prefix>[a-z0-9]+)'
+ alias_pattern = (r'^(?P<prefix>[a-z][a-z0-9-]+)'
r'=(?P<pullpat>[^#]+)#(?P<pushpat>[^#]+)$')
for alias in aliases:
logging.debug('expanding: alias="%s"' % alias)
@@ -109,7 +109,7 @@ class RepoAliasResolver(object):
'''
- pat = r'^(?P<prefix>[a-z0-9]+):(?P<rest>.*)$'
+ pat = r'^(?P<prefix>[a-z][a-z0-9-]+):(?P<rest>.*)$'
m = re.match(pat, reponame)
if m:
return m.group('prefix'), m.group('rest')
diff --git a/morphlib/repoaliasresolver_tests.py b/morphlib/repoaliasresolver_tests.py
index 8e1827d7..c4ea16b0 100644
--- a/morphlib/repoaliasresolver_tests.py
+++ b/morphlib/repoaliasresolver_tests.py
@@ -33,6 +33,9 @@ class RepoAliasResolverTests(unittest.TestCase):
('append='
'git://append/#'
'git@append/'),
+ ('footrove-01='
+ 'git://footrove.machine/%s#'
+ 'ssh://git@footrove.machine/%s.git'),
]
self.resolver = morphlib.repoaliasresolver.RepoAliasResolver(
self.aliases)
@@ -66,6 +69,12 @@ class RepoAliasResolverTests(unittest.TestCase):
url = self.resolver.push_url('baserock:bar')
self.assertEqual(url, 'git@gitorious.org:baserock/bar.git')
+ def test_resolve_urls_for_alias_with_dash(self):
+ url = self.resolver.pull_url('footrove-01:baz')
+ self.assertEqual(url, 'git://footrove.machine/baz')
+ url = self.resolver.push_url('footrove-01:baz')
+ self.assertEqual(url, 'ssh://git@footrove.machine/baz.git')
+
def test_resolve_urls_for_unknown_alias(self):
self.assertEqual(self.resolver.pull_url('unknown:foo'), 'unknown:foo')
self.assertEqual(self.resolver.push_url('unknown:foo'), 'unknown:foo')