【问题标题】:require_indexes when unit testing on djangoappengine在 djangoappengine 上进行单元测试时需要索引
【发布时间】:2014-05-19 02:40:45
【问题描述】:

我正在尝试减少和清理 GAE 数据存储上的数据存储索引,因此我设置了 require_indexes=True。我删除了所有索引并运行了我的单元测试,但是测试通过没有问题,并且 GAE SDK 没有对 index.yaml 进行任何更改。为什么会通过??????

【问题讨论】:

    标签: django-nonrel djangoappengine


    【解决方案1】:

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

    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 Burgel 已在 github 上更新了 djangoappengine 以进行这些更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多