示例#1
0
 def test_execute(self, mock_gcs_hook, mock_ads_hook):
     mock_ads_hook.return_value.bulk_facebook_report.return_value = FACEBOOK_RETURN_VALUE
     op = FacebookAdsReportToGcsOperator(
         facebook_conn_id=FACEBOOK_ADS_CONN_ID,
         fields=FIELDS,
         params=PARAMS,
         object_name=GCS_OBJ_PATH,
         bucket_name=GCS_BUCKET,
         task_id="run_operator",
         impersonation_chain=IMPERSONATION_CHAIN,
     )
     op.execute({})
     mock_ads_hook.assert_called_once_with(
         facebook_conn_id=FACEBOOK_ADS_CONN_ID, api_version=API_VERSION)
     mock_ads_hook.return_value.bulk_facebook_report.assert_called_once_with(
         params=PARAMS, fields=FIELDS)
     mock_gcs_hook.assert_called_once_with(
         gcp_conn_id=GCS_CONN_ID,
         impersonation_chain=IMPERSONATION_CHAIN,
     )
     mock_gcs_hook.return_value.upload.assert_called_once_with(
         bucket_name=GCS_BUCKET,
         object_name=GCS_OBJ_PATH,
         filename=mock.ANY,
         gzip=False)
        table_id=TABLE_NAME,
        schema_fields=[
            {'name': 'campaign_name', 'type': 'STRING', 'mode': 'NULLABLE'},
            {'name': 'campaign_id', 'type': 'STRING', 'mode': 'NULLABLE'},
            {'name': 'ad_id', 'type': 'STRING', 'mode': 'NULLABLE'},
            {'name': 'clicks', 'type': 'STRING', 'mode': 'NULLABLE'},
            {'name': 'impressions', 'type': 'STRING', 'mode': 'NULLABLE'},
        ],
    )

    # [START howto_operator_facebook_ads_to_gcs]
    run_operator = FacebookAdsReportToGcsOperator(
        task_id='run_fetch_data',
        owner='airflow',
        bucket_name=GCS_BUCKET,
        parameters=PARAMETERS,
        fields=FIELDS,
        gcp_conn_id=GCS_CONN_ID,
        object_name=GCS_OBJ_PATH,
    )
    # [END howto_operator_facebook_ads_to_gcs]

    load_csv = GCSToBigQueryOperator(
        task_id='gcs_to_bq_example',
        bucket=GCS_BUCKET,
        source_objects=[GCS_OBJ_PATH],
        destination_project_dataset_table=f"{DATASET_NAME}.{TABLE_NAME}",
        write_disposition='WRITE_TRUNCATE',
    )

    read_data_from_gcs_many_chunks = BigQueryInsertJobOperator(