我有一个简单的NDB与实例属性,它是不是一个型号NDB财产 。 我想测试,当实体被保存并从数据库中检索到的属性值丢失。
现在,当实体被检索是相同的实例作为已经投入到数据存储的一个。
是否有明确的编程/无效的方式内存缓存和NDB内存中缓存 ?
这个例子是一个pytest测试,抱歉这一点。
from google.appengine.ext import testbed, ndb
class User(ndb.Model):
name = ndb.TextProperty()
foo = None
class TestNDBModel(object):
def setup(self):
self.testbed = testbed.Testbed()
self.testbed.activate()
self.testbed.init_datastore_v3_stub()
self.testbed.init_memcache_stub()
def teardown(self):
self.testbed.deactivate()
def test_foo(self):
user = User(name='Andy')
assert user.name == 'Andy'
assert user.foo is None
user.foo = 123
assert user.foo == 123
user_key = user.put()
# Here I need to clear the cache somehow,
# so that the entity must be retrieved from datastore
retrieved_user = user_key.get()
# These two will now fail
assert retrieved_user is not user
assert retrieved_user.foo is None