@@ -198,12 +198,32 @@ def test_get_timeout_after_first_frame(self):
198
198
message = self .assembler .get ()
199
199
self .assertEqual (message , "café" )
200
200
201
- def test_get_if_received (self ):
202
- """get returns a text message if it's already received."""
201
+ def test_get_timeout_0_message_already_received (self ):
202
+ """get(timeout=0) returns a message that is already received."""
203
203
self .assembler .put (Frame (OP_TEXT , b"caf\xc3 \xa9 " ))
204
204
message = self .assembler .get (timeout = 0 )
205
205
self .assertEqual (message , "café" )
206
206
207
+ def test_get_timeout_0_message_not_received_yet (self ):
208
+ """get(timeout=0) times out when no message is already received."""
209
+ with self .assertRaises (TimeoutError ):
210
+ self .assembler .get (timeout = 0 )
211
+
212
+ def test_get_timeout_0_fragmented_message_already_received (self ):
213
+ """get(timeout=0) returns a fragmented message that is already received."""
214
+ self .assembler .put (Frame (OP_TEXT , b"ca" , fin = False ))
215
+ self .assembler .put (Frame (OP_CONT , b"f\xc3 " , fin = False ))
216
+ self .assembler .put (Frame (OP_CONT , b"\xa9 " ))
217
+ message = self .assembler .get (timeout = 0 )
218
+ self .assertEqual (message , "café" )
219
+
220
+ def test_get_timeout_0_fragmented_message_partially_received (self ):
221
+ """get(timeout=0) times out when a fragmented message is partially received."""
222
+ self .assembler .put (Frame (OP_TEXT , b"ca" , fin = False ))
223
+ self .assembler .put (Frame (OP_CONT , b"f\xc3 " , fin = False ))
224
+ with self .assertRaises (TimeoutError ):
225
+ self .assembler .get (timeout = 0 )
226
+
207
227
# Test get_iter
208
228
209
229
def test_get_iter_text_message_already_received (self ):
0 commit comments