def subscription(topic: str, subscriber: SubscriberClient) -> Iterator[str]: name = topic.replace("/topics/", "/subscriptions/") try: subscriber.create_subscription(name, topic) delete = True except AlreadyExists: delete = False try: yield name finally: if delete: subscriber.delete_subscription(name)
def test_submit_pubsub_topic_not_found( integration_test: IntegrationTest, publisher: PublisherClient, subscriber: SubscriberClient, subscription: str, topic: str, ): publisher.delete_topic(topic) try: integration_test.assert_accepted_and_queued() finally: subscriber.delete_subscription(subscription) publisher.create_topic(topic) subscriber.create_subscription(subscription, topic) integration_test.assert_flushed_and_delivered()
def subscription_path(subscriber_client: pubsub_v1.SubscriberClient, topic_path: str) -> Generator[str, None, None]: subscription_path = subscriber_client.subscription_path( PROJECT_ID, SUBSCRIPTION_ID) subscription = subscriber_client.create_subscription(request={ "name": subscription_path, "topic": topic_path }) yield subscription.name try: subscriber_client.delete_subscription( request={"subscription": subscription_path}) except NotFound: pass
def tearDownClass(cls): super().tearDownClass() publisher = PublisherClient() subscriber = SubscriberClient() for topic in ["test0", "test1"]: try: publisher.delete_topic(publisher.topic_path( cls.project, topic)) except Exception as ex: raise ex try: subscriber.delete_subscription( subscriber.subscription_path(cls.project, topic)) except Exception as ex: raise ex
def subscription_path(subscriber_client: pubsub_v1.SubscriberClient, topic_path: str) -> Generator[str, None, None]: subscription_path = subscriber_client.subscription_path( PROJECT_ID, SUBSCRIPTION_ID) try: subscription = subscriber_client.create_subscription( request={ "name": subscription_path, "topic": topic_path }) yield subscription.name except AlreadyExists: yield subscription_path subscriber_client.delete_subscription( request={"subscription": subscription_path}) subscriber_client.close()
def proto_subscription(subscriber_client: pubsub_v1.SubscriberClient, proto_topic: str) -> Generator[str, None, None]: proto_subscription_path = subscriber_client.subscription_path( PROJECT_ID, PROTO_SUBSCRIPTION_ID) try: proto_subscription = subscriber_client.get_subscription( request={"subscription": proto_subscription_path}) except NotFound: proto_subscription = subscriber_client.create_subscription( request={ "name": proto_subscription_path, "topic": proto_topic }) yield proto_subscription.name subscriber_client.delete_subscription( request={"subscription": proto_subscription.name})