Rev 3515: Prepare test framework for pyftpdlib injection. in file:///net/bigmamac/Volumes/home/vila/src/bzr/experimental/more-ftp/
Vincent Ladeuil
v.ladeuil+lp at free.fr
Fri Feb 27 13:26:17 GMT 2009
At file:///net/bigmamac/Volumes/home/vila/src/bzr/experimental/more-ftp/
------------------------------------------------------------
revno: 3515
revision-id: v.ladeuil+lp at free.fr-20090227132613-ez1i849mn2xpt97q
parent: v.ladeuil+lp at free.fr-20090227084436-4j9864kycsieuycj
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: pyftpdlib
timestamp: Fri 2009-02-27 14:26:13 +0100
message:
Prepare test framework for pyftpdlib injection.
* bzrlib/tests/ftp_server/__init__.py:
Provide a single front-end for ftp test servers.
* bzrlib/tests/test_ftp_transport.py:
Use ftp_server import.
* bzrlib/transport/ftp/__init__.py:
(get_test_permutations): Simplified.
* bzrlib/tests/__init__.py:
(FTPServerFeature): Moved to bzrlib/tests/ftp_server/__init__.py.
-------------- next part --------------
=== modified file 'bzrlib/tests/__init__.py'
--- a/bzrlib/tests/__init__.py 2009-02-25 23:52:42 +0000
+++ b/bzrlib/tests/__init__.py 2009-02-27 13:26:13 +0000
@@ -3307,27 +3307,6 @@
return None
-class _FTPServerFeature(Feature):
- """Some tests want an FTP Server, check if one is available.
-
- Right now, the only way this is available is if 'medusa' is installed.
- http://www.amk.ca/python/code/medusa.html
- """
-
- def _probe(self):
- try:
- import bzrlib.tests.ftp_server
- return True
- except ImportError:
- return False
-
- def feature_name(self):
- return 'FTPServer'
-
-
-FTPServerFeature = _FTPServerFeature()
-
-
class _HTTPSServerFeature(Feature):
"""Some tests want an https Server, check if one is available.
=== added directory 'bzrlib/tests/ftp_server'
=== added file 'bzrlib/tests/ftp_server/__init__.py'
--- a/bzrlib/tests/ftp_server/__init__.py 1970-01-01 00:00:00 +0000
+++ b/bzrlib/tests/ftp_server/__init__.py 2009-02-27 13:26:13 +0000
@@ -0,0 +1,73 @@
+# Copyright (C) 2009 Canonical Ltd
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+"""
+Facilities to use ftp test servers.
+"""
+
+from bzrlib import tests
+
+
+try:
+ from bzrlib.tests.ftp_server import medusa_based
+ medusa_available = True
+except ImportError:
+ medusa_available = False
+
+
+class _FTPServerFeature(tests.Feature):
+ """Some tests want an FTP Server, check if one is available.
+
+ Right now, the only way this is available is if 'medusa' is installed.
+ http://www.amk.ca/python/code/medusa.html
+ """
+
+ def _probe(self):
+ return medusa_available
+
+ def feature_name(self):
+ return 'FTPServer'
+
+
+FTPServerFeature = _FTPServerFeature()
+
+
+class UnavailableFTPServer(object):
+ """Dummy ftp test server.
+
+
+ This allows the test suite report the number of tests needing that
+ feature. We raise UnavailableFeature from methods before the test server is
+ being used. Doing so in the setUp method has bad side-effects (tearDown is
+ never called).
+ """
+
+ def setUp(self, vfs_server=None):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def get_url(self):
+ raise tests.UnavailableFeature(FTPServerFeature)
+
+ def get_bogus_url(self):
+ raise tests.UnavailableFeature(FTPServerFeature)
+
+
+if medusa_available:
+ FTPServer = medusa_based.FTPServer
+else:
+ FTPServer = UnavailableFTPServer
=== renamed file 'bzrlib/tests/ftp_server.py' => 'bzrlib/tests/ftp_server/medusa_based.py'
--- a/bzrlib/tests/ftp_server.py 2009-01-17 01:30:58 +0000
+++ b/bzrlib/tests/ftp_server/medusa_based.py 2009-02-27 13:26:13 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Canonical Ltd
+# Copyright (C) 2007, 2008, 2009 Canonical Ltd
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
=== modified file 'bzrlib/tests/test_ftp_transport.py'
--- a/bzrlib/tests/test_ftp_transport.py 2007-11-04 15:29:17 +0000
+++ b/bzrlib/tests/test_ftp_transport.py 2009-02-27 13:26:13 +0000
@@ -24,13 +24,14 @@
ui,
)
+from bzrlib.tests import ftp_server
+
class TestCaseWithFTPServer(tests.TestCaseWithTransport):
- _test_needs_features = [tests.FTPServerFeature]
+ _test_needs_features = [ftp_server.FTPServerFeature]
def setUp(self):
- from bzrlib.tests import ftp_server
self.transport_server = ftp_server.FTPServer
super(TestCaseWithFTPServer, self).setUp()
=== modified file 'bzrlib/transport/ftp/__init__.py'
--- a/bzrlib/transport/ftp/__init__.py 2009-02-27 08:44:36 +0000
+++ b/bzrlib/transport/ftp/__init__.py 2009-02-27 13:26:13 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2005, 2006, 2007 Canonical Ltd
+# Copyright (C) 2005, 2006, 2007, 2008, 2009 Canonical Ltd
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -597,27 +597,5 @@
def get_test_permutations():
"""Return the permutations to be used in testing."""
- from bzrlib import tests
- if tests.FTPServerFeature.available():
- from bzrlib.tests import ftp_server
- return [(FtpTransport, ftp_server.FTPServer)]
- else:
- # Dummy server to have the test suite report the number of tests
- # needing that feature. We raise UnavailableFeature from methods before
- # the test server is being used. Doing so in the setUp method has bad
- # side-effects (tearDown is never called).
- class UnavailableFTPServer(object):
-
- def setUp(self, vfs_server=None):
- pass
-
- def tearDown(self):
- pass
-
- def get_url(self):
- raise tests.UnavailableFeature(tests.FTPServerFeature)
-
- def get_bogus_url(self):
- raise tests.UnavailableFeature(tests.FTPServerFeature)
-
- return [(FtpTransport, UnavailableFTPServer)]
+ from bzrlib.tests import ftp_server
+ return [(FtpTransport, ftp_server.FTPServer)]
More information about the bazaar-commits
mailing list