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
1=== modified file 'lib/lp/codehosting/codeimport/tests/servers.py'
2--- lib/lp/codehosting/codeimport/tests/servers.py 2011-08-08 19:52:19 +0000
3+++ lib/lp/codehosting/codeimport/tests/servers.py 2011-08-22 12:02:18 +0000
4@@ -13,6 +13,7 @@
5 __metaclass__ = type
6
7 from cStringIO import StringIO
8+import errno
9 import os
10 import shutil
11 import signal
12@@ -45,7 +46,7 @@
13 )
14 from mercurial.localrepo import localrepository
15 import subvertpy.ra
16-import svn_oo
17+import subvertpy.repos
18
19 from lp.services.log.logger import BufferLogger
20
21@@ -96,7 +97,7 @@
22
23 def createRepository(self, path):
24 """Create a Subversion repository at `path`."""
25- svn_oo.Repository.Create(path, BufferLogger())
26+ subvertpy.repos.create(path)
27
28 def get_url(self):
29 """Return a URL to the Subversion repository."""
30@@ -114,28 +115,32 @@
31 with open(conf_path , 'w') as conf_file:
32 conf_file.write('[general]\nanon-access = write\n')
33 self._svnserve = subprocess.Popen(
34- ['svnserve', '--daemon', '--foreground', '--root',
35- self.repository_path])
36+ ['svnserve', '--daemon', '--foreground', '--threads',
37+ '--root', self.repository_path])
38 delay = 0.1
39 for i in range(10):
40 try:
41- ra = self._get_ra(self.get_url())
42- except subvertpy.SubversionException, e:
43- if 'Connection refused' in str(e):
44+ self._get_ra(self.get_url())
45+ except OSError, e:
46+ if e.errno == errno.ECONNREFUSED:
47 time.sleep(delay)
48 delay *= 1.5
49 continue
50 else:
51 break
52 else:
53+ self._kill_svnserve()
54 raise AssertionError(
55 "svnserve didn't start accepting connections")
56
57+ def _kill_svnserve(self):
58+ os.kill(self._svnserve.pid, signal.SIGINT)
59+ self._svnserve.communicate()
60+
61 def stop_server(self):
62 super(SubversionServer, self).stop_server()
63 if self._use_svn_serve:
64- os.kill(self._svnserve.pid, signal.SIGINT)
65- self._svnserve.communicate()
66+ self._kill_svnserve()
67
68 def makeBranch(self, branch_name, tree_contents):
69 """Create a branch on the Subversion server called `branch_name`.
70
71=== modified file 'lib/lp/codehosting/codeimport/tests/test_workermonitor.py'
72--- lib/lp/codehosting/codeimport/tests/test_workermonitor.py 2011-08-19 03:58:35 +0000
73+++ lib/lp/codehosting/codeimport/tests/test_workermonitor.py 2011-08-22 12:02:18 +0000
74@@ -747,7 +747,7 @@
75 return result
76 return deferred.addBoth(save_protocol_object)
77
78- def DISABLEDtest_import_cvs(self):
79+ def test_import_cvs(self):
80 # Create a CVS CodeImport and import it.
81 job = self.getStartedJobForImport(self.makeCVSCodeImport())
82 code_import_id = job.code_import.id
83@@ -756,7 +756,7 @@
84 result = self.performImport(job_id)
85 return result.addCallback(self.assertImported, code_import_id)
86
87- def DISABLEDtest_import_subversion(self):
88+ def test_import_subversion(self):
89 # Create a Subversion CodeImport and import it.
90 job = self.getStartedJobForImport(self.makeSVNCodeImport())
91 code_import_id = job.code_import.id
92@@ -783,9 +783,7 @@
93 result = self.performImport(job_id)
94 return result.addCallback(self.assertImported, code_import_id)
95
96- # XXX 2010-03-24 MichaelHudson, bug=541526: This test fails intermittently
97- # in EC2.
98- def DISABLED_test_import_bzrsvn(self):
99+ def test_import_bzrsvn(self):
100 # Create a Subversion-via-bzr-svn CodeImport and import it.
101 job = self.getStartedJobForImport(self.makeBzrSvnCodeImport())
102 code_import_id = job.code_import.id