我只是对功能测试有所了解,没有使用与dev_appserver相同的设置。我目前正在使用require_indexes运行我的dev_appserver(非rel)。

如何强制我的测试床使用相同的设置?

我尝试使用SetupIndexes,但是它没有“要求”它们在我的index.yaml中定义。我没有正确的设置,因此我可以执行任何查询。



clz.testbed = Testbed()
clz.testbed.activate()
clz.testbed.init_memcache_stub()
clz.testbed.init_taskqueue_stub()
clz.testbed.init_urlfetch_stub()
clz.testbed.init_datastore_v3_stub(use_sqlite=True, datastore_file=somepath)
SetupIndexes('','')

model.objects().filter(x=1, y=2.....) #will work regardless of index defined.


但是当查询在服务器上执行时,我得到了


  NeedIndexError:此查询需要一个未定义的复合索引。您必须在应用程序根目录中更新index.yaml文件。
  以下索引是所需的最低索引:

最佳答案

尝试将{“ require_indexes”:True}添加为init_datastore_v3_stub()的关键字参数

您可以浏览(并逐步浏览)SDK代码,以查看该参数最终如何传递到数据存储区存根中。

关于python - Google App Engine需要索引进行测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11622683/

10-10 10:19