1
我一直在一个错误,我没有正确地检查一个实体被放到数据存储。它对事务和上下文缓存和内存缓存特别困惑。测试ndb实体被放到数据存储区
考虑这个实体,其中每种方法的目的是为了增加n
和实体保存到数据存储:
class MyEntity(ndb.Model):
n = ndb.IntegerProperty()
def inc(self):
self.n += 1
# self.put() # oops, forgot to put the entity
@staticmethod
@ndb.transactional
def inc_trans(key):
x = key.get()
x.n += 1
# x.put() # oops, forgot to put the entity
这些单元测试:
def testInc(self):
x = MyEntity(n=0)
x.put()
x.inc()
x = x.key.get()
self.assertEqual(x.n, 1)
def testIncTrans(self):
x = MyEntity(n=0)
x.put()
MyEntity.inc_trans(x.key)
x = x.key.get()
self.assertEqual(x.n, 1)
我要补充这些测试以确保实体实际上已被保存到数据存储中? (即,我们没有检查存储在环境关联的缓存或内存缓存?值)是否足够来电来inc
和inc_trans
后添加
ndb.get_context().clear_cache()
的单元测试?