get rid of placeholder/test code; skip test_short for websockets
This commit is contained in:
parent
816e997b01
commit
a89988af90
|
@ -377,6 +377,7 @@ class Usage(ServerBase, unittest.TestCase):
|
||||||
self.assertEqual(self._usage.events[0]["mood"], "empty", self._usage)
|
self.assertEqual(self._usage.events[0]["mood"], "empty", self._usage)
|
||||||
|
|
||||||
def test_short(self):
|
def test_short(self):
|
||||||
|
# XXX this test only makes sense for TCP
|
||||||
p1 = self.new_protocol()
|
p1 = 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")
|
||||||
|
@ -512,72 +513,15 @@ class UsageWebSockets(Usage):
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
return self._pump.stop()
|
return self._pump.stop()
|
||||||
|
|
||||||
|
def test_short(self):
|
||||||
|
|
||||||
class New(unittest.TestCase):
|
|
||||||
"""
|
"""
|
||||||
A completely fresh approach using:
|
This test essentially just tests the framing of the line-oriented
|
||||||
|
TCP protocol; it doesnt' make sense for the WebSockets case
|
||||||
- no base classes (besides TestCase to match rest)
|
because WS handles frameing: you either sent a 'bad handshake'
|
||||||
- twisted.test.iosim.* (IOPump etc)
|
because it is semantically invalid or no handshake (yet).
|
||||||
- no "faking" any interfaces
|
|
||||||
"""
|
"""
|
||||||
log_requests = False
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
self._pumps = []
|
|
||||||
self._usage = MemoryUsageRecorder()
|
|
||||||
self._setup_relay(blur_usage=60.0 if self.log_requests else None)
|
|
||||||
|
|
||||||
def flush(self):
|
|
||||||
for pump in self._pumps:
|
|
||||||
pump.flush()
|
|
||||||
|
|
||||||
def _setup_relay(self, blur_usage=None, log_file=None, usage_db=None):
|
|
||||||
usage = create_usage_tracker(
|
|
||||||
blur_usage=blur_usage,
|
|
||||||
log_file=log_file,
|
|
||||||
usage_db=usage_db,
|
|
||||||
)
|
|
||||||
self._transit_server = Transit(usage, lambda: 123456789.0)
|
|
||||||
self._transit_server._debug_log = self.log_requests
|
|
||||||
self._transit_server.usage.add_backend(self._usage)
|
|
||||||
|
|
||||||
def new_protocol(self):
|
def new_protocol(self):
|
||||||
if False:
|
|
||||||
return self._new_protocol_tcp()
|
|
||||||
else:
|
|
||||||
return self._new_protocol_ws()
|
|
||||||
|
|
||||||
def _new_protocol_tcp(self):
|
|
||||||
server_factory = ServerFactory()
|
|
||||||
server_factory.protocol = TransitConnection
|
|
||||||
server_factory.transit = self._transit_server
|
|
||||||
server_protocol = server_factory.buildProtocol(('127.0.0.1', 0))
|
|
||||||
|
|
||||||
class ClientProtocol(protocol.Protocol):
|
|
||||||
def send(self, data):
|
|
||||||
self.transport.write(data)
|
|
||||||
|
|
||||||
def disconnect(self):
|
|
||||||
self.transport.loseConnection()
|
|
||||||
|
|
||||||
client_factory = ClientFactory()
|
|
||||||
client_factory.protocol = ClientProtocol
|
|
||||||
client_protocol = client_factory.buildProtocol(('128.0.0.1', 31337))
|
|
||||||
|
|
||||||
pump = iosim.connect(
|
|
||||||
server_protocol,
|
|
||||||
iosim.makeFakeServer(server_protocol),
|
|
||||||
client_protocol,
|
|
||||||
iosim.makeFakeClient(client_protocol),
|
|
||||||
)
|
|
||||||
print("did connectionmade get called yet?")
|
|
||||||
pump.flush()
|
|
||||||
self._pumps.append(pump)
|
|
||||||
return client_protocol
|
|
||||||
|
|
||||||
def _new_protocol_ws(self):
|
|
||||||
ws_factory = WebSocketServerFactory("ws://localhost:4002") # FIXME: url
|
ws_factory = WebSocketServerFactory("ws://localhost:4002") # FIXME: url
|
||||||
ws_factory.protocol = WebSocketTransitConnection
|
ws_factory.protocol = WebSocketTransitConnection
|
||||||
ws_factory.transit = self._transit_server
|
ws_factory.transit = self._transit_server
|
||||||
|
@ -604,49 +548,3 @@ class New(unittest.TestCase):
|
||||||
)
|
)
|
||||||
self._pumps.append(pump)
|
self._pumps.append(pump)
|
||||||
return client_protocol
|
return client_protocol
|
||||||
|
|
||||||
def test_short(self):
|
|
||||||
# XXX this test only makes sense for TCP
|
|
||||||
p1 = self.new_protocol()
|
|
||||||
# hang up before sending a complete handshake
|
|
||||||
p1.send(b"short")
|
|
||||||
p1.disconnect()
|
|
||||||
self.flush()
|
|
||||||
|
|
||||||
# that will log the "empty" usage event
|
|
||||||
self.assertEqual(len(self._usage.events), 1, self._usage)
|
|
||||||
self.assertEqual("empty", self._usage.events[0]["mood"])
|
|
||||||
|
|
||||||
def test_one_happy_one_jilted(self):
|
|
||||||
p1 = self.new_protocol()
|
|
||||||
p2 = self.new_protocol()
|
|
||||||
|
|
||||||
token1 = b"\x00"*32
|
|
||||||
side1 = b"\x01"*8
|
|
||||||
side2 = b"\x02"*8
|
|
||||||
from twisted.internet import reactor
|
|
||||||
|
|
||||||
print("p1 data")
|
|
||||||
p1.send(handshake(token1, side=side1))
|
|
||||||
print("p2 data")
|
|
||||||
p2.send(handshake(token1, side=side2))
|
|
||||||
self.flush()
|
|
||||||
|
|
||||||
print("shouldn't be events yet")
|
|
||||||
self.assertEqual(self._usage.events, []) # no events yet
|
|
||||||
|
|
||||||
print("p1 moar")
|
|
||||||
p1.send(b"\x00" * 13)
|
|
||||||
self.flush()
|
|
||||||
print("p2 moar")
|
|
||||||
p2.send(b"\xff" * 7)
|
|
||||||
self.flush()
|
|
||||||
|
|
||||||
print("p1 lose")
|
|
||||||
p1.disconnect()
|
|
||||||
self.flush()
|
|
||||||
|
|
||||||
self.assertEqual(len(self._usage.events), 1, self._usage)
|
|
||||||
self.assertEqual(self._usage.events[0]["mood"], "happy", self._usage)
|
|
||||||
self.assertEqual(self._usage.events[0]["total_bytes"], 20)
|
|
||||||
self.assertNotIdentical(self._usage.events[0]["waiting_time"], None)
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user