For App Engine in Python 3 you should use the Google Cloud Client Library for Python
You will also have to set up datastore authentication for your pipeline. See https://cloud.google.com/datastore/docs/reference/libraries on how to add GOOGLE_APPLICATION_CREDENTIALS environment variable.
Steps to delete all the test data
Import the datastore library
from google.cloud import datastore
Create a datastore client
ds_client = datastore.Client()
Query all the entities from your test data
query = ds_client.query(kind="Testdata")
Create a list from the query fetch
entities = list(query.fetch())
Now you can loop through the list and delete all the data:
for entity in entities:
ds_client.delete(entity.key)
Here is a full example that creates some test data and then deletes all the entities from the test data namespace:
from google.cloud import datastore
def create_some_test_data():
"""Function for Creating Test data"""
kind = 'Testdata'
number_of_entities = 10
ds_client = datastore.Client()
print('-- Creating test data --')
for i in range(number_of_entities):
key = ds_client.key(kind)
entity = datastore.Entity(key=key)
entity.update({'test_data': i})
ds_client.put(entity)
print('Creating entity: {}'.format(entity))
def delete_all_test_data():
"""Function for Deleting all the Test data"""
kind = 'Testdata'
ds_client = datastore.Client()
fetch_limit = 100
print('-- Deleting all entities --')
entities = True
while entities:
query = ds_client.query(kind=kind)
entities = list(query.fetch(limit=fetch_limit))
for entity in entities:
print('Deleting: {}'.format(entity))
ds_client.delete(entity.key)
# Execute the functions
create_some_test_data()
delete_all_test_data()
Running the example should output something like this:
-- Creating test data --
Creating entity: <Entity('Testdata', 5664747265458176) {'test_data': 0}>
Creating entity: <Entity('Testdata', 5723707007827968) {'test_data': 1}>
Creating entity: <Entity('Testdata', 5748214695198720) {'test_data': 2}>
Creating entity: <Entity('Testdata', 5683780991844352) {'test_data': 3}>
Creating entity: <Entity('Testdata', 5742950029983744) {'test_data': 4}>
Creating entity: <Entity('Testdata', 5716561121771520) {'test_data': 5}>
Creating entity: <Entity('Testdata', 5148025362055168) {'test_data': 6}>
Creating entity: <Entity('Testdata', 5729450050191360) {'test_data': 7}>
Creating entity: <Entity('Testdata', 5079111831650304) {'test_data': 8}>
Creating entity: <Entity('Testdata', 5681150794137600) {'test_data': 9}>
-- Deleting all entittes --
Deleting: <Entity('Testdata', 5079111831650304) {'test_data': 8}>
Deleting: <Entity('Testdata', 5148025362055168) {'test_data': 6}>
Deleting: <Entity('Testdata', 5664747265458176) {'test_data': 0}>
Deleting: <Entity('Testdata', 5681150794137600) {'test_data': 9}>
Deleting: <Entity('Testdata', 5683780991844352) {'test_data': 3}>
Deleting: <Entity('Testdata', 5716561121771520) {'test_data': 5}>
Deleting: <Entity('Testdata', 5723707007827968) {'test_data': 1}>
Deleting: <Entity('Testdata', 5729450050191360) {'test_data': 7}>
Deleting: <Entity('Testdata', 5742950029983744) {'test_data': 4}>
Deleting: <Entity('Testdata', 5748214695198720) {'test_data': 2}>