示例#1
0
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()
示例#3
0
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
示例#4
0
    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
示例#5
0
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()
示例#6
0
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})