Example #1
0
    def test_transaction(self):
        entity = datastore.Entity(key=datastore.Key('Company', 'Google'))
        entity['url'] = u'www.google.com'

        with datastore.Transaction() as xact:
            results = datastore.get([entity.key])
            if len(results) == 0:
                xact.put(entity)
                self.case_entities_to_delete.append(entity)

        # This will always return after the transaction.
        retrieved_entity, = datastore.get([entity.key])
        self.case_entities_to_delete.append(retrieved_entity)
        self.assertEqual(retrieved_entity, entity)
Example #2
0
    def test_transaction(self):
        entity = datastore.Entity(key=datastore.Key('Company', 'Google'))
        entity['url'] = u'www.google.com'

        with datastore.Transaction() as xact:
            results = datastore.get([entity.key])
            if len(results) == 0:
                xact.put(entity)
                self.case_entities_to_delete.append(entity)

        # This will always return after the transaction.
        retrieved_entity, = datastore.get([entity.key])
        self.case_entities_to_delete.append(retrieved_entity)
        self.assertEqual(retrieved_entity, entity)
Example #3
0
    def test_transaction(self):
        entity = datastore.Entity(key=datastore.Key("Company", "Google"))
        entity["url"] = u"www.google.com"

        with datastore.Transaction() as xact:
            result = datastore.get(entity.key)
            if result is None:
                xact.put(entity)
                self.case_entities_to_delete.append(entity)

        # This will always return after the transaction.
        retrieved_entity = datastore.get(entity.key)
        self.case_entities_to_delete.append(retrieved_entity)
        self.assertEqual(retrieved_entity, entity)
 def __get_keys(self, key_ids):
     keys = [KEY_CLASS(self._document._key_name, try_int(id), app=FIXED_APP_ID) for id in key_ids]
     if GAE_RUNNING:
         entities = ndb.get_multi(keys)
     else:
         entities = datastore.get(keys)
     return entities
Example #5
0
def _get_report(employee_id, report_id, create=True):
    key = Key('Employee', employee_id, 'Expense Report', report_id)
    reports = datastore.get([key])
    if len(reports) == 0:
        if not create:
            return None
        report = Entity(key)
        datastore.put([report])
    else:
        report, = reports
    return report
Example #6
0
def _get_employee(employee_id, create=True):
    key = Key('Employee',  employee_id)
    employees = datastore.get([key])
    if len(employees) == 0:
        if not create:
            return None
        employee = Entity(key)
        employee['created'] = employee['updated'] = datetime.datetime.utcnow()
        datastore.put([employee])
    else:
        employee, = employees
    return employee
Example #7
0
    def _generic_test_post(self, name=None, key_id=None):
        entity = self._get_post(id_or_name=(name or key_id))
        datastore.put([entity])

        # Register entity to be deleted.
        self.case_entities_to_delete.append(entity)

        if name is not None:
            self.assertEqual(entity.key.name, name)
        if key_id is not None:
            self.assertEqual(entity.key.id, key_id)
        retrieved_entity, = datastore.get([entity.key])
        # Check the given and retrieved are the the same.
        self.assertEqual(retrieved_entity, entity)
Example #8
0
    def _generic_test_post(self, name=None, key_id=None):
        entity = self._get_post(id_or_name=(name or key_id))
        datastore.put([entity])

        # Register entity to be deleted.
        self.case_entities_to_delete.append(entity)

        if name is not None:
            self.assertEqual(entity.key.name, name)
        if key_id is not None:
            self.assertEqual(entity.key.id, key_id)
        retrieved_entity, = datastore.get([entity.key])
        # Check the given and retrieved are the the same.
        self.assertEqual(retrieved_entity, entity)
Example #9
0
    def test_save_multiple(self):
        with datastore.Transaction() as xact:
            entity1 = self._get_post()
            xact.put(entity1)
            # Register entity to be deleted.
            self.case_entities_to_delete.append(entity1)

            second_post_content = {
                'title': u'How to make the perfect homemade pasta',
                'tags': [u'pasta', u'homemade'],
                'publishedAt': datetime.datetime(2001, 1, 1),
                'author': u'Silvano',
                'isDraft': False,
                'wordCount': 450,
                'rating': 4.5,
            }
            entity2 = self._get_post(post_content=second_post_content)
            xact.put(entity2)
            # Register entity to be deleted.
            self.case_entities_to_delete.append(entity2)

        keys = [entity1.key, entity2.key]
        matches = datastore.get(keys)
        self.assertEqual(len(matches), 2)
Example #10
0
    def test_save_multiple(self):
        with datastore.Transaction() as xact:
            entity1 = self._get_post()
            xact.put(entity1)
            # Register entity to be deleted.
            self.case_entities_to_delete.append(entity1)

            second_post_content = {
                'title': u'How to make the perfect homemade pasta',
                'tags': [u'pasta', u'homemade'],
                'publishedAt': datetime.datetime(2001, 1, 1),
                'author': u'Silvano',
                'isDraft': False,
                'wordCount': 450,
                'rating': 4.5,
            }
            entity2 = self._get_post(post_content=second_post_content)
            xact.put(entity2)
            # Register entity to be deleted.
            self.case_entities_to_delete.append(entity2)

        keys = [entity1.key, entity2.key]
        matches = datastore.get(keys)
        self.assertEqual(len(matches), 2)
Example #11
0
    def _generic_test_post(self, name=None, key_id=None):
        entity = self._get_post(id_or_name=(name or key_id))
        with datastore.Transaction():
            datastore.put([entity])

        # Register entity to be deleted.
        self.case_entities_to_delete.append(entity)

        if name is not None:
            self.assertEqual(entity.key.name, name)
        if key_id is not None:
            self.assertEqual(entity.key.id, key_id)
        retrieved_entity, = datastore.get([entity.key])
        # Check the keys are the same.
        self.assertEqual(retrieved_entity.key.path, entity.key.path)
        self.assertEqual(retrieved_entity.key.namespace, entity.key.namespace)
        self.assertTrue(
            _compare_dataset_ids(retrieved_entity.key.dataset_id,
                                 entity.key.dataset_id))

        # Check the data is the same.
        retrieved_dict = dict(retrieved_entity.items())
        entity_dict = dict(entity.items())
        self.assertEqual(retrieved_dict, entity_dict)
Example #12
0
from gcloud.datastore import demo

demo.initialize()

# Let's import the package containing our helper classes:

# Let's create a new entity of type "Thing" and name it 'Toy':
key = datastore.Key('Thing')
toy = datastore.Entity(key)
toy.update({'name': 'Toy'})

# Now let's save it to our datastore:
datastore.put(toy)

# If we look it up by its key, we should find it...
print(datastore.get(toy.key))

# And we should be able to delete it...
datastore.delete(toy.key)

# Since we deleted it, if we do another lookup it shouldn't be there again:
print(datastore.get(toy.key))

# Now let's try a more advanced query.
# First, let's create some entities.
SAMPLE_DATA = [
    (1234, 'Computer', 10),
    (2345, 'Computer', 8),
    (3456, 'Laptop', 10),
    (4567, 'Printer', 11),
    (5678, 'Printer', 12),
Example #13
0
from gcloud.datastore import demo

demo.initialize()

# Let's import the package containing our helper classes:

# Let's create a new entity of type "Thing" and name it 'Toy':
key = datastore.Key('Thing')
toy = datastore.Entity(key)
toy.update({'name': 'Toy'})

# Now let's save it to our datastore:
datastore.put([toy])

# If we look it up by its key, we should find it...
print(datastore.get([toy.key]))

# And we should be able to delete it...
datastore.delete([toy.key])

# Since we deleted it, if we do another lookup it shouldn't be there again:
print(datastore.get([toy.key]))

# Now let's try a more advanced query.
# First, let's create some entities.
SAMPLE_DATA = [(1234, 'Computer', 10), (2345, 'Computer', 8),
               (3456, 'Laptop', 10), (4567, 'Printer', 11),
               (5678, 'Printer', 12), (6789, 'Computer', 13)]
sample_keys = []
for id, name, age in SAMPLE_DATA:
    key = datastore.Key('Thing', id)
Example #14
0
from gcloud.datastore import demo

demo.initialize()

# Let's import the package containing our helper classes:

# Let's create a new entity of type "Thing" and name it 'Toy':
key = datastore.Key('Thing')
toy = datastore.Entity(key)
toy.update({'name': 'Toy'})

# Now let's save it to our datastore:
datastore.put([toy])

# If we look it up by its key, we should find it...
print(datastore.get([toy.key]))

# And we should be able to delete it...
datastore.delete([toy.key])

# Since we deleted it, if we do another lookup it shouldn't be there again:
print(datastore.get([toy.key]))

# Now let's try a more advanced query.
# First, let's create some entities.
SAMPLE_DATA = [
    (1234, 'Computer', 10),
    (2345, 'Computer', 8),
    (3456, 'Laptop', 10),
    (4567, 'Printer', 11),
    (5678, 'Printer', 12),
 def uncast(self, value, follow_references=True):
     if value and follow_references:
         values = datastore.get([value])
         if len(values) > 0:
             return _wrap_document(values[0])
     return value
Example #16
0
from gcloud.datastore import demo

demo.initialize()

# Let's import the package containing our helper classes:

# Let's create a new entity of type "Thing" and name it 'Toy':
key = datastore.Key('Thing')
toy = datastore.Entity(key)
toy.update({'name': 'Toy'})

# Now let's save it to our datastore:
datastore.put(toy)

# If we look it up by its key, we should find it...
print(datastore.get(toy.key))

# And we should be able to delete it...
datastore.delete(toy.key)

# Since we deleted it, if we do another lookup it shouldn't be there again:
print(datastore.get(toy.key))

# Now let's try a more advanced query.
# First, let's create some entities.
SAMPLE_DATA = [(1234, 'Computer', 10), (2345, 'Computer', 8),
               (3456, 'Laptop', 10), (4567, 'Printer', 11),
               (5678, 'Printer', 12), (6789, 'Computer', 13)]
sample_keys = []
for id, name, age in SAMPLE_DATA:
    key = datastore.Key('Thing', id)