def test_succeedifexists(self, mock_hook): operator = PubSubCreateTopicOperator(task_id=TASK_ID, project_id=TEST_PROJECT, topic=TEST_TOPIC, fail_if_exists=False) operator.execute(None) mock_hook.return_value.create_topic.assert_called_once_with( project_id=TEST_PROJECT, topic=TEST_TOPIC, fail_if_exists=False, labels=None, message_storage_policy=None, kms_key_name=None, retry=None, timeout=None, metadata=None)
echo_cmd = """ {% for m in task_instance.xcom_pull('pull_messages') %} echo "AckID: {{ m.get('ackId') }}, Base64-Encoded: {{ m.get('message') }}" {% endfor %} """ # [END howto_operator_gcp_pubsub_pull_messages_result_cmd] with models.DAG( "example_gcp_pubsub_sensor", schedule_interval='@once', # Override to match your needs start_date=START_DATE, catchup=False, ) as example_sensor_dag: # [START howto_operator_gcp_pubsub_create_topic] create_topic = PubSubCreateTopicOperator(task_id="create_topic", topic=TOPIC_FOR_SENSOR_DAG, project_id=GCP_PROJECT_ID, fail_if_exists=False) # [END howto_operator_gcp_pubsub_create_topic] # [START howto_operator_gcp_pubsub_create_subscription] subscribe_task = PubSubCreateSubscriptionOperator( task_id="subscribe_task", project_id=GCP_PROJECT_ID, topic=TOPIC_FOR_SENSOR_DAG) # [END howto_operator_gcp_pubsub_create_subscription] # [START howto_operator_gcp_pubsub_pull_message_with_sensor] subscription = subscribe_task.output pull_messages = PubSubPullSensor( task_id="pull_messages",
# [START howto_operator_gcp_pubsub_pull_messages_result_cmd] echo_cmd = """ {% for m in task_instance.xcom_pull('pull_messages') %} echo "AckID: {{ m.get('ackId') }}, Base64-Encoded: {{ m.get('message') }}" {% endfor %} """ # [END howto_operator_gcp_pubsub_pull_messages_result_cmd] with models.DAG( "example_gcp_pubsub", default_args=default_args, schedule_interval=None, # Override to match your needs ) as example_dag: # [START howto_operator_gcp_pubsub_create_topic] create_topic = PubSubCreateTopicOperator( task_id="create_topic", topic=TOPIC, project_id=GCP_PROJECT_ID ) # [END howto_operator_gcp_pubsub_create_topic] # [START howto_operator_gcp_pubsub_create_subscription] subscribe_task = PubSubCreateSubscriptionOperator( task_id="subscribe_task", project_id=GCP_PROJECT_ID, topic=TOPIC ) # [END howto_operator_gcp_pubsub_create_subscription] # [START howto_operator_gcp_pubsub_pull_message] subscription = "{{ task_instance.xcom_pull('subscribe_task') }}" pull_messages = PubSubPullSensor( task_id="pull_messages", ack_messages=True,