如何从数据存储刷新NDB实体?

Brandones

我希望能够在测试中断言我的代码要求Model.put()修改的实体。不幸的是,似乎正在进行一些缓存,例如以下代码:

from google.appengine.ext import ndb

class MyModel(ndb.Model):
    name = StringProperty(indexed=True)
    text = StringProperty()

def update_entity(id, text):
    entity = MyModel.get_by_id(id)
    entity.text = text
    # This is where entity.put() should happen but doesn't

通过此测试:

def test_updates_entity_in_datastore(unittest.TestCase):
    name = 'Beartato'
    entity = MyModel(id=12345L, name=name, text=None)
    text = 'foo bar baz'
    update_entity(entity.key.id(), text)
    new_entity = entity.key.get()  # Doesn't do anything, apparently
    # new_entity = entity.query(MyModel.name == name).fetch()[0]  # Same
    assert new_entity.text == text

当我真的希望它不会发生时,因为在现实世界中,update_entity实际上不会更改数据存储区中的任何内容。

使用Nose,datastore_v3_stub和memcache_stub。

蛇魅

您可以像这样绕过缓存:

entity = key.get(use_cache=False, use_memcache=False)

这些选项来自ndb的context选项它们可以应用到Model.get_by_id()Model.query().fetch()Model.query().get()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

GAE将字典转换为NDB数据存储实体

来自分类Dev

如何在NDB数据存储中获取模型列表

来自分类Dev

Google App Engine NDB数据存储区get_by_id以获取实体

来自分类Dev

实体框架刷新数据

来自分类Dev

如何使用Objectify更新数据存储实体?

来自分类Dev

如何检索数据存储实体的键

来自分类Dev

如何使用实体框架刷新 WPF 中的数据网格

来自分类Dev

就数据存储写入而言,更快,更便宜的是什么?将数据存储在ndb.StructuredProperty中或作为子实体单独存储

来自分类Dev

在实体框架中刷新数据

来自分类Dev

ndb.transactional如何对实体进行分组?

来自分类Dev

跨模块共享NDB数据存储

来自分类Dev

如何为所有NDB数据存储条目分配默认值?

来自分类Dev

重复时如何检索ndb.KeyProperty =使用端点原始数据存储正确

来自分类Dev

如何通过ID从AppEngine的数据存储中删除实体?

来自分类Dev

Google App Engine数据存储区如何获取Key <?>的实体

来自分类Dev

创建后如何向数据存储实体添加索引

来自分类Dev

在页面刷新期间存储数据

来自分类Dev

使用WTForms中的数据填充App Engine NDB实体

来自分类Dev

App Engine数据存储区:如何批量删除本地主机上的数据存储区实体?

来自分类Dev

数据库触发后刷新实体

来自分类Dev

如何从Google App Engine(Java)数据存储区中的子实体查询父实体?

来自分类Dev

如何从Java中具有AppEngine数据存储区的相同键的实体中删除实体

来自分类Dev

如何在刷新之前获取Hibernate受管实体的数据库快照

来自分类Dev

如何将实体的实体键分配为数据存储区(Node JS)中不同实体的属性?

来自分类Dev

如何处理对一个实体的快速NDB查询?

来自分类Dev

如何使用objectify以相反的存储顺序从数据存储中检索实体?

来自分类Dev

NDB查询返回零结果。数据存储区显示结果

来自分类Dev

Google App Engine NDB数据存储区的简单说明

来自分类Dev

使用App Engine云端点访问ndb数据存储

Related 相关文章

  1. 1

    GAE将字典转换为NDB数据存储实体

  2. 2

    如何在NDB数据存储中获取模型列表

  3. 3

    Google App Engine NDB数据存储区get_by_id以获取实体

  4. 4

    实体框架刷新数据

  5. 5

    如何使用Objectify更新数据存储实体?

  6. 6

    如何检索数据存储实体的键

  7. 7

    如何使用实体框架刷新 WPF 中的数据网格

  8. 8

    就数据存储写入而言,更快,更便宜的是什么?将数据存储在ndb.StructuredProperty中或作为子实体单独存储

  9. 9

    在实体框架中刷新数据

  10. 10

    ndb.transactional如何对实体进行分组?

  11. 11

    跨模块共享NDB数据存储

  12. 12

    如何为所有NDB数据存储条目分配默认值?

  13. 13

    重复时如何检索ndb.KeyProperty =使用端点原始数据存储正确

  14. 14

    如何通过ID从AppEngine的数据存储中删除实体?

  15. 15

    Google App Engine数据存储区如何获取Key <?>的实体

  16. 16

    创建后如何向数据存储实体添加索引

  17. 17

    在页面刷新期间存储数据

  18. 18

    使用WTForms中的数据填充App Engine NDB实体

  19. 19

    App Engine数据存储区:如何批量删除本地主机上的数据存储区实体?

  20. 20

    数据库触发后刷新实体

  21. 21

    如何从Google App Engine(Java)数据存储区中的子实体查询父实体?

  22. 22

    如何从Java中具有AppEngine数据存储区的相同键的实体中删除实体

  23. 23

    如何在刷新之前获取Hibernate受管实体的数据库快照

  24. 24

    如何将实体的实体键分配为数据存储区(Node JS)中不同实体的属性?

  25. 25

    如何处理对一个实体的快速NDB查询?

  26. 26

    如何使用objectify以相反的存储顺序从数据存储中检索实体?

  27. 27

    NDB查询返回零结果。数据存储区显示结果

  28. 28

    Google App Engine NDB数据存储区的简单说明

  29. 29

    使用App Engine云端点访问ndb数据存储

热门标签

归档