def create_batch(status, settings=types.BatchSettings()): """Create a batch object, which does not commit. Args: status (str): The batch's internal status will be set to the provided status. Returns: ~.pubsub_v1.publisher.batch.thread.Batch: The batch object """ creds = mock.Mock(spec=credentials.Credentials) client = publisher.Client(credentials=creds) batch = Batch(client, "topic_name", settings) batch._status = status return batch
def create_batch(topic="topic_name", batch_done_callback=None, commit_when_full=True, commit_retry=gapic_v1.method.DEFAULT, **batch_settings): """Return a batch object suitable for testing. Args: topic (str): Topic name. batch_done_callback (Callable[bool]): A callable that is called when the batch is done, either with a success or a failure flag. commit_when_full (bool): Whether to commit the batch when the batch has reached byte-size or number-of-messages limits. commit_retry (Optional[google.api_core.retry.Retry]): The retry settings for the batch commit call. batch_settings (Mapping[str, str]): Arguments passed on to the :class:``~.pubsub_v1.types.BatchSettings`` constructor. Returns: ~.pubsub_v1.publisher.batch.thread.Batch: A batch object. """ client = create_client() settings = types.BatchSettings(**batch_settings) return Batch( client, topic, settings, batch_done_callback=batch_done_callback, commit_when_full=commit_when_full, commit_retry=commit_retry, )
def create_batch(status=None, settings=types.BatchSettings()): """Create a batch object, which does not commit. Args: status (str): If provided, the batch's internal status will be set to the provided status. Returns: ~.pubsub_v1.publisher.batch.thread.Batch: The batch object """ creds = mock.Mock(spec=credentials.Credentials) client = publisher.Client(credentials=creds) batch = Batch(client, "topic_name", settings, autocommit=False) if status: batch._status = status return batch
def test_init(): """Establish that a monitor thread is usually created on init.""" client = create_client() # Do not actually create a thread, but do verify that one was created; # it should be running the batch's "monitor" method (which commits the # batch once time elapses). with mock.patch.object(threading, "Thread", autospec=True) as Thread: batch = Batch(client, "topic_name", types.BatchSettings()) Thread.assert_called_once_with(name="Thread-MonitorBatchPublisher", target=batch.monitor) # New batches start able to accept messages by default. assert batch.status == BatchStatus.ACCEPTING_MESSAGES
def create_batch(autocommit=False, **batch_settings): """Return a batch object suitable for testing. Args: autocommit (bool): Whether the batch should commit after ``max_latency`` seconds. By default, this is ``False`` for unit testing. kwargs (dict): Arguments passed on to the :class:``~.pubsub_v1.types.BatchSettings`` constructor. Returns: ~.pubsub_v1.publisher.batch.thread.Batch: A batch object. """ client = create_client() settings = types.BatchSettings(**batch_settings) return Batch(client, 'topic_name', settings, autocommit=autocommit)
def test_client(): client = create_client() settings = types.BatchSettings() batch = Batch(client, "topic_name", settings) assert batch.client is client
def test_make_lock(Lock): lock = Batch.make_lock() assert lock is Lock.return_value Lock.assert_called_once_with()
def test_client(): client = create_client() settings = types.BatchSettings() batch = Batch(client, 'topic_name', settings, autocommit=False) assert batch.client is client