Merge lp:~jelmer/launchpad/re-enable-test_import_bzrsvn into lp:launchpad

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: no longer in the source branch.
Merged at revision: 13767
Proposed branch: lp:~jelmer/launchpad/re-enable-test_import_bzrsvn
Merge into: lp:launchpad
Diff against target: 102 lines (+17/-14)
2 files modified
lib/lp/codehosting/codeimport/tests/servers.py (+14/-9)
lib/lp/codehosting/codeimport/tests/test_workermonitor.py (+3/-5)
To merge this branch: bzr merge lp:~jelmer/launchpad/re-enable-test_import_bzrsvn
Reviewer Review Type Date Requested Status
Benji York (community) code Approve
Review via email: mp+72411@code.launchpad.net

Commit message

[r=benji][bug=541526] Re-enable some worker monitor tests that were disabled because of a http client bug in twisted < 10.2.

Description of the change

Re-enable some tests in for the code import worker monitor now that a new Twisted has landed.

These tests were disabled last year because of a bug in the twisted http client which sometimes caused EC2 instances to error. This bug was fixed in twisted 10.2, and Launchpad is now on twisted 11.0. Running these tests half a dozen times locally I also can no longer reproduce the issue.

This also required a fix of the "Connection refused" detection for svn connections, which is slightly different now that subvertpy is used for svn access.

To post a comment you must log in.
Revision history for this message
Benji York (benji) wrote :

This looks good.

Are there any old svn_oo packages we can remove from lp-sourcedeps?

review: Approve (code)
Revision history for this message
Jelmer Vernooij (jelmer) wrote :

> This looks good.
Thanks.

> Are there any old svn_oo packages we can remove from lp-sourcedeps?
Unfortunately cscvs still uses it.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/lp/codehosting/codeimport/tests/servers.py'
--- lib/lp/codehosting/codeimport/tests/servers.py 2011-08-08 19:52:19 +0000
+++ lib/lp/codehosting/codeimport/tests/servers.py 2011-08-22 12:02:18 +0000
@@ -13,6 +13,7 @@
13__metaclass__ = type13__metaclass__ = type
1414
15from cStringIO import StringIO15from cStringIO import StringIO
16import errno
16import os17import os
17import shutil18import shutil
18import signal19import signal
@@ -45,7 +46,7 @@
45 )46 )
46from mercurial.localrepo import localrepository47from mercurial.localrepo import localrepository
47import subvertpy.ra48import subvertpy.ra
48import svn_oo49import subvertpy.repos
4950
50from lp.services.log.logger import BufferLogger51from lp.services.log.logger import BufferLogger
5152
@@ -96,7 +97,7 @@
9697
97 def createRepository(self, path):98 def createRepository(self, path):
98 """Create a Subversion repository at `path`."""99 """Create a Subversion repository at `path`."""
99 svn_oo.Repository.Create(path, BufferLogger())100 subvertpy.repos.create(path)
100101
101 def get_url(self):102 def get_url(self):
102 """Return a URL to the Subversion repository."""103 """Return a URL to the Subversion repository."""
@@ -114,28 +115,32 @@
114 with open(conf_path , 'w') as conf_file:115 with open(conf_path , 'w') as conf_file:
115 conf_file.write('[general]\nanon-access = write\n')116 conf_file.write('[general]\nanon-access = write\n')
116 self._svnserve = subprocess.Popen(117 self._svnserve = subprocess.Popen(
117 ['svnserve', '--daemon', '--foreground', '--root',118 ['svnserve', '--daemon', '--foreground', '--threads',
118 self.repository_path])119 '--root', self.repository_path])
119 delay = 0.1120 delay = 0.1
120 for i in range(10):121 for i in range(10):
121 try:122 try:
122 ra = self._get_ra(self.get_url())123 self._get_ra(self.get_url())
123 except subvertpy.SubversionException, e:124 except OSError, e:
124 if 'Connection refused' in str(e):125 if e.errno == errno.ECONNREFUSED:
125 time.sleep(delay)126 time.sleep(delay)
126 delay *= 1.5127 delay *= 1.5
127 continue128 continue
128 else:129 else:
129 break130 break
130 else:131 else:
132 self._kill_svnserve()
131 raise AssertionError(133 raise AssertionError(
132 "svnserve didn't start accepting connections")134 "svnserve didn't start accepting connections")
133135
136 def _kill_svnserve(self):
137 os.kill(self._svnserve.pid, signal.SIGINT)
138 self._svnserve.communicate()
139
134 def stop_server(self):140 def stop_server(self):
135 super(SubversionServer, self).stop_server()141 super(SubversionServer, self).stop_server()
136 if self._use_svn_serve:142 if self._use_svn_serve:
137 os.kill(self._svnserve.pid, signal.SIGINT)143 self._kill_svnserve()
138 self._svnserve.communicate()
139144
140 def makeBranch(self, branch_name, tree_contents):145 def makeBranch(self, branch_name, tree_contents):
141 """Create a branch on the Subversion server called `branch_name`.146 """Create a branch on the Subversion server called `branch_name`.
142147
=== modified file 'lib/lp/codehosting/codeimport/tests/test_workermonitor.py'
--- lib/lp/codehosting/codeimport/tests/test_workermonitor.py 2011-08-19 03:58:35 +0000
+++ lib/lp/codehosting/codeimport/tests/test_workermonitor.py 2011-08-22 12:02:18 +0000
@@ -747,7 +747,7 @@
747 return result747 return result
748 return deferred.addBoth(save_protocol_object)748 return deferred.addBoth(save_protocol_object)
749749
750 def DISABLEDtest_import_cvs(self):750 def test_import_cvs(self):
751 # Create a CVS CodeImport and import it.751 # Create a CVS CodeImport and import it.
752 job = self.getStartedJobForImport(self.makeCVSCodeImport())752 job = self.getStartedJobForImport(self.makeCVSCodeImport())
753 code_import_id = job.code_import.id753 code_import_id = job.code_import.id
@@ -756,7 +756,7 @@
756 result = self.performImport(job_id)756 result = self.performImport(job_id)
757 return result.addCallback(self.assertImported, code_import_id)757 return result.addCallback(self.assertImported, code_import_id)
758758
759 def DISABLEDtest_import_subversion(self):759 def test_import_subversion(self):
760 # Create a Subversion CodeImport and import it.760 # Create a Subversion CodeImport and import it.
761 job = self.getStartedJobForImport(self.makeSVNCodeImport())761 job = self.getStartedJobForImport(self.makeSVNCodeImport())
762 code_import_id = job.code_import.id762 code_import_id = job.code_import.id
@@ -783,9 +783,7 @@
783 result = self.performImport(job_id)783 result = self.performImport(job_id)
784 return result.addCallback(self.assertImported, code_import_id)784 return result.addCallback(self.assertImported, code_import_id)
785785
786 # XXX 2010-03-24 MichaelHudson, bug=541526: This test fails intermittently786 def test_import_bzrsvn(self):
787 # in EC2.
788 def DISABLED_test_import_bzrsvn(self):
789 # Create a Subversion-via-bzr-svn CodeImport and import it.787 # Create a Subversion-via-bzr-svn CodeImport and import it.
790 job = self.getStartedJobForImport(self.makeBzrSvnCodeImport())788 job = self.getStartedJobForImport(self.makeBzrSvnCodeImport())
791 code_import_id = job.code_import.id789 code_import_id = job.code_import.id