def __delete_entries_and_groups(project_ids): entry_name_pattern = '(?P<entry_group_name>.+?)/entries/(.+?)' query = f'system=tableau' scope = types.SearchCatalogRequest.Scope() scope.include_project_ids.extend(project_ids) # TODO Replace "search entries" by "list entries by group" # when/if it becomes available. search_results = [ result for result in datacatalog.search_catalog( scope=scope, query=query, order_by='relevance', page_size=1000) ] entry_group_names = [] for result in search_results: try: datacatalog.delete_entry(result.relative_resource_name) print('Entry deleted: {}'.format(result.relative_resource_name)) entry_group_name = re.match( pattern=entry_name_pattern, string=result.relative_resource_name).group('entry_group_name') entry_group_names.append(entry_group_name) except: print('Exception deleting entry') # Delete any pre-existing Entry Groups. for entry_group_name in set(entry_group_names): try: datacatalog.delete_entry_group(entry_group_name) print('--> Entry Group deleted: {}'.format(entry_group_name)) except: print('Exception deleting entry group')
def test_tableau_entries_should_not_exist_after_cleanup(self): query = 'system=tableau' scope = types.SearchCatalogRequest.Scope() scope.include_project_ids.append( os.environ['TABLEAU2DC_DATACATALOG_PROJECT_ID']) search_results = [ result for result in datacatalog.search_catalog( scope=scope, query=query, order_by='relevance', page_size=1000) ] self.assertEqual(len(search_results), 0)
def test_looker_entries_should_exist_after_connector_execution(self): query = 'system=tableau' scope = types.SearchCatalogRequest.Scope() scope.include_project_ids.append( os.environ['LOOKER2DC_DATACATALOG_PROJECT_ID']) search_results = [ result for result in datacatalog.search_catalog( scope=scope, query=query, order_by='relevance', page_size=1000) ] self.assertGreater(len(search_results), 0)