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