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