Rev 6160: Clean up the code a bit by using a create_pipe_context helper. in http://bazaar.launchpad.net/~jameinel/bzr/drop-idle-connections-824797
John Arbash Meinel
john at arbash-meinel.com
Thu Sep 15 12:29:22 UTC 2011
At http://bazaar.launchpad.net/~jameinel/bzr/drop-idle-connections-824797
------------------------------------------------------------
revno: 6160
revision-id: john at arbash-meinel.com-20110915122908-35rh2aqzk672uxtq
parent: john at arbash-meinel.com-20110915122038-t2ie67bper9mvoy5
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: drop-idle-connections-824797
timestamp: Thu 2011-09-15 14:29:08 +0200
message:
Clean up the code a bit by using a create_pipe_context helper.
-------------- next part --------------
=== modified file 'bzrlib/tests/test_smart_transport.py'
--- a/bzrlib/tests/test_smart_transport.py 2011-09-15 12:20:38 +0000
+++ b/bzrlib/tests/test_smart_transport.py 2011-09-15 12:29:08 +0000
@@ -635,9 +635,22 @@
def create_pipe_medium(self, to_server, from_server, transport,
timeout=4.0):
+ """Create a new SmartServerPipeStreamMedium."""
return medium.SmartServerPipeStreamMedium(to_server, from_server,
transport, timeout=timeout)
+ def create_pipe_context(self, to_server_bytes, transport):
+ """Create a SmartServerSocketStreamMedium.
+
+ This differes from create_pipe_medium, in that we initialize the
+ request that is sent to the server, and return the StringIO class that
+ will hold the response.
+ """
+ to_server = StringIO(to_server_bytes)
+ from_server = StringIO()
+ m = self.create_pipe_medium(to_server, from_server, transport)
+ return m, from_server
+
def create_stream_medium(self, server_sock, transport, timeout=4.0):
return medium.SmartServerSocketStreamMedium(server_sock, transport,
timeout=timeout)
@@ -658,9 +671,8 @@
def test_response_to_canned_get(self):
transport = memory.MemoryTransport('memory:///')
transport.put_bytes('testfile', 'contents\nof\nfile\n')
- to_server = StringIO('get\001./testfile\n')
- from_server = StringIO()
- server = self.create_pipe_medium(to_server, from_server, transport)
+ server, from_server = self.create_pipe_context('get\001./testfile\n',
+ transport)
smart_protocol = protocol.SmartServerRequestProtocolOne(transport,
from_server.write)
server._serve_one_request(smart_protocol)
@@ -677,9 +689,8 @@
# VFS requests use filenames, not raw UTF-8.
hpss_path = urlutils.escape(utf8_filename)
transport.put_bytes(utf8_filename, 'contents\nof\nfile\n')
- to_server = StringIO('get\001' + hpss_path + '\n')
- from_server = StringIO()
- server = self.create_pipe_medium(to_server, from_server, transport)
+ server, from_server = self.create_pipe_context(
+ 'get\001' + hpss_path + '\n', transport)
smart_protocol = protocol.SmartServerRequestProtocolOne(transport,
from_server.write)
server._serve_one_request(smart_protocol)
@@ -691,10 +702,8 @@
def test_pipe_like_stream_with_bulk_data(self):
sample_request_bytes = 'command\n9\nbulk datadone\n'
- to_server = StringIO(sample_request_bytes)
- from_server = StringIO()
- server = self.create_pipe_medium(
- to_server, from_server, None)
+ server, from_server = self.create_pipe_context(
+ sample_request_bytes, None)
sample_protocol = SampleRequest(expected_bytes=sample_request_bytes)
server._serve_one_request(sample_protocol)
self.assertEqual('', from_server.getvalue())
@@ -714,9 +723,7 @@
self.assertFalse(server.finished)
def test_pipe_like_stream_shutdown_detection(self):
- to_server = StringIO('')
- from_server = StringIO()
- server = self.create_pipe_medium(to_server, from_server, None)
+ server, _ = self.create_pipe_context('', None)
server._serve_one_request(SampleRequest('x'))
self.assertTrue(server.finished)
@@ -771,8 +778,7 @@
to_server_w = os.fdopen(to_server_w, 'w', 0)
from_server_r = os.fdopen(from_server_r, 'r', 0)
from_server = os.fdopen(from_server, 'w', 0)
- server = self.create_pipe_medium(
- to_server, from_server, None)
+ server = self.create_pipe_medium(to_server, from_server, None)
# Like test_socket_stream_incomplete_request, write an incomplete
# request (that does not end in '\n') and build a protocol from it.
to_server_w.write(incomplete_request_bytes)
@@ -793,10 +799,8 @@
# _serve_one_request should still process both of them as if they had
# been received separately.
sample_request_bytes = 'command\n'
- to_server = StringIO(sample_request_bytes * 2)
- from_server = StringIO()
- server = self.create_pipe_medium(
- to_server, from_server, None)
+ server, from_server = self.create_pipe_context(
+ sample_request_bytes * 2, None)
first_protocol = SampleRequest(expected_bytes=sample_request_bytes)
server._serve_one_request(first_protocol)
self.assertEqual(0, first_protocol.next_read_size())
@@ -861,10 +865,7 @@
self.assertTrue(server.finished)
def test_pipe_like_stream_keyboard_interrupt_handling(self):
- to_server = StringIO('')
- from_server = StringIO()
- server = self.create_pipe_medium(
- to_server, from_server, None)
+ server, from_server = self.create_pipe_context('', None)
fake_protocol = ErrorRaisingProtocol(KeyboardInterrupt('boom'))
self.assertRaises(
KeyboardInterrupt, server._serve_one_request, fake_protocol)
@@ -880,10 +881,7 @@
self.assertEqual('', client_sock.recv(1))
def build_protocol_pipe_like(self, bytes):
- to_server = StringIO(bytes)
- from_server = StringIO()
- server = self.create_pipe_medium(
- to_server, from_server, None)
+ server, _ = self.create_pipe_context(bytes, None)
return server._build_protocol()
def build_protocol_socket(self, bytes):
@@ -1020,10 +1018,7 @@
self.assertEqual('', data)
def test_pipe_wait_for_bytes_no_fileno(self):
- to_server = StringIO('')
- from_server = StringIO()
- server = self.create_pipe_medium(
- to_server, from_server, None)
+ server, _ = self.create_pipe_context('', None)
# Our file doesn't support polling, so we should always just return
# 'you have data to consume.
self.assertFalse(server._wait_for_bytes_with_timeout(0.01))
More information about the bazaar-commits
mailing list