filter_expression 中的属性在使用 moto 模拟 DynamoDB 时不起作用
Attribute between in filter_expression does not work when mocking DynamoDB using moto
我的测试设置如下所示:
@mock_dynamodb2
def test_name(self, dynamodb_connection):
create_table(dynamodb_connection)
table = dynamodb_connection.Table(os.environ["table"])
table.put_item(Item=create_item())
items = get_items()
存储了以下记录:
在模拟环境中本地调用以下查询时,结果为 returned:
get_table("table").query(
IndexName="org-index",
KeyConditionExpression=Key("org").eq(org),
FilterExpression=Attr("status").gte(0) & Attr("status").lte(10)
AWS 生产中的相同代码将 return 0 个结果。将查询改为使用 between
属性 (Attr("status").between(0, 10)
) 可以在云中的 DynamoDB 上工作,但 不会 在本地工作。我不想通过检查将测试与产品代码合并。有什么我忽略的吗?
between(0, 10)
存在错误,其中 0 被视为无值。
从 moto >= 2.2.14.dev25.
开始,这个问题刚刚得到修复
我的测试设置如下所示:
@mock_dynamodb2
def test_name(self, dynamodb_connection):
create_table(dynamodb_connection)
table = dynamodb_connection.Table(os.environ["table"])
table.put_item(Item=create_item())
items = get_items()
存储了以下记录:
在模拟环境中本地调用以下查询时,结果为 returned:
get_table("table").query(
IndexName="org-index",
KeyConditionExpression=Key("org").eq(org),
FilterExpression=Attr("status").gte(0) & Attr("status").lte(10)
AWS 生产中的相同代码将 return 0 个结果。将查询改为使用 between
属性 (Attr("status").between(0, 10)
) 可以在云中的 DynamoDB 上工作,但 不会 在本地工作。我不想通过检查将测试与产品代码合并。有什么我忽略的吗?
between(0, 10)
存在错误,其中 0 被视为无值。
从 moto >= 2.2.14.dev25.