Python 通过测试运行具有多个实体组的事务时出错

Python 通过测试运行具有多个实体组的事务时出错,python,google-app-engine,nose,Python,Google App Engine,Nose,我正在使用GoogleAppEngine框架用Python2.7构建一个应用程序。 为了测试我的应用程序,我有几个测试,这些测试是通过使用nosegae插件的nosetests运行的。我使用以下命令运行它们: nosetests --with-gae --gae-lib-root=/usr/local/google_appengine/ -w . -w */test/ -v 在应用程序的模型层中,我需要运行几个数据库操作,这些操作会影响同一事务中的多个实体组。我通过使用db包的run_in_t

我正在使用GoogleAppEngine框架用Python2.7构建一个应用程序。 为了测试我的应用程序,我有几个测试,这些测试是通过使用nosegae插件的nosetests运行的。我使用以下命令运行它们:

nosetests --with-gae --gae-lib-root=/usr/local/google_appengine/ -w . -w */test/ -v
在应用程序的模型层中,我需要运行几个数据库操作,这些操作会影响同一事务中的多个实体组。我通过使用db包的run_in_transaction_options函数来实现这一点:

不幸的是,在运行测试套件时,我在尝试运行此类事务的测试用例中遇到以下错误:

BadRequestError:仅允许多个实体组上的事务 使用高复制数据存储

我在鼻测试中找不到任何可以启用HRD的标志


我想知道是否有可能通过鼻测试运行HRD,如果有,如何设置?

我强烈建议您从db切换到ndb,您可以使用

要模拟HRD,您可以从以下位置将此部分添加到测试的
设置
功能中:

# Create a consistency policy that will simulate the High Replication consistency model.
self.policy = datastore_stub_util.PseudoRandomHRConsistencyPolicy(probability=0)

# Initialize the datastore stub with this policy.
self.testbed.init_datastore_v3_stub(consistency_policy=self.policy)