changeset 7679:7f8fb30891e5

tests: create clone_url in VcsTest as repo_url_param - it will soon create more than just a URL when it will be used for ssh testing
author Mads Kiilerich <mads@kiilerich.com>
date Thu, 17 Jan 2019 04:25:52 +0100
parents 731a8466fb11
children 1660b2c71e03
files kallithea/tests/other/test_vcs_operations.py
diffstat 1 files changed, 24 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/tests/other/test_vcs_operations.py	Wed Jan 16 01:56:37 2019 +0100
+++ b/kallithea/tests/other/test_vcs_operations.py	Thu Jan 17 04:25:52 2019 +0100
@@ -60,10 +60,16 @@
 class HgVcsTest(object):
     repo_type = 'hg'
     repo_name = HG_REPO
+    @staticmethod
+    def repo_url_param(webserver, repo_name, **kwargs):
+        return webserver.repo_url(repo_name, **kwargs)
 
 class GitVcsTest(object):
     repo_type = 'git'
     repo_name = GIT_REPO
+    @staticmethod
+    def repo_url_param(webserver, repo_name, **kwargs):
+        return webserver.repo_url(repo_name, **kwargs)
 
 class HgHttpVcsTest(HgVcsTest, HttpVcsTest):
     pass
@@ -220,7 +226,7 @@
 
     @parametrize_vcs_test
     def test_clone_repo_by_admin(self, webserver, vt):
-        clone_url = webserver.repo_url(vt.repo_name)
+        clone_url = vt.repo_url_param(webserver, vt.repo_name)
         stdout, stderr = Command(TESTS_TMP_PATH).execute(vt.repo_type, 'clone', clone_url, _get_tmp_dir())
 
         if vt.repo_type == 'git':
@@ -235,7 +241,7 @@
 
     @parametrize_vcs_test_http
     def test_clone_wrong_credentials(self, webserver, vt):
-        clone_url = webserver.repo_url(vt.repo_name, password='bad!')
+        clone_url = vt.repo_url_param(webserver, vt.repo_name, password='bad!')
         stdout, stderr = Command(TESTS_TMP_PATH).execute(vt.repo_type, 'clone', clone_url, _get_tmp_dir(), ignoreReturnCode=True)
         if vt.repo_type == 'git':
             assert 'fatal: Authentication failed' in stderr
@@ -243,18 +249,18 @@
             assert 'abort: authorization failed' in stderr
 
     def test_clone_git_dir_as_hg(self, webserver):
-        clone_url = webserver.repo_url(GIT_REPO)
+        clone_url = HgHttpVcsTest.repo_url_param(webserver, GIT_REPO)
         stdout, stderr = Command(TESTS_TMP_PATH).execute('hg clone', clone_url, _get_tmp_dir(), ignoreReturnCode=True)
         assert 'HTTP Error 404: Not Found' in stderr
 
     def test_clone_hg_repo_as_git(self, webserver):
-        clone_url = webserver.repo_url(HG_REPO)
+        clone_url = GitHttpVcsTest.repo_url_param(webserver, HG_REPO)
         stdout, stderr = Command(TESTS_TMP_PATH).execute('git clone', clone_url, _get_tmp_dir(), ignoreReturnCode=True)
         assert 'not found' in stderr
 
     @parametrize_vcs_test
     def test_clone_non_existing_path(self, webserver, vt):
-        clone_url = webserver.repo_url('trololo')
+        clone_url = vt.repo_url_param(webserver, 'trololo')
         stdout, stderr = Command(TESTS_TMP_PATH).execute(vt.repo_type, 'clone', clone_url, _get_tmp_dir(), ignoreReturnCode=True)
         if vt.repo_type == 'git':
             assert 'not found' in stderr
@@ -290,7 +296,7 @@
 
         # Create local clone of the empty server repo
         local_clone_dir = _get_tmp_dir()
-        clone_url = webserver.repo_url(repo_name)
+        clone_url = GitHttpVcsTest.repo_url_param(webserver, repo_name)
         stdout, stderr = Command(TESTS_TMP_PATH).execute('git clone', clone_url, local_clone_dir, ignoreReturnCode=True)
 
         # Make 3 commits and push to the empty server repo.
@@ -316,10 +322,10 @@
     @parametrize_vcs_test
     def test_push_new_file(self, webserver, testfork, vt):
         dest_dir = _get_tmp_dir()
-        clone_url = webserver.repo_url(vt.repo_name)
+        clone_url = vt.repo_url_param(webserver, vt.repo_name)
         stdout, stderr = Command(TESTS_TMP_PATH).execute(vt.repo_type, 'clone', clone_url, dest_dir)
 
-        clone_url = webserver.repo_url(testfork[vt.repo_type])
+        clone_url = vt.repo_url_param(webserver, testfork[vt.repo_type])
         stdout, stderr = _add_files_and_push(webserver, vt, dest_dir, clone_url=clone_url)
 
         if vt.repo_type == 'git':
@@ -342,7 +348,7 @@
         Session().commit()
 
         dest_dir = _get_tmp_dir()
-        clone_url = webserver.repo_url(testfork[vt.repo_type])
+        clone_url = vt.repo_url_param(webserver, testfork[vt.repo_type])
         stdout, stderr = Command(TESTS_TMP_PATH).execute(vt.repo_type, 'clone', clone_url, dest_dir)
 
         stdout, stderr = _add_files_and_push(webserver, vt, dest_dir, files_no=1, clone_url=clone_url)
@@ -356,7 +362,7 @@
     @parametrize_vcs_test_http
     def test_push_wrong_credentials(self, webserver, vt):
         dest_dir = _get_tmp_dir()
-        clone_url = webserver.repo_url(vt.repo_name)
+        clone_url = vt.repo_url_param(webserver, vt.repo_name)
         stdout, stderr = Command(TESTS_TMP_PATH).execute(vt.repo_type, 'clone', clone_url, dest_dir)
 
         clone_url = webserver.repo_url(vt.repo_name, username='bad', password='name')
@@ -371,7 +377,7 @@
     @parametrize_vcs_test
     def test_push_with_readonly_credentials(self, webserver, vt):
         dest_dir = _get_tmp_dir()
-        clone_url = webserver.repo_url(vt.repo_name, username=TEST_USER_REGULAR_LOGIN, password=TEST_USER_REGULAR_PASS)
+        clone_url = vt.repo_url_param(webserver, vt.repo_name, username=TEST_USER_REGULAR_LOGIN, password=TEST_USER_REGULAR_PASS)
         stdout, stderr = Command(TESTS_TMP_PATH).execute(vt.repo_type, 'clone', clone_url, dest_dir)
 
         stdout, stderr = _add_files_and_push(webserver, vt, dest_dir, ignoreReturnCode=True, clone_url=clone_url)
@@ -384,7 +390,7 @@
     @parametrize_vcs_test
     def test_push_back_to_wrong_url(self, webserver, vt):
         dest_dir = _get_tmp_dir()
-        clone_url = webserver.repo_url(vt.repo_name)
+        clone_url = vt.repo_url_param(webserver, vt.repo_name)
         stdout, stderr = Command(TESTS_TMP_PATH).execute(vt.repo_type, 'clone', clone_url, dest_dir)
 
         stdout, stderr = _add_files_and_push(
@@ -406,7 +412,7 @@
             Session().commit()
             # IP permissions are cached, need to wait for the cache in the server process to expire
             time.sleep(1.5)
-            clone_url = webserver.repo_url(vt.repo_name)
+            clone_url = vt.repo_url_param(webserver, vt.repo_name)
             stdout, stderr = Command(TESTS_TMP_PATH).execute(vt.repo_type, 'clone', clone_url, _get_tmp_dir(), ignoreReturnCode=True)
             if vt.repo_type == 'git':
                 # The message apparently changed in Git 1.8.3, so match it loosely.
@@ -421,7 +427,7 @@
             # IP permissions are cached, need to wait for the cache in the server process to expire
             time.sleep(1.5)
 
-        clone_url = webserver.repo_url(vt.repo_name)
+        clone_url = vt.repo_url_param(webserver, vt.repo_name)
         stdout, stderr = Command(TESTS_TMP_PATH).execute(vt.repo_type, 'clone', clone_url, _get_tmp_dir())
 
         if vt.repo_type == 'git':
@@ -441,7 +447,7 @@
         Ui.create_or_update_hook('preoutgoing.testhook', 'python:kallithea.tests.fixture.failing_test_hook')
         Session().commit()
         # clone repo
-        clone_url = webserver.repo_url(testfork[vt.repo_type], username=TEST_USER_ADMIN_LOGIN, password=TEST_USER_ADMIN_PASS)
+        clone_url = vt.repo_url_param(webserver, testfork[vt.repo_type], username=TEST_USER_ADMIN_LOGIN, password=TEST_USER_ADMIN_PASS)
         dest_dir = _get_tmp_dir()
         stdout, stderr = Command(TESTS_TMP_PATH) \
             .execute(vt.repo_type, 'clone', clone_url, dest_dir, ignoreReturnCode=True)
@@ -456,7 +462,7 @@
         Ui.create_or_update_hook('prechangegroup.testhook', 'python:kallithea.tests.fixture.failing_test_hook')
         Session().commit()
         # clone repo
-        clone_url = webserver.repo_url(testfork[vt.repo_type], username=TEST_USER_ADMIN_LOGIN, password=TEST_USER_ADMIN_PASS)
+        clone_url = vt.repo_url_param(webserver, testfork[vt.repo_type], username=TEST_USER_ADMIN_LOGIN, password=TEST_USER_ADMIN_PASS)
         dest_dir = _get_tmp_dir()
         stdout, stderr = Command(TESTS_TMP_PATH).execute(vt.repo_type, 'clone', clone_url, dest_dir)
 
@@ -498,9 +504,9 @@
 
     def test_add_submodule_git(self, webserver, testfork):
         dest_dir = _get_tmp_dir()
-        clone_url = webserver.repo_url(GIT_REPO)
+        clone_url = GitHttpVcsTest.repo_url_param(webserver, GIT_REPO)
 
-        fork_url = webserver.repo_url(testfork['git'])
+        fork_url = GitHttpVcsTest.repo_url_param(webserver, testfork['git'])
 
         # add submodule
         stdout, stderr = Command(TESTS_TMP_PATH).execute('git clone', fork_url, dest_dir)