upgrade all tests; reactor_turn(); remove debug
This commit is contained in:
parent
002773d79f
commit
dd1cc7d520
|
@ -48,8 +48,9 @@ class _Transit:
|
||||||
self.failUnlessEqual(blur_size(1100e6), 1100e6)
|
self.failUnlessEqual(blur_size(1100e6), 1100e6)
|
||||||
self.failUnlessEqual(blur_size(1150e6), 1200e6)
|
self.failUnlessEqual(blur_size(1150e6), 1200e6)
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_register(self):
|
def test_register(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
|
|
||||||
token1 = b"\x00"*32
|
token1 = b"\x00"*32
|
||||||
side1 = b"\x01"*8
|
side1 = b"\x01"*8
|
||||||
|
@ -65,9 +66,10 @@ class _Transit:
|
||||||
# the token should be removed too
|
# the token should be removed too
|
||||||
self.assertEqual(len(self._transit.pending_requests._requests), 0)
|
self.assertEqual(len(self._transit.pending_requests._requests), 0)
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_both_unsided(self):
|
def test_both_unsided(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
p2 = self.new_protocol()
|
p2 = yield self.new_protocol()
|
||||||
|
|
||||||
token1 = b"\x00"*32
|
token1 = b"\x00"*32
|
||||||
p1.send(handshake(token1, side=None))
|
p1.send(handshake(token1, side=None))
|
||||||
|
@ -92,9 +94,10 @@ class _Transit:
|
||||||
p2.disconnect()
|
p2.disconnect()
|
||||||
self.flush()
|
self.flush()
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_sided_unsided(self):
|
def test_sided_unsided(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
p2 = self.new_protocol()
|
p2 = yield self.new_protocol()
|
||||||
|
|
||||||
token1 = b"\x00"*32
|
token1 = b"\x00"*32
|
||||||
side1 = b"\x01"*8
|
side1 = b"\x01"*8
|
||||||
|
@ -121,9 +124,10 @@ class _Transit:
|
||||||
p2.disconnect()
|
p2.disconnect()
|
||||||
self.flush()
|
self.flush()
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_unsided_sided(self):
|
def test_unsided_sided(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
p2 = self.new_protocol()
|
p2 = yield self.new_protocol()
|
||||||
|
|
||||||
token1 = b"\x00"*32
|
token1 = b"\x00"*32
|
||||||
side1 = b"\x01"*8
|
side1 = b"\x01"*8
|
||||||
|
@ -148,9 +152,10 @@ class _Transit:
|
||||||
p1.disconnect()
|
p1.disconnect()
|
||||||
p2.disconnect()
|
p2.disconnect()
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_both_sided(self):
|
def test_both_sided(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
p2 = self.new_protocol()
|
p2 = yield self.new_protocol()
|
||||||
|
|
||||||
token1 = b"\x00"*32
|
token1 = b"\x00"*32
|
||||||
side1 = b"\x01"*8
|
side1 = b"\x01"*8
|
||||||
|
@ -177,10 +182,11 @@ class _Transit:
|
||||||
p1.disconnect()
|
p1.disconnect()
|
||||||
p2.disconnect()
|
p2.disconnect()
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_ignore_same_side(self):
|
def test_ignore_same_side(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
p2 = self.new_protocol()
|
p2 = yield self.new_protocol()
|
||||||
p3 = self.new_protocol()
|
p3 = yield self.new_protocol()
|
||||||
|
|
||||||
token1 = b"\x00"*32
|
token1 = b"\x00"*32
|
||||||
side1 = b"\x01"*8
|
side1 = b"\x01"*8
|
||||||
|
@ -209,8 +215,9 @@ class _Transit:
|
||||||
p2.disconnect()
|
p2.disconnect()
|
||||||
p3.disconnect()
|
p3.disconnect()
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_bad_handshake_old(self):
|
def test_bad_handshake_old(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
|
|
||||||
token1 = b"\x00"*32
|
token1 = b"\x00"*32
|
||||||
p1.send(b"please DELAY " + hexlify(token1) + b"\n")
|
p1.send(b"please DELAY " + hexlify(token1) + b"\n")
|
||||||
|
@ -220,8 +227,9 @@ class _Transit:
|
||||||
self.assertEqual(p1.get_received_data(), exp)
|
self.assertEqual(p1.get_received_data(), exp)
|
||||||
p1.disconnect()
|
p1.disconnect()
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_bad_handshake_old_slow(self):
|
def test_bad_handshake_old_slow(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
|
|
||||||
p1.send(b"please DELAY ")
|
p1.send(b"please DELAY ")
|
||||||
self.flush()
|
self.flush()
|
||||||
|
@ -241,8 +249,9 @@ class _Transit:
|
||||||
|
|
||||||
p1.disconnect()
|
p1.disconnect()
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_bad_handshake_new(self):
|
def test_bad_handshake_new(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
|
|
||||||
token1 = b"\x00"*32
|
token1 = b"\x00"*32
|
||||||
side1 = b"\x01"*8
|
side1 = b"\x01"*8
|
||||||
|
@ -257,8 +266,9 @@ class _Transit:
|
||||||
|
|
||||||
p1.disconnect()
|
p1.disconnect()
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_binary_handshake(self):
|
def test_binary_handshake(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
|
|
||||||
binary_bad_handshake = b"\x00\x01\xe0\x0f\n\xff"
|
binary_bad_handshake = b"\x00\x01\xe0\x0f\n\xff"
|
||||||
# the embedded \n makes the server trigger early, before the full
|
# the embedded \n makes the server trigger early, before the full
|
||||||
|
@ -275,8 +285,9 @@ class _Transit:
|
||||||
|
|
||||||
p1.disconnect()
|
p1.disconnect()
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_impatience_old(self):
|
def test_impatience_old(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
|
|
||||||
token1 = b"\x00"*32
|
token1 = b"\x00"*32
|
||||||
# sending too many bytes is impatience.
|
# sending too many bytes is impatience.
|
||||||
|
@ -288,8 +299,9 @@ class _Transit:
|
||||||
|
|
||||||
p1.disconnect()
|
p1.disconnect()
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_impatience_new(self):
|
def test_impatience_new(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
|
|
||||||
token1 = b"\x00"*32
|
token1 = b"\x00"*32
|
||||||
side1 = b"\x01"*8
|
side1 = b"\x01"*8
|
||||||
|
@ -303,8 +315,9 @@ class _Transit:
|
||||||
|
|
||||||
p1.disconnect()
|
p1.disconnect()
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_impatience_new_slow(self):
|
def test_impatience_new_slow(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
# For full coverage, we need dataReceived to see a particular framing
|
# For full coverage, we need dataReceived to see a particular framing
|
||||||
# of these two pieces of data, and ITCPTransport doesn't have flush()
|
# of these two pieces of data, and ITCPTransport doesn't have flush()
|
||||||
# (which probably wouldn't work anyways). For now, force a 100ms
|
# (which probably wouldn't work anyways). For now, force a 100ms
|
||||||
|
@ -329,15 +342,17 @@ class _Transit:
|
||||||
|
|
||||||
p1.disconnect()
|
p1.disconnect()
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_short_handshake(self):
|
def test_short_handshake(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
# hang up before sending a complete handshake
|
# hang up before sending a complete handshake
|
||||||
p1.send(b"short")
|
p1.send(b"short")
|
||||||
self.flush()
|
self.flush()
|
||||||
p1.disconnect()
|
p1.disconnect()
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_empty_handshake(self):
|
def test_empty_handshake(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
# hang up before sending anything
|
# hang up before sending anything
|
||||||
p1.disconnect()
|
p1.disconnect()
|
||||||
|
|
||||||
|
@ -358,8 +373,9 @@ class Usage(ServerBase, unittest.TestCase):
|
||||||
self._usage = MemoryUsageRecorder()
|
self._usage = MemoryUsageRecorder()
|
||||||
self._transit.usage.add_backend(self._usage)
|
self._transit.usage.add_backend(self._usage)
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_empty(self):
|
def test_empty(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
# hang up before sending anything
|
# hang up before sending anything
|
||||||
p1.disconnect()
|
p1.disconnect()
|
||||||
self.flush()
|
self.flush()
|
||||||
|
@ -380,8 +396,9 @@ class Usage(ServerBase, unittest.TestCase):
|
||||||
self.assertEqual(len(self._usage.events), 1, self._usage)
|
self.assertEqual(len(self._usage.events), 1, self._usage)
|
||||||
self.assertEqual("empty", self._usage.events[0]["mood"])
|
self.assertEqual("empty", self._usage.events[0]["mood"])
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_errory(self):
|
def test_errory(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
|
|
||||||
p1.send(b"this is a very bad handshake\n")
|
p1.send(b"this is a very bad handshake\n")
|
||||||
self.flush()
|
self.flush()
|
||||||
|
@ -390,8 +407,9 @@ class Usage(ServerBase, unittest.TestCase):
|
||||||
self.assertEqual(len(self._usage.events), 1, self._usage)
|
self.assertEqual(len(self._usage.events), 1, self._usage)
|
||||||
self.assertEqual(self._usage.events[0]["mood"], "errory", self._usage)
|
self.assertEqual(self._usage.events[0]["mood"], "errory", self._usage)
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_lonely(self):
|
def test_lonely(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
|
|
||||||
token1 = b"\x00"*32
|
token1 = b"\x00"*32
|
||||||
side1 = b"\x01"*8
|
side1 = b"\x01"*8
|
||||||
|
@ -405,9 +423,10 @@ class Usage(ServerBase, unittest.TestCase):
|
||||||
self.assertEqual(self._usage.events[0]["mood"], "lonely", self._usage)
|
self.assertEqual(self._usage.events[0]["mood"], "lonely", self._usage)
|
||||||
self.assertIdentical(self._usage.events[0]["waiting_time"], None)
|
self.assertIdentical(self._usage.events[0]["waiting_time"], None)
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_one_happy_one_jilted(self):
|
def test_one_happy_one_jilted(self):
|
||||||
p1 = self.new_protocol()
|
p1 = yield self.new_protocol()
|
||||||
p2 = self.new_protocol()
|
p2 = yield self.new_protocol()
|
||||||
|
|
||||||
token1 = b"\x00"*32
|
token1 = b"\x00"*32
|
||||||
side1 = b"\x01"*8
|
side1 = b"\x01"*8
|
||||||
|
@ -432,11 +451,12 @@ class Usage(ServerBase, unittest.TestCase):
|
||||||
self.assertEqual(self._usage.events[0]["total_bytes"], 20)
|
self.assertEqual(self._usage.events[0]["total_bytes"], 20)
|
||||||
self.assertNotIdentical(self._usage.events[0]["waiting_time"], None)
|
self.assertNotIdentical(self._usage.events[0]["waiting_time"], None)
|
||||||
|
|
||||||
|
@inlineCallbacks
|
||||||
def test_redundant(self):
|
def test_redundant(self):
|
||||||
p1a = self.new_protocol()
|
p1a = yield self.new_protocol()
|
||||||
p1b = self.new_protocol()
|
p1b = yield self.new_protocol()
|
||||||
p1c = self.new_protocol()
|
p1c = yield self.new_protocol()
|
||||||
p2 = self.new_protocol()
|
p2 = yield self.new_protocol()
|
||||||
|
|
||||||
token1 = b"\x00"*32
|
token1 = b"\x00"*32
|
||||||
side1 = b"\x01"*8
|
side1 = b"\x01"*8
|
||||||
|
@ -453,7 +473,8 @@ class Usage(ServerBase, unittest.TestCase):
|
||||||
p1c.disconnect()
|
p1c.disconnect()
|
||||||
self.flush()
|
self.flush()
|
||||||
|
|
||||||
print(self._usage.events)
|
for x in self._usage.events:
|
||||||
|
print(x)
|
||||||
self.assertEqual(len(self._usage.events), 1, self._usage)
|
self.assertEqual(len(self._usage.events), 1, self._usage)
|
||||||
self.assertEqual(self._usage.events[0]["mood"], "lonely")
|
self.assertEqual(self._usage.events[0]["mood"], "lonely")
|
||||||
|
|
||||||
|
@ -517,6 +538,5 @@ class UsageWebSockets(Usage):
|
||||||
lambda: server_factory.buildProtocol(IPv4Address("TCP", "127.0.0.1", 31337)),
|
lambda: server_factory.buildProtocol(IPv4Address("TCP", "127.0.0.1", 31337)),
|
||||||
)
|
)
|
||||||
client_proto = yield agent.open("ws://127.0.0.1:4002/", dict())
|
client_proto = yield agent.open("ws://127.0.0.1:4002/", dict())
|
||||||
print("PROTO", client_proto)
|
|
||||||
return client_proto
|
return client_proto
|
||||||
|
|
||||||
|
|
|
@ -240,18 +240,18 @@ class WebSocketTransitConnection(WebSocketServerProtocol):
|
||||||
"""
|
"""
|
||||||
IWebSocketChannel API
|
IWebSocketChannel API
|
||||||
"""
|
"""
|
||||||
print("onConnect: {}".format(request))
|
# print("onConnect: {}".format(request))
|
||||||
# ideally more like self._reactor.seconds() ... but Twisted
|
# ideally more like self._reactor.seconds() ... but Twisted
|
||||||
# doesn't have a good way to get the reactor for a protocol
|
# doesn't have a good way to get the reactor for a protocol
|
||||||
# (besides "use the global one")
|
# (besides "use the global one")
|
||||||
print("protocols: {}".format(request.protocols))
|
# print("protocols: {}".format(request.protocols))
|
||||||
return None#"transit_relay"
|
return None #"transit_relay"
|
||||||
|
|
||||||
def connectionMade(self):
|
def connectionMade(self):
|
||||||
"""
|
"""
|
||||||
IProtocol API
|
IProtocol API
|
||||||
"""
|
"""
|
||||||
print("connectionMade")
|
# print("connectionMade")
|
||||||
super(WebSocketTransitConnection, self).connectionMade()
|
super(WebSocketTransitConnection, self).connectionMade()
|
||||||
self.started_time = time.time()
|
self.started_time = time.time()
|
||||||
self._first_message = True
|
self._first_message = True
|
||||||
|
@ -261,14 +261,14 @@ class WebSocketTransitConnection(WebSocketServerProtocol):
|
||||||
)
|
)
|
||||||
|
|
||||||
def onOpen(self):
|
def onOpen(self):
|
||||||
print("onOpen")
|
# print("onOpen")
|
||||||
self._state.connection_made(self)
|
self._state.connection_made(self)
|
||||||
|
|
||||||
def onMessage(self, payload, isBinary):
|
def onMessage(self, payload, isBinary):
|
||||||
"""
|
"""
|
||||||
We may have a 'handshake' on our hands or we may just have some bytes to relay
|
We may have a 'handshake' on our hands or we may just have some bytes to relay
|
||||||
"""
|
"""
|
||||||
print("onMessage isBinary={}: {}".format(isBinary, payload))
|
# print("onMessage isBinary={}: {}".format(isBinary, payload))
|
||||||
if self._first_message:
|
if self._first_message:
|
||||||
self._first_message = False
|
self._first_message = False
|
||||||
token = None
|
token = None
|
||||||
|
@ -298,6 +298,6 @@ class WebSocketTransitConnection(WebSocketServerProtocol):
|
||||||
"""
|
"""
|
||||||
IWebSocketChannel API
|
IWebSocketChannel API
|
||||||
"""
|
"""
|
||||||
print("onClose", wasClean, code, reason)
|
# print("onClose", wasClean, code, reason)
|
||||||
self._state.connection_lost()
|
self._state.connection_lost()
|
||||||
# XXX "transit finished", etc
|
# XXX "transit finished", etc
|
||||||
|
|
Loading…
Reference in New Issue
Block a user