Rev 6182: merge-up drop-idle in http://bazaar.launchpad.net/~jameinel/bzr/2.5-soft-hangup-795025
John Arbash Meinel
john at arbash-meinel.com
Fri Sep 23 12:42:24 UTC 2011
At http://bazaar.launchpad.net/~jameinel/bzr/2.5-soft-hangup-795025
------------------------------------------------------------
revno: 6182 [merge]
revision-id: john at arbash-meinel.com-20110923124214-8mwfb09hs208qrr4
parent: john at arbash-meinel.com-20110923114351-i4cn4z6x8y1228yr
parent: john at arbash-meinel.com-20110923124021-0hve5zjdw81ix72c
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: 2.5-soft-hangup-795025
timestamp: Fri 2011-09-23 14:42:14 +0200
message:
merge-up drop-idle
modified:
bzrlib/tests/test_smart_transport.py test_ssh_transport.py-20060608202016-c25gvf1ob7ypbus6-2
-------------- next part --------------
=== modified file 'bzrlib/tests/test_smart_transport.py'
--- a/bzrlib/tests/test_smart_transport.py 2011-09-22 14:35:58 +0000
+++ b/bzrlib/tests/test_smart_transport.py 2011-09-23 12:42:14 +0000
@@ -56,6 +56,21 @@
)
+def portable_socket_pair():
+ """Return a pair of TCP sockets connected to each other.
+
+ Unlike socket.socketpair, this should work on Windows.
+ """
+ listen_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ listen_sock.bind(('127.0.0.1', 0))
+ listen_sock.listen(1)
+ client_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ client_sock.connect(listen_sock.getsockname())
+ server_sock, addr = listen_sock.accept()
+ listen_sock.close()
+ return server_sock, client_sock
+
+
class StringIOSSHVendor(object):
"""A SSH vendor that uses StringIO to buffer writes and answer reads."""
@@ -620,20 +635,6 @@
super(TestSmartServerStreamMedium, self).setUp()
self.overrideEnv('BZR_NO_SMART_VFS', None)
- def portable_socket_pair(self):
- """Return a pair of TCP sockets connected to each other.
-
- Unlike socket.socketpair, this should work on Windows.
- """
- listen_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- listen_sock.bind(('127.0.0.1', 0))
- listen_sock.listen(1)
- client_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- client_sock.connect(listen_sock.getsockname())
- server_sock, addr = listen_sock.accept()
- listen_sock.close()
- return server_sock, client_sock
-
def create_pipe_medium(self, to_server, from_server, transport,
timeout=4.0):
"""Create a new SmartServerPipeStreamMedium."""
@@ -652,20 +653,20 @@
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):
+ def create_socket_medium(self, server_sock, transport, timeout=4.0):
"""Initialize a new medium.SmartServerSocketStreamMedium."""
return medium.SmartServerSocketStreamMedium(server_sock, transport,
timeout=timeout)
- def create_stream_context(self, transport, timeout=4.0):
+ def create_socket_context(self, transport, timeout=4.0):
"""Create a new SmartServerSocketStreamMedium with default context.
This will call portable_socket_pair and pass the server side to
- create_stream_medium along with transport.
+ create_socket_medium along with transport.
It then returns the client_sock and the server.
"""
- server_sock, client_sock = self.portable_socket_pair()
- server = self.create_stream_medium(server_sock, transport,
+ server_sock, client_sock = portable_socket_pair()
+ server = self.create_socket_medium(server_sock, transport,
timeout=timeout)
return server, client_sock
@@ -724,7 +725,7 @@
def test_socket_stream_with_bulk_data(self):
sample_request_bytes = 'command\n9\nbulk datadone\n'
- server, client_sock = self.create_stream_context(None)
+ server, client_sock = self.create_socket_context(None)
sample_protocol = SampleRequest(expected_bytes=sample_request_bytes)
client_sock.sendall(sample_request_bytes)
server._serve_one_request(sample_protocol)
@@ -739,7 +740,7 @@
self.assertTrue(server.finished)
def test_socket_stream_shutdown_detection(self):
- server, client_sock = self.create_stream_context(None)
+ server, client_sock = self.create_socket_context(None)
client_sock.close()
server._serve_one_request(SampleRequest('x'))
self.assertTrue(server.finished)
@@ -757,7 +758,7 @@
rest_of_request_bytes = 'lo\n'
expected_response = (
protocol.RESPONSE_VERSION_TWO + 'success\nok\x012\n')
- server, client_sock = self.create_stream_context(None)
+ server, client_sock = self.create_socket_context(None)
client_sock.sendall(incomplete_request_bytes)
server_protocol = server._build_protocol()
client_sock.sendall(rest_of_request_bytes)
@@ -828,7 +829,7 @@
# _serve_one_request should still process both of them as if they had
# been received separately.
sample_request_bytes = 'command\n'
- server, client_sock = self.create_stream_context(None)
+ server, client_sock = self.create_socket_context(None)
first_protocol = SampleRequest(expected_bytes=sample_request_bytes)
# Put two whole requests on the wire.
client_sock.sendall(sample_request_bytes * 2)
@@ -863,7 +864,7 @@
self.assertTrue(server.finished)
def test_socket_stream_error_handling(self):
- server, client_sock = self.create_stream_context(None)
+ server, client_sock = self.create_socket_context(None)
fake_protocol = ErrorRaisingProtocol(Exception('boom'))
server._serve_one_request(fake_protocol)
# recv should not block, because the other end of the socket has been
@@ -879,7 +880,7 @@
self.assertEqual('', from_server.getvalue())
def test_socket_stream_keyboard_interrupt_handling(self):
- server, client_sock = self.create_stream_context(None)
+ server, client_sock = self.create_socket_context(None)
fake_protocol = ErrorRaisingProtocol(KeyboardInterrupt('boom'))
self.assertRaises(
KeyboardInterrupt, server._serve_one_request, fake_protocol)
@@ -891,7 +892,7 @@
return server._build_protocol()
def build_protocol_socket(self, bytes):
- server, client_sock = self.create_stream_context(None)
+ server, client_sock = self.create_socket_context(None)
client_sock.sendall(bytes)
client_sock.close()
return server._build_protocol()
@@ -940,12 +941,12 @@
def test__build_protocol_returns_if_stopping(self):
# _build_protocol should notice that we are stopping, and return
# without waiting for bytes from the client.
- server, client_sock = self.create_stream_context(None)
+ server, client_sock = self.create_socket_context(None)
server._stop_gracefully()
self.assertIs(None, server._build_protocol())
def test_socket_set_timeout(self):
- server, _ = self.create_stream_context(None, timeout=1.23)
+ server, _ = self.create_socket_context(None, timeout=1.23)
self.assertEqual(1.23, server._client_timeout)
def test_pipe_set_timeout(self):
@@ -954,7 +955,7 @@
self.assertEqual(1.23, server._client_timeout)
def test_socket_wait_for_bytes_with_timeout_with_data(self):
- server, client_sock = self.create_stream_context(None)
+ server, client_sock = self.create_socket_context(None)
client_sock.sendall('data\n')
# This should not block or consume any actual content
self.assertFalse(server._wait_for_bytes_with_timeout(0.1))
@@ -962,7 +963,7 @@
self.assertEqual('data\n', data)
def test_socket_wait_for_bytes_with_timeout_no_data(self):
- server, client_sock = self.create_stream_context(None)
+ server, client_sock = self.create_socket_context(None)
# This should timeout quickly, reporting that there wasn't any data
self.assertRaises(errors.ConnectionTimeout,
server._wait_for_bytes_with_timeout, 0.01)
@@ -971,7 +972,7 @@
self.assertEqual('', data)
def test_socket_wait_for_bytes_with_timeout_closed(self):
- server, client_sock = self.create_stream_context(None)
+ server, client_sock = self.create_socket_context(None)
# With the socket closed, this should return right away.
# It seems select.select() returns that you *can* read on the socket,
# even though it closed. Presumably as a way to tell it is closed?
@@ -983,7 +984,7 @@
self.assertEqual('', data)
def test_socket_wait_for_bytes_with_shutdown(self):
- server, client_sock = self.create_stream_context(None)
+ server, client_sock = self.create_socket_context(None)
t = time.time()
# Override the _timer functionality, so that time never increments,
# this way, we can be sure we stopped because of the flag, and not
@@ -994,7 +995,7 @@
server._wait_for_bytes_with_timeout(1.0)
def test_socket_serve_timeout_closes_socket(self):
- server, client_sock = self.create_stream_context(None, timeout=0.1)
+ server, client_sock = self.create_socket_context(None, timeout=0.1)
# This should timeout quickly, and then close the connection so that
# client_sock recv doesn't block.
server.serve()
More information about the bazaar-commits
mailing list