@@ -287,18 +287,56 @@ def test_publish_updating_batch_size():
287287 assert batch .size > 0 # I do not always trust protobuf.
288288
289289
290- def test_publish_not_will_accept ():
290+ def test_publish ():
291+ batch = create_batch ()
292+ message = types .PubsubMessage ()
293+ future = batch .publish (message )
294+
295+ assert len (batch .messages ) == 1
296+ assert batch ._futures == [future ]
297+
298+
299+ def test_publish_max_messages_zero ():
291300 batch = create_batch (topic = "topic_foo" , max_messages = 0 )
292- base_request_size = types .PublishRequest (topic = "topic_foo" ).ByteSize ()
293301
294- # Publish the message.
295302 message = types .PubsubMessage (data = b"foobarbaz" )
303+ with mock .patch .object (batch , "commit" ) as commit :
304+ future = batch .publish (message )
305+
306+ assert future is not None
307+ assert len (batch .messages ) == 1
308+ assert batch ._futures == [future ]
309+ commit .assert_called_once ()
310+
311+
312+ def test_publish_max_messages_enforced ():
313+ batch = create_batch (topic = "topic_foo" , max_messages = 1 )
314+
315+ message = types .PubsubMessage (data = b"foobarbaz" )
316+ message2 = types .PubsubMessage (data = b"foobarbaz2" )
317+
318+ future = batch .publish (message )
319+ future2 = batch .publish (message2 )
320+
321+ assert future is not None
322+ assert future2 is None
323+ assert len (batch .messages ) == 1
324+ assert len (batch ._futures ) == 1
325+
326+
327+ def test_publish_max_bytes_enforced ():
328+ batch = create_batch (topic = "topic_foo" , max_bytes = 15 )
329+
330+ message = types .PubsubMessage (data = b"foobarbaz" )
331+ message2 = types .PubsubMessage (data = b"foobarbaz2" )
332+
296333 future = batch .publish (message )
334+ future2 = batch .publish (message2 )
297335
298- assert future is None
299- assert batch . size == base_request_size
300- assert batch .messages == []
301- assert batch ._futures == []
336+ assert future is not None
337+ assert future2 is None
338+ assert len ( batch .messages ) == 1
339+ assert len ( batch ._futures ) == 1
302340
303341
304342def test_publish_exceed_max_messages ():
0 commit comments