当前位置: 首页>>代码示例>>Python>>正文


Python AzureCosmosDBHook.create_collection方法代码示例

本文整理汇总了Python中airflow.contrib.hooks.azure_cosmos_hook.AzureCosmosDBHook.create_collection方法的典型用法代码示例。如果您正苦于以下问题:Python AzureCosmosDBHook.create_collection方法的具体用法?Python AzureCosmosDBHook.create_collection怎么用?Python AzureCosmosDBHook.create_collection使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在airflow.contrib.hooks.azure_cosmos_hook.AzureCosmosDBHook的用法示例。


在下文中一共展示了AzureCosmosDBHook.create_collection方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: execute

# 需要导入模块: from airflow.contrib.hooks.azure_cosmos_hook import AzureCosmosDBHook [as 别名]
# 或者: from airflow.contrib.hooks.azure_cosmos_hook.AzureCosmosDBHook import create_collection [as 别名]
    def execute(self, context):
        # Create the hook
        hook = AzureCosmosDBHook(azure_cosmos_conn_id=self.azure_cosmos_conn_id)

        # Create the DB if it doesn't already exist
        if not hook.does_database_exist(self.database_name):
            hook.create_database(self.database_name)

        # Create the collection as well
        if not hook.does_collection_exist(self.collection_name, self.database_name):
            hook.create_collection(self.collection_name, self.database_name)

        # finally insert the document
        hook.upsert_document(self.document, self.database_name, self.collection_name)
开发者ID:Fokko,项目名称:incubator-airflow,代码行数:16,代码来源:azure_cosmos_operator.py

示例2: TestAzureCosmosDbHook

# 需要导入模块: from airflow.contrib.hooks.azure_cosmos_hook import AzureCosmosDBHook [as 别名]
# 或者: from airflow.contrib.hooks.azure_cosmos_hook.AzureCosmosDBHook import create_collection [as 别名]
class TestAzureCosmosDbHook(unittest.TestCase):

    # Set up an environment to test with
    def setUp(self):
        # set up some test variables
        self.test_end_point = 'https://test_endpoint:443'
        self.test_master_key = 'magic_test_key'
        self.test_database_name = 'test_database_name'
        self.test_collection_name = 'test_collection_name'
        self.test_database_default = 'test_database_default'
        self.test_collection_default = 'test_collection_default'
        configuration.load_test_config()
        db.merge_conn(
            Connection(
                conn_id='azure_cosmos_test_key_id',
                conn_type='azure_cosmos',
                login=self.test_end_point,
                password=self.test_master_key,
                extra=json.dumps({'database_name': self.test_database_default,
                                  'collection_name': self.test_collection_default})
            )
        )

    @mock.patch('azure.cosmos.cosmos_client.CosmosClient')
    def test_create_database(self, cosmos_mock):
        self.cosmos = AzureCosmosDBHook(azure_cosmos_conn_id='azure_cosmos_test_key_id')
        self.cosmos.create_database(self.test_database_name)
        expected_calls = [mock.call().CreateDatabase({'id': self.test_database_name})]
        cosmos_mock.assert_any_call(self.test_end_point, {'masterKey': self.test_master_key})
        cosmos_mock.assert_has_calls(expected_calls)

    @mock.patch('azure.cosmos.cosmos_client.CosmosClient')
    def test_create_database_exception(self, cosmos_mock):
        self.cosmos = AzureCosmosDBHook(azure_cosmos_conn_id='azure_cosmos_test_key_id')
        self.assertRaises(AirflowException, self.cosmos.create_database, None)

    @mock.patch('azure.cosmos.cosmos_client.CosmosClient')
    def test_create_container_exception(self, cosmos_mock):
        self.cosmos = AzureCosmosDBHook(azure_cosmos_conn_id='azure_cosmos_test_key_id')
        self.assertRaises(AirflowException, self.cosmos.create_collection, None)

    @mock.patch('azure.cosmos.cosmos_client.CosmosClient')
    def test_create_container(self, cosmos_mock):
        self.cosmos = AzureCosmosDBHook(azure_cosmos_conn_id='azure_cosmos_test_key_id')
        self.cosmos.create_collection(self.test_collection_name, self.test_database_name)
        expected_calls = [mock.call().CreateContainer(
            'dbs/test_database_name',
            {'id': self.test_collection_name})]
        cosmos_mock.assert_any_call(self.test_end_point, {'masterKey': self.test_master_key})
        cosmos_mock.assert_has_calls(expected_calls)

    @mock.patch('azure.cosmos.cosmos_client.CosmosClient')
    def test_create_container_default(self, cosmos_mock):
        self.cosmos = AzureCosmosDBHook(azure_cosmos_conn_id='azure_cosmos_test_key_id')
        self.cosmos.create_collection(self.test_collection_name)
        expected_calls = [mock.call().CreateContainer(
            'dbs/test_database_default',
            {'id': self.test_collection_name})]
        cosmos_mock.assert_any_call(self.test_end_point, {'masterKey': self.test_master_key})
        cosmos_mock.assert_has_calls(expected_calls)

    @mock.patch('azure.cosmos.cosmos_client.CosmosClient')
    def test_upsert_document_default(self, cosmos_mock):
        test_id = str(uuid.uuid4())
        cosmos_mock.return_value.CreateItem.return_value = {'id': test_id}
        self.cosmos = AzureCosmosDBHook(azure_cosmos_conn_id='azure_cosmos_test_key_id')
        returned_item = self.cosmos.upsert_document({'id': test_id})
        expected_calls = [mock.call().CreateItem(
            'dbs/' + self.test_database_default + '/colls/' + self.test_collection_default,
            {'id': test_id})]
        cosmos_mock.assert_any_call(self.test_end_point, {'masterKey': self.test_master_key})
        cosmos_mock.assert_has_calls(expected_calls)
        logging.getLogger().info(returned_item)
        self.assertEqual(returned_item['id'], test_id)

    @mock.patch('azure.cosmos.cosmos_client.CosmosClient')
    def test_upsert_document(self, cosmos_mock):
        test_id = str(uuid.uuid4())
        cosmos_mock.return_value.CreateItem.return_value = {'id': test_id}
        self.cosmos = AzureCosmosDBHook(azure_cosmos_conn_id='azure_cosmos_test_key_id')
        returned_item = self.cosmos.upsert_document(
            {'data1': 'somedata'},
            database_name=self.test_database_name,
            collection_name=self.test_collection_name,
            document_id=test_id)

        expected_calls = [mock.call().CreateItem(
            'dbs/' + self.test_database_name + '/colls/' + self.test_collection_name,
            {'data1': 'somedata', 'id': test_id})]

        cosmos_mock.assert_any_call(self.test_end_point, {'masterKey': self.test_master_key})
        cosmos_mock.assert_has_calls(expected_calls)
        logging.getLogger().info(returned_item)
        self.assertEqual(returned_item['id'], test_id)

    @mock.patch('azure.cosmos.cosmos_client.CosmosClient')
    def test_insert_documents(self, cosmos_mock):
        test_id1 = str(uuid.uuid4())
        test_id2 = str(uuid.uuid4())
        test_id3 = str(uuid.uuid4())
#.........这里部分代码省略.........
开发者ID:alrolorojas,项目名称:airflow,代码行数:103,代码来源:test_azure_cosmos_hook.py


注:本文中的airflow.contrib.hooks.azure_cosmos_hook.AzureCosmosDBHook.create_collection方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。