首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在djangoappengine上进行单元测试时的require_indexes

在djangoappengine上进行单元测试时的require_indexes
EN

Stack Overflow用户
提问于 2014-04-07 02:10:00
回答 1查看 94关注 0票数 0

我试图减少和清理GAE数据存储上的数据存储索引,所以我设置了require_indexes=True。我删除了所有索引并运行了我的单元测试,但是测试通过时没有出现任何问题,GAE对index.yaml也没有做任何更改。它为什么要经过?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-07 13:01:34

我认为解决方案是需要按以下方式更新djangoappengine.sb.stubs.activate_test_stubs,以要求和设置索引:

代码语言:javascript
运行
复制
def activate_test_stubs(self, connection):
    if self.active_stubs == 'test':
        return

    os.environ['HTTP_HOST'] = "%s.appspot.com" % appid

    appserver_opts = connection.settings_dict.get('DEV_APPSERVER_OPTIONS', {})

    high_replication = appserver_opts.get('high_replication', False)
    require_indexes = appserver_opts.get('require_indexes', False)

    datastore_opts = {'require_indexes': require_indexes}
    if high_replication:
        from google.appengine.datastore import datastore_stub_util
        datastore_opts['consistency_policy'] = datastore_stub_util.PseudoRandomHRConsistencyPolicy(probability=1)

    if self.testbed is None:
        from google.appengine.ext.testbed import Testbed
        self.testbed = Testbed()

    self.testbed.activate()
    self.pre_test_stubs = self.active_stubs
    self.active_stubs = 'test'
    self.testbed.init_datastore_v3_stub(root_path=PROJECT_DIR, **datastore_opts)
    self.testbed.init_memcache_stub()
    self.testbed.init_taskqueue_stub(auto_task_running=True, root_path=PROJECT_DIR)
    self.testbed.init_urlfetch_stub()
    self.testbed.init_user_stub()
    self.testbed.init_xmpp_stub()
    self.testbed.init_channel_stub()

    if require_indexes:
        from google.appengine.tools import dev_appserver_index
        dev_appserver_index.SetupIndexes(None, None)

Alex已经用这些更改更新了github上的djangoappengine。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22902517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档