Rev 5035: Move SmartTCPServer_for_testing and friends to bzrlib.tests.test_server in file:///home/vila/src/bzr/cleanup/test-servers/

Vincent Ladeuil v.ladeuil+lp at free.fr
Tue Feb 9 20:28:26 GMT 2010


At file:///home/vila/src/bzr/cleanup/test-servers/

------------------------------------------------------------
revno: 5035
revision-id: v.ladeuil+lp at free.fr-20100209202826-0u7aj2x51uzm79pv
parent: v.ladeuil+lp at free.fr-20100209173507-0q2pr34po00ln65u
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: test-servers
timestamp: Tue 2010-02-09 21:28:26 +0100
message:
  Move SmartTCPServer_for_testing and friends to bzrlib.tests.test_server
-------------- next part --------------
=== modified file 'bzrlib/smart/server.py'
--- a/bzrlib/smart/server.py	2010-01-07 03:03:01 +0000
+++ b/bzrlib/smart/server.py	2010-02-09 20:28:26 +0000
@@ -236,91 +236,6 @@
 SmartTCPServer.hooks = SmartServerHooks()
 
 
-class SmartTCPServer_for_testing(SmartTCPServer):
-    """Server suitable for use by transport tests.
-
-    This server is backed by the process's cwd.
-    """
-
-    def __init__(self, thread_name_suffix=''):
-        SmartTCPServer.__init__(self, None)
-        self.client_path_extra = None
-        self.thread_name_suffix = thread_name_suffix
-
-    def get_backing_transport(self, backing_transport_server):
-        """Get a backing transport from a server we are decorating."""
-        return transport.get_transport(backing_transport_server.get_url())
-
-    def start_server(self, backing_transport_server=None,
-              client_path_extra='/extra/'):
-        """Set up server for testing.
-
-        :param backing_transport_server: backing server to use.  If not
-            specified, a LocalURLServer at the current working directory will
-            be used.
-        :param client_path_extra: a path segment starting with '/' to append to
-            the root URL for this server.  For instance, a value of '/foo/bar/'
-            will mean the root of the backing transport will be published at a
-            URL like `bzr://127.0.0.1:nnnn/foo/bar/`, rather than
-            `bzr://127.0.0.1:nnnn/`.  Default value is `extra`, so that tests
-            by default will fail unless they do the necessary path translation.
-        """
-        if not client_path_extra.startswith('/'):
-            raise ValueError(client_path_extra)
-        from bzrlib.transport.chroot import ChrootServer
-        if backing_transport_server is None:
-            from bzrlib.transport.local import LocalURLServer
-            backing_transport_server = LocalURLServer()
-        self.chroot_server = ChrootServer(
-            self.get_backing_transport(backing_transport_server))
-        self.chroot_server.start_server()
-        self.backing_transport = transport.get_transport(
-            self.chroot_server.get_url())
-        self.root_client_path = self.client_path_extra = client_path_extra
-        self.start_background_thread(self.thread_name_suffix)
-
-    def stop_server(self):
-        self.stop_background_thread()
-        self.chroot_server.stop_server()
-
-    def get_url(self):
-        url = super(SmartTCPServer_for_testing, self).get_url()
-        return url[:-1] + self.client_path_extra
-
-    def get_bogus_url(self):
-        """Return a URL which will fail to connect"""
-        return 'bzr://127.0.0.1:1/'
-
-
-class ReadonlySmartTCPServer_for_testing(SmartTCPServer_for_testing):
-    """Get a readonly server for testing."""
-
-    def get_backing_transport(self, backing_transport_server):
-        """Get a backing transport from a server we are decorating."""
-        url = 'readonly+' + backing_transport_server.get_url()
-        return transport.get_transport(url)
-
-
-class SmartTCPServer_for_testing_v2_only(SmartTCPServer_for_testing):
-    """A variation of SmartTCPServer_for_testing that limits the client to
-    using RPCs in protocol v2 (i.e. bzr <= 1.5).
-    """
-
-    def get_url(self):
-        url = super(SmartTCPServer_for_testing_v2_only, self).get_url()
-        url = 'bzr-v2://' + url[len('bzr://'):]
-        return url
-
-
-class ReadonlySmartTCPServer_for_testing_v2_only(SmartTCPServer_for_testing_v2_only):
-    """Get a readonly server for testing."""
-
-    def get_backing_transport(self, backing_transport_server):
-        """Get a backing transport from a server we are decorating."""
-        url = 'readonly+' + backing_transport_server.get_url()
-        return transport.get_transport(url)
-
-
 def _local_path_for_transport(transport):
     """Return a local path for transport, if reasonably possible.
     

=== modified file 'bzrlib/tests/__init__.py'
--- a/bzrlib/tests/__init__.py	2010-02-09 17:18:01 +0000
+++ b/bzrlib/tests/__init__.py	2010-02-09 20:28:26 +0000
@@ -1044,7 +1044,8 @@
         if t.base.endswith('/work/'):
             # we have safety net/test root/work
             t = t.clone('../..')
-        elif isinstance(transport_server, server.SmartTCPServer_for_testing):
+        elif isinstance(transport_server,
+                        test_server.SmartTCPServer_for_testing):
             # The smart server adds a path similar to work, which is traversed
             # up from by the client. But the server is chrooted - the actual
             # backing transport is not escaped from, and VFS requests to the

=== modified file 'bzrlib/tests/test_server.py'
--- a/bzrlib/tests/test_server.py	2010-02-09 17:30:43 +0000
+++ b/bzrlib/tests/test_server.py	2010-02-09 20:28:26 +0000
@@ -18,6 +18,7 @@
     transport,
     urlutils,
     )
+from bzrlib.smart import server
 
 
 class TestServer(transport.Server):
@@ -205,3 +206,90 @@
         return unlistable.UnlistableTransportDecorator
 
 
+class SmartTCPServer_for_testing(server.SmartTCPServer):
+    """Server suitable for use by transport tests.
+
+    This server is backed by the process's cwd.
+    """
+
+    def __init__(self, thread_name_suffix=''):
+        super(SmartTCPServer_for_testing, self).__init__(None)
+        self.client_path_extra = None
+        self.thread_name_suffix = thread_name_suffix
+
+    def get_backing_transport(self, backing_transport_server):
+        """Get a backing transport from a server we are decorating."""
+        return transport.get_transport(backing_transport_server.get_url())
+
+    def start_server(self, backing_transport_server=None,
+              client_path_extra='/extra/'):
+        """Set up server for testing.
+
+        :param backing_transport_server: backing server to use.  If not
+            specified, a LocalURLServer at the current working directory will
+            be used.
+        :param client_path_extra: a path segment starting with '/' to append to
+            the root URL for this server.  For instance, a value of '/foo/bar/'
+            will mean the root of the backing transport will be published at a
+            URL like `bzr://127.0.0.1:nnnn/foo/bar/`, rather than
+            `bzr://127.0.0.1:nnnn/`.  Default value is `extra`, so that tests
+            by default will fail unless they do the necessary path translation.
+        """
+        if not client_path_extra.startswith('/'):
+            raise ValueError(client_path_extra)
+        from bzrlib.transport.chroot import ChrootServer
+        if backing_transport_server is None:
+            backing_transport_server = LocalURLServer()
+        self.chroot_server = ChrootServer(
+            self.get_backing_transport(backing_transport_server))
+        self.chroot_server.start_server()
+        self.backing_transport = transport.get_transport(
+            self.chroot_server.get_url())
+        self.root_client_path = self.client_path_extra = client_path_extra
+        self.start_background_thread(self.thread_name_suffix)
+
+    def stop_server(self):
+        self.stop_background_thread()
+        self.chroot_server.stop_server()
+
+    def get_url(self):
+        url = super(SmartTCPServer_for_testing, self).get_url()
+        return url[:-1] + self.client_path_extra
+
+    def get_bogus_url(self):
+        """Return a URL which will fail to connect"""
+        return 'bzr://127.0.0.1:1/'
+
+
+class ReadonlySmartTCPServer_for_testing(SmartTCPServer_for_testing):
+    """Get a readonly server for testing."""
+
+    def get_backing_transport(self, backing_transport_server):
+        """Get a backing transport from a server we are decorating."""
+        url = 'readonly+' + backing_transport_server.get_url()
+        return transport.get_transport(url)
+
+
+class SmartTCPServer_for_testing_v2_only(SmartTCPServer_for_testing):
+    """A variation of SmartTCPServer_for_testing that limits the client to
+    using RPCs in protocol v2 (i.e. bzr <= 1.5).
+    """
+
+    def get_url(self):
+        url = super(SmartTCPServer_for_testing_v2_only, self).get_url()
+        url = 'bzr-v2://' + url[len('bzr://'):]
+        return url
+
+
+class ReadonlySmartTCPServer_for_testing_v2_only(
+    SmartTCPServer_for_testing_v2_only):
+    """Get a readonly server for testing."""
+
+    def get_backing_transport(self, backing_transport_server):
+        """Get a backing transport from a server we are decorating."""
+        url = 'readonly+' + backing_transport_server.get_url()
+        return transport.get_transport(url)
+
+
+
+

=== modified file 'bzrlib/transport/remote.py'
--- a/bzrlib/transport/remote.py	2009-03-24 01:53:42 +0000
+++ b/bzrlib/transport/remote.py	2010-02-09 20:28:26 +0000
@@ -601,5 +601,5 @@
     """Return (transport, server) permutations for testing."""
     ### We may need a little more test framework support to construct an
     ### appropriate RemoteTransport in the future.
-    from bzrlib.smart import server
-    return [(RemoteTCPTransport, server.SmartTCPServer_for_testing)]
+    from bzrlib.tests import test_server
+    return [(RemoteTCPTransport, test_server.SmartTCPServer_for_testing)]



More information about the bazaar-commits mailing list