You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by he...@apache.org on 2015/04/01 23:10:56 UTC

[39/45] allura git commit: [#7837] ticket:738 Fix repo initialization in tests

[#7837] ticket:738 Fix repo initialization in tests

The problem with previous configuration is in the following:

1. `with_tool` installs app, which creates Repository model
2. test setup in most places creates *another* Repository model in a context of
   app installed by `with_tool`. This makes two Repositories linked to one app.
3. `app.repo` returns first Repository from the DB for app, which can be any of
   those two, depending on test run

That's why some tests, that depend on `app.repo` have failed occasionally (e.g.
`test_webhook_payload` for both git and svn)

Fixed all the tests I found to avoid this problems in the future. It took me
awhile to figure out what's wrong.


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/02879be3
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/02879be3
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/02879be3

Branch: refs/heads/hss/7072
Commit: 02879be348331df7a01bb3f4d0f680c8ce1b8735
Parents: b361bdf
Author: Igor Bondarenko <je...@gmail.com>
Authored: Wed Mar 4 16:31:03 2015 +0000
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Mon Mar 30 19:20:42 2015 +0000

----------------------------------------------------------------------
 .../forgegit/tests/model/test_repository.py     | 46 ++++---------
 .../forgesvn/tests/model/test_repository.py     | 68 ++++++++------------
 2 files changed, 41 insertions(+), 73 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/02879be3/ForgeGit/forgegit/tests/model/test_repository.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/tests/model/test_repository.py b/ForgeGit/forgegit/tests/model/test_repository.py
index 84dd40d..3ffb2a2 100644
--- a/ForgeGit/forgegit/tests/model/test_repository.py
+++ b/ForgeGit/forgegit/tests/model/test_repository.py
@@ -62,12 +62,6 @@ class TestNewGit(unittest.TestCase):
         c.app.repo.fs_path = repo_dir
         c.app.repo.name = 'testgit.git'
         self.repo = c.app.repo
-        # self.repo = GM.Repository(
-        #     name='testgit.git',
-        #     fs_path=repo_dir,
-        #     url_path = '/test/',
-        #     tool = 'git',
-        #     status = 'creating')
         self.repo.refresh()
         self.rev = self.repo.commit('master')
         ThreadLocalORMSession.flush_all()
@@ -141,12 +135,9 @@ class TestGitRepo(unittest.TestCase, RepoImplTestBase):
         h.set_context('test', 'src-git', neighborhood='Projects')
         repo_dir = pkg_resources.resource_filename(
             'forgegit', 'tests/data')
-        self.repo = GM.Repository(
-            name='testgit.git',
-            fs_path=repo_dir,
-            url_path='/test/',
-            tool='git',
-            status='creating')
+        c.app.repo.fs_path = repo_dir
+        c.app.repo.name = 'testgit.git'
+        self.repo = c.app.repo
         self.repo.refresh()
         ThreadLocalORMSession.flush_all()
         ThreadLocalORMSession.close_all()
@@ -526,10 +517,10 @@ class TestGitRepo(unittest.TestCase, RepoImplTestBase):
     def test_clone_url(self):
         assert_equal(
             self.repo.clone_url('rw', 'nobody'),
-            'ssh://nobody@localhost:8022/scm-repo/test/testgit')
+            'ssh://nobody@localhost:8022/scm-repo/p/test/testgit')
         assert_equal(
             self.repo.clone_url('https', 'nobody'),
-            'https://nobody@localhost:8022/scm-repo/test/testgit')
+            'https://nobody@localhost:8022/scm-repo/p/test/testgit')
         with h.push_config(self.repo.app.config.options, external_checkout_url='https://$username@foo.com/'):
             assert_equal(
                 self.repo.clone_url('https', 'user'),
@@ -760,12 +751,9 @@ class TestGitCommit(unittest.TestCase):
         h.set_context('test', 'src-git', neighborhood='Projects')
         repo_dir = pkg_resources.resource_filename(
             'forgegit', 'tests/data')
-        self.repo = GM.Repository(
-            name='testgit.git',
-            fs_path=repo_dir,
-            url_path='/test/',
-            tool='git',
-            status='creating')
+        c.app.repo.fs_path = repo_dir
+        c.app.repo.name = 'testgit.git'
+        self.repo = c.app.repo
         self.repo.refresh()
         self.rev = self.repo.commit('HEAD')
         ThreadLocalORMSession.flush_all()
@@ -839,12 +827,9 @@ class TestGitHtmlView(unittest.TestCase):
         h.set_context('test', 'src-git', neighborhood='Projects')
         repo_dir = pkg_resources.resource_filename(
             'forgegit', 'tests/data')
-        self.repo = GM.Repository(
-            name='testmime.git',
-            fs_path=repo_dir,
-            url_path='/test/',
-            tool='git',
-            status='creating')
+        c.app.repo.fs_path = repo_dir
+        c.app.repo.name = 'testmime.git'
+        self.repo = c.app.repo
         self.repo.refresh()
         self.rev = self.repo.commit('HEAD')
         ThreadLocalORMSession.flush_all()
@@ -873,12 +858,9 @@ class TestGitRename(unittest.TestCase):
         h.set_context('test', 'src-git', neighborhood='Projects')
         repo_dir = pkg_resources.resource_filename(
             'forgegit', 'tests/data')
-        self.repo = GM.Repository(
-            name='testrename.git',
-            fs_path=repo_dir,
-            url_path='/test/',
-            tool='git',
-            status='creating')
+        c.app.repo.fs_path = repo_dir
+        c.app.repo.name = 'testrename.git'
+        self.repo = c.app.repo
         self.repo.refresh()
         self.rev = self.repo.commit('HEAD')
         ThreadLocalORMSession.flush_all()

http://git-wip-us.apache.org/repos/asf/allura/blob/02879be3/ForgeSVN/forgesvn/tests/model/test_repository.py
----------------------------------------------------------------------
diff --git a/ForgeSVN/forgesvn/tests/model/test_repository.py b/ForgeSVN/forgesvn/tests/model/test_repository.py
index c3a392a..8fa8314 100644
--- a/ForgeSVN/forgesvn/tests/model/test_repository.py
+++ b/ForgeSVN/forgesvn/tests/model/test_repository.py
@@ -61,12 +61,9 @@ class TestNewRepo(unittest.TestCase):
         h.set_context('test', 'src', neighborhood='Projects')
         repo_dir = pkg_resources.resource_filename(
             'forgesvn', 'tests/data/')
-        self.repo = SM.Repository(
-            name='testsvn',
-            fs_path=repo_dir,
-            url_path='/test/',
-            tool='svn',
-            status='creating')
+        c.app.repo.name = 'testsvn'
+        c.app.repo.fs_path = repo_dir
+        self.repo = c.app.repo
         self.repo.refresh()
         self.rev = self.repo.commit('HEAD')
         ThreadLocalORMSession.flush_all()
@@ -118,25 +115,23 @@ class TestSVNRepo(unittest.TestCase, RepoImplTestBase):
     @with_tool('test', 'SVN', 'svn-tags', 'SVN with tags')
     def setup_with_tools(self):
         setup_global_objects()
-        h.set_context('test', 'src', neighborhood='Projects')
         repo_dir = pkg_resources.resource_filename(
             'forgesvn', 'tests/data/')
-        self.repo = SM.Repository(
-            name='testsvn',
-            fs_path=repo_dir,
-            url_path='/test/',
-            tool='svn',
-            status='creating')
-        self.repo.refresh()
-        self.svn_tags = SM.Repository(
-            name='testsvn-trunk-tags-branches',
-            fs_path=repo_dir,
-            url_path='/test/',
-            tool='svn',
-            status='creating')
-        self.svn_tags.refresh()
-        ThreadLocalORMSession.flush_all()
-        ThreadLocalORMSession.close_all()
+        with h.push_context('test', 'src', neighborhood='Projects'):
+            c.app.repo.name = 'testsvn'
+            c.app.repo.fs_path = repo_dir
+            self.repo = c.app.repo
+            self.repo.refresh()
+            ThreadLocalORMSession.flush_all()
+            ThreadLocalORMSession.close_all()
+        with h.push_context('test', 'svn-tags', neighborhood='Projects'):
+            c.app.repo.name = 'testsvn-trunk-tags-branches'
+            c.app.repo.fs_path = repo_dir
+            self.svn_tags = c.app.repo
+            self.svn_tags.refresh()
+            ThreadLocalORMSession.flush_all()
+            ThreadLocalORMSession.close_all()
+        h.set_context('test', 'src', neighborhood='Projects')
 
     def test_init(self):
         repo = SM.Repository(
@@ -640,12 +635,9 @@ class TestSVNRev(unittest.TestCase):
         h.set_context('test', 'src', neighborhood='Projects')
         repo_dir = pkg_resources.resource_filename(
             'forgesvn', 'tests/data/')
-        self.repo = SM.Repository(
-            name='testsvn',
-            fs_path=repo_dir,
-            url_path='/test/',
-            tool='svn',
-            status='creating')
+        c.app.repo.name = 'testsvn'
+        c.app.repo.fs_path = repo_dir
+        self.repo = c.app.repo
         self.repo.refresh()
         self.rev = self.repo.commit(1)
         ThreadLocalORMSession.flush_all()
@@ -1145,12 +1137,9 @@ class TestRename(unittest.TestCase):
         h.set_context('test', 'src', neighborhood='Projects')
         repo_dir = pkg_resources.resource_filename(
             'forgesvn', 'tests/data/')
-        self.repo = SM.Repository(
-            name='testsvn-rename',
-            fs_path=repo_dir,
-            url_path='/test/',
-            tool='svn',
-            status='creating')
+        c.app.repo.name = 'testsvn-rename'
+        c.app.repo.fs_path = repo_dir
+        self.repo = c.app.repo
         self.repo.refresh()
         self.rev = self.repo.commit('HEAD')
         ThreadLocalORMSession.flush_all()
@@ -1185,12 +1174,9 @@ class TestDirectRepoAccess(object):
         h.set_context('test', 'src', neighborhood='Projects')
         repo_dir = pkg_resources.resource_filename(
             'forgesvn', 'tests/data/')
-        self.repo = SM.Repository(
-            name='testsvn',
-            fs_path=repo_dir,
-            url_path='/test/',
-            tool='svn',
-            status='creating')
+        c.app.repo.name = 'testsvn'
+        c.app.repo.fs_path = repo_dir
+        self.repo = c.app.repo
         self.repo.refresh()
         self.rev = self.repo.commit('HEAD')
         ThreadLocalORMSession.flush_all()