コード例 #1
0
ファイル: operations.py プロジェクト: andreipetre/djangae
 def txn(entity):
     entity = Get(entity.key())
     try:
         entity[self.to_column_name] = entity[self.from_column_name]
     except KeyError:
         return
     Put(entity)
コード例 #2
0
ファイル: operations.py プロジェクト: andreipetre/djangae
 def txn(entity):
     entity = Get(entity.key())
     try:
         del entity[column_name]
     except KeyError:
         return
     Put(entity)
コード例 #3
0
 def txn(entity):
     entity = Get(entity.key())
     try:
         entity[self.to_column_name] = entity[self.from_column_name]
     except KeyError:
         return
     Put(entity)
コード例 #4
0
 def txn(entity):
     entity = Get(entity.key())
     try:
         del entity[column_name]
     except KeyError:
         return
     Put(entity)
コード例 #5
0
    def test_options(self):
        entity = FieldsWithOptionsModel()
        # Try to save the entity with non-nullable field time set to
        # None, should raise an exception.
        self.assertRaises(DatabaseError, entity.save)

        time = datetime.datetime.now().time()
        entity.time = time
        entity.save()

        # Check if primary_key=True is set correctly for the saved entity.
        self.assertEquals(entity.pk, u'*****@*****.**')
        gae_entity = Get(
            Key.from_path(FieldsWithOptionsModel._meta.db_table, entity.pk))
        self.assertTrue(gae_entity is not None)
        self.assertEquals(gae_entity.key().name(),
                          u'*****@*****.**')

        # Check if default values are set correctly on the db level,
        # primary_key field is not stored at the db level.
        for field in FieldsWithOptionsModel._meta.local_fields:
            if field.default and field.default != NOT_PROVIDED and \
                    not field.primary_key:
                self.assertEquals(gae_entity[field.column], field.default)
            elif field.column == 'time':
                self.assertEquals(
                    gae_entity[field.column],
                    datetime.datetime(1970, 1, 1,
                                      time.hour, time.minute, time.second,
                                      time.microsecond))
            elif field.null and field.editable:
                self.assertEquals(gae_entity[field.column], None)

        # Check if default values are set correct on the model instance
        # level.
        entity = FieldsWithOptionsModel.objects.get()
        for field in FieldsWithOptionsModel._meta.local_fields:
            if field.default and field.default != NOT_PROVIDED:
                self.assertEquals(getattr(entity, field.column), field.default)
            elif field.column == 'time':
                self.assertEquals(getattr(entity, field.column), time)
            elif field.null and field.editable:
                self.assertEquals(getattr(entity, field.column), None)

        # Check if nullable field with default values can be set to
        # None.
        entity.slug = None
        entity.positive_small_integer = None
        try:
            entity.save()
        except:
            self.fail()

        # Check if slug and positive_small_integer will be retrieved
        # with values set to None (on db level and model instance
        # level).
        gae_entity = Get(Key.from_path(
            FieldsWithOptionsModel._meta.db_table, entity.pk))
        opts = FieldsWithOptionsModel._meta
        self.assertEquals(
            gae_entity[opts.get_field_by_name('slug')[0].column],
            None)
        self.assertEquals(
            gae_entity[opts.get_field_by_name(
                'positive_small_integer')[0].column],
            None)

        # On the model instance level.
        entity = FieldsWithOptionsModel.objects.get()
        self.assertEquals(
            getattr(entity, opts.get_field_by_name('slug')[0].column),
            None)
        self.assertEquals(
            getattr(entity, opts.get_field_by_name(
                'positive_small_integer')[0].column),
            None)
コード例 #6
0
    def test_options(self):
        entity = FieldsWithOptionsModel()
        # try to save the entity with non-nullable field time set to None, should
        # raise an exception
        self.assertRaises(DatabaseError, entity.save)

        time = datetime.datetime.now().time()
        entity.time = time
        entity.save()

        # check if primary_key=True is set correctly for the saved entity
        self.assertEquals(entity.pk, u'*****@*****.**')
        gae_entity = Get(Key.from_path(FieldsWithOptionsModel._meta.db_table,
            entity.pk))
        self.assertTrue(gae_entity is not None)
        self.assertEquals(gae_entity.key().name(), u'*****@*****.**')

        # check if default values are set correctly on the db level,
        # primary_key field is not stored at the db level
        for field in FieldsWithOptionsModel._meta.local_fields:
            if field.default and field.default != NOT_PROVIDED and not \
                    field.primary_key:
                self.assertEquals(gae_entity[field.column], field.default)
            elif field.column == 'time':
                self.assertEquals(gae_entity[field.column], datetime.datetime(
                    1970, 1, 1, time.hour, time.minute, time.second, time.microsecond))
            elif field.null and field.editable:
                self.assertEquals(gae_entity[field.column], None)

        # check if default values are set correct on the model instance level
        entity = FieldsWithOptionsModel.objects.get()
        for field in FieldsWithOptionsModel._meta.local_fields:
            if field.default and field.default != NOT_PROVIDED:
                self.assertEquals(getattr(entity, field.column), field.default)
            elif field.column == 'time':
                self.assertEquals(getattr(entity, field.column), time)
            elif field.null and field.editable:
                self.assertEquals(getattr(entity, field.column), None)

        # check if nullable field with default values can be set to None
        entity.slug = None
        entity.positiv_small_integer = None
        try:
            entity.save()
        except:
            self.fail()

        # check if slug and positiv_small_integer will be retrieved with values
        # set to None (on db level and model instance level)
        gae_entity = Get(Key.from_path(FieldsWithOptionsModel._meta.db_table,
            entity.pk))
        self.assertEquals(gae_entity[FieldsWithOptionsModel._meta.get_field_by_name(
            'slug')[0].column], None)
        self.assertEquals(gae_entity[FieldsWithOptionsModel._meta.get_field_by_name(
            'positiv_small_integer')[0].column], None)

        # on the model instance level
        entity = FieldsWithOptionsModel.objects.get()
        self.assertEquals(getattr(entity, FieldsWithOptionsModel._meta.get_field_by_name(
            'slug')[0].column), None)
        self.assertEquals(getattr(entity, FieldsWithOptionsModel._meta.get_field_by_name(
            'positiv_small_integer')[0].column), None)
コード例 #7
0
ファイル: operations.py プロジェクト: andreipetre/djangae
 def txn(entity):
     entity = Get(entity.key())
     entity[column_name] = value
     Put(entity)
コード例 #8
0
 def txn(entity):
     entity = Get(entity.key())
     entity[column_name] = value
     Put(entity)