def test_aad_query_list_tables(self, tables_storage_account_name): try: account_url = self.account_url(tables_storage_account_name, "table") ts = TableServiceClient(credential=self.get_token_credential(), endpoint=account_url) table_name1 = self._get_table_reference(prefix="table1") table_name2 = self._get_table_reference(prefix="table2") table_name3 = self._get_table_reference(prefix="table3") table_name4 = self._get_table_reference(prefix="table4") ts.create_table(table_name1) ts.create_table(table_name2) ts.create_table(table_name3) ts.create_table(table_name4) count = 0 for table in ts.list_tables(): count += 1 assert count == 4 query_filter = "TableName eq '{}'".format(table_name2) count = 0 for table in ts.query_tables(query_filter): count += 1 assert table.name == table_name2 assert count == 1 finally: for table in ts.list_tables(): ts.delete_table(table.name)
def test_query_tables_per_page(self, tables_storage_account_name, tables_primary_storage_account_key): # Arrange account_url = self.account_url(tables_storage_account_name, "table") ts = TableServiceClient(credential=tables_primary_storage_account_key, endpoint=account_url) table_name = "mytable" for i in range(5): ts.create_table(table_name + str(i)) query_filter = "TableName eq 'mytable0' or TableName eq 'mytable1' or TableName eq 'mytable2'" table_count = 0 page_count = 0 for table_page in ts.query_tables(query_filter, results_per_page=2).by_page(): temp_count = 0 for table in table_page: temp_count += 1 assert temp_count <= 2 page_count += 1 table_count += temp_count assert page_count == 2 assert table_count == 3 self._delete_all_tables(ts)
def test_delete_table_with_existing_table(self, resource_group, location, storage_account, storage_account_key): # Arrange ts = TableServiceClient(self.account_url(storage_account, "table"), storage_account_key) table = self._create_table(ts) # Act deleted = ts.delete_table(table_name=table.table_name) existing = list(ts.query_tables("TableName eq '{}'".format(table.table_name))) # Assert self.assertIsNone(deleted) self.assertEqual(len(existing), 0)
def test_delete_table_with_existing_table(self, tables_storage_account_name, tables_primary_storage_account_key): # Arrange account_url = self.account_url(tables_storage_account_name, "table") ts = TableServiceClient(credential=tables_primary_storage_account_key, endpoint=account_url) table = self._create_table(ts) # Act deleted = ts.delete_table(table_name=table.table_name) existing = list(ts.query_tables("TableName eq '{}'".format(table.table_name))) # Assert assert deleted is None assert len(existing) == 0
def test_delete_table_with_existing_table(self, resource_group, location, cosmos_account, cosmos_account_key): # Arrange ts = TableServiceClient(self.account_url(cosmos_account, "cosmos"), cosmos_account_key) table = self._create_table(ts) # Act deleted = ts.delete_table(table_name=table.table_name) # Assert existing = list(ts.query_tables("TableName eq '{}'".format(table.table_name))) self.assertEqual(len(existing), 0) if self.is_live: sleep(SLEEP_DELAY)
def test_query_tables_with_filter(self, resource_group, location, storage_account, storage_account_key): # Arrange ts = TableServiceClient(self.account_url(storage_account, "table"), storage_account_key) table = self._create_table(ts) # Act name_filter = "TableName eq '{}'".format(table.table_name) tables = list(ts.query_tables(filter=name_filter)) # Assert self.assertIsNotNone(tables) self.assertEqual(len(tables), 1) # self.assertEqual(tables[0].table_name, [table.table_name]) # table.delete_table() ts.delete_table(table.table_name)
def test_query_tables_with_filter(self, resource_group, location, storage_account, storage_account_key): # Arrange ts = TableServiceClient(self.account_url(storage_account, "table"), storage_account_key) t = self._create_table(ts) # Act name_filter = "TableName eq '{}'".format(t.table_name) tables = list(ts.query_tables(filter=name_filter)) for table_item in tables: self.assertIsInstance(table_item, TableItem) # Assert self.assertIsNotNone(tables) self.assertEqual(len(tables), 1) ts.delete_table(t.table_name)
def test_create_table_fail_on_exist(self, resource_group, location, storage_account, storage_account_key): # Arrange ts = TableServiceClient(self.account_url(storage_account, "table"), storage_account_key) table_name = self._get_table_reference() # Act created = ts.create_table(table_name) with self.assertRaises(ResourceExistsError): ts.create_table(table_name) name_filter = "TableName eq '{}'".format(table_name) existing = list(ts.query_tables(filter=name_filter)) # Assert self.assertIsNotNone(created) ts.delete_table(table_name)
def test_query_tables_with_filter(self, resource_group, location, cosmos_account, cosmos_account_key): # Arrange ts = TableServiceClient(self.account_url(cosmos_account, "cosmos"), cosmos_account_key) table = self._create_table(ts) # Act name_filter = "TableName eq '{}'".format(table.table_name) tables = list(ts.query_tables(filter=name_filter)) # Assert self.assertIsNotNone(tables) self.assertEqual(len(tables), 1) ts.delete_table(table.table_name) if self.is_live: sleep(SLEEP_DELAY)
def test_create_table_fail_on_exist(self, tables_storage_account_name, tables_primary_storage_account_key): # Arrange account_url = self.account_url(tables_storage_account_name, "table") ts = TableServiceClient(credential=tables_primary_storage_account_key, endpoint=account_url) table_name = self._get_table_reference() # Act created = ts.create_table(table_name) with pytest.raises(ResourceExistsError): ts.create_table(table_name) name_filter = "TableName eq '{}'".format(table_name) existing = list(ts.query_tables(name_filter)) # Assert assert created is not None ts.delete_table(table_name)
def query_tables(self): from azure.data.tables import TableServiceClient table_service_client = TableServiceClient(account_url=self.account_url, credential=self.access_key) # Create Tables to query my_table = table_service_client.create_table( table_name=self.table_name) print(my_table) # Query tables queried_tables = table_service_client.query_tables( filter=self.name_filter, results_per_page=10) # table_client.query_tables() returns an itemPaged # queried_tables is a list of filtered tables for table in queried_tables: print(table)
def test_query_tables_with_filter(self, tables_storage_account_name, tables_primary_storage_account_key): # Arrange account_url = self.account_url(tables_storage_account_name, "table") ts = TableServiceClient(credential=tables_primary_storage_account_key, endpoint=account_url) t = self._create_table(ts) # Act name_filter = "TableName eq '{}'".format(t.table_name) tables = list(ts.query_tables(name_filter)) for table_item in tables: assert isinstance(table_item, TableItem) # Assert assert tables is not None assert len(tables) == 1 ts.delete_table(t.table_name) self._delete_all_tables(ts)