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