[#7381] update code importing for GC hosted urls
diff --git a/ForgeImporters/forgeimporters/google/code.py b/ForgeImporters/forgeimporters/google/code.py
index 13d388d..6a3f43c 100644
--- a/ForgeImporters/forgeimporters/google/code.py
+++ b/ForgeImporters/forgeimporters/google/code.py
@@ -42,17 +42,22 @@
)
from forgeimporters.google import GoogleCodeProjectExtractor
from forgeimporters.google import GoogleCodeProjectNameValidator
-
+from forgeimporters.google import split_project_name
REPO_URLS = {
- 'svn': 'http://{0}.googlecode.com/svn/',
- 'git': 'https://code.google.com/p/{0}/',
- 'hg': 'https://code.google.com/p/{0}/',
+ 'svn': 'http://{project_name}.googlecode.com/svn/',
+ 'svn-hosted': 'http://svn.codespot.com{hosted_domain_prefix}/{project_name}/',
+ 'git': 'https://code.google.com{hosted_domain_prefix}/p/{project_name}/',
+ 'hg': 'https://code.google.com{hosted_domain_prefix}/p/{project_name}/',
}
def get_repo_url(project_name, type_):
- return REPO_URLS[type_].format(project_name)
+ hosted_domain_prefix, project_name = split_project_name(project_name)
+ if hosted_domain_prefix and type_ == 'svn':
+ type_ = 'svn-hosted'
+ return REPO_URLS[type_].format(project_name=project_name,
+ hosted_domain_prefix=hosted_domain_prefix)
class GoogleRepoImportForm(fe.schema.Schema):
diff --git a/ForgeImporters/forgeimporters/google/tests/test_code.py b/ForgeImporters/forgeimporters/google/tests/test_code.py
index b52ec21..1b6cacc 100644
--- a/ForgeImporters/forgeimporters/google/tests/test_code.py
+++ b/ForgeImporters/forgeimporters/google/tests/test_code.py
@@ -48,6 +48,18 @@
r = get_repo_url('projname', 'hg')
self.assertEqual(r, 'https://code.google.com/p/projname/')
+ def test_svn_hosted(self):
+ r = get_repo_url('a/eclipselabs.org/p/projname', 'svn')
+ self.assertEqual(r, 'http://svn.codespot.com/a/eclipselabs.org/projname/')
+
+ def test_git_hosted(self):
+ r = get_repo_url('a/eclipselabs.org/p/projname', 'git')
+ self.assertEqual(r, 'https://code.google.com/a/eclipselabs.org/p/projname/')
+
+ def test_hg_hosted(self):
+ r = get_repo_url('a/eclipselabs.org/p/projname', 'hg')
+ self.assertEqual(r, 'https://code.google.com/a/eclipselabs.org/p/projname/')
+
class TestGoogleRepoImporter(TestCase):