有人可以解释如何设置dynamodb_mapper(与boto一起使用?)将ddbmock与sqlite后端一起用作Amazon DynamoDB - 替换功能测试目的吗?< / p>
现在,我已经尝试了“普通”boto并设法通过在本地启动ddbmock服务器并使用boto连接ddbmock(使用sqlite):
db = connect_boto_network(host='127.0.0.1', port=6543)
..然后我使用db对象对数据库进行所有操作。但是,dynamodb_mapper使用这种方式获取数据库连接:
conn = ConnectionBorg()
据我所知,它使用boto的默认方式连接(真正的)DynamoDB。所以基本上我想知道是否有一种(首选的?)方式让ConnectionBorg()与我的本地ddbmock服务器连接,就像我上面用boto一样?感谢您的任何建议。
答案 0 :(得分:3)
在库模式而不是服务器模式下:
import boto
from ddbmock import config
from ddbmock import connect_boto_patch
# switch to sqlite backend
config.STORAGE_ENGINE_NAME = 'sqlite'
# define the database path. defaults to 'dynamo.db'
config.STORAGE_SQLITE_FILE = '/tmp/my_database.sqlite'
# Wire-up boto and ddbmock together
db = connect_boto_patch()
通过boto对dynamodb服务的任何访问都将使用ddbmock。
如果您仍然希望我们在服务器模式下使用ddbmock,我会尝试在测试设置代码的真正开头更改ConnectionBorg._shared_state['_region']
:
ConnectionBorg._shared_state['_region'] = RegionInfo(name='ddbmock', endpoint="localhost:6543")
据我了解,在这些行之后通过任何ConnectionBorg
实例访问dynamodb将使用ddbmock入口点。
这就是说,我从未测试过它。我将确保ddbmock的作者对此进行更新。