Unchecked multi-value query parameters are sent as a single tuple string
还没有人认领这个 Issue。
评估
调研方向
先从 Query.parameters 和 _build_url 开始,然后检查 VariableQuery.instance_format 以了解相关的序列行为。使用已解析的 URL 和已准备的 Requests 运行回归用例和对照用例,随后使用 VCR record_mode='none' 运行完整的 148 项测试套件;当元组值使用重复的查询键,且现有的列表、标量、分页和专用方法行为仍然通过测试时,即表示完成。
由索引模型根据 Issue 内容生成。
描述
Reproduction
On develop at 9f7648ccb925b9c0eb50241e35f15d6454e89505, the unchecked multi-value path in Query.parameters stores a tuple under a key ending in [], but _build_url only expands lists.
from cmr import CollectionQuery
query = CollectionQuery().parameters(data_center=["FIRST", "SECOND"])
print(query._build_url())
The query string is data_center[]=('FIRST', 'SECOND'). It should be data_center[]=FIRST&data_center[]=SECOND. Singleton and empty iterables are also serialized as tuple representations. The same base-class behavior affects every query type and reaches requests made by results, get, and hits.
VariableQuery.instance_format also accepts sequences, but a tuple argument has the same problem without the existing array suffix.
Expected behavior
Expand both list and tuple parameter values into repeated query keys, without adding a second [] to keys that already have one. Keep the existing stored parameter representation, dedicated-method tuple unpacking, scalar handling, and pagination behavior.
Nineteen new regression/control cases use parsed URLs and real Requests prepared requests with only the transport replaced. Seventeen fail on unchanged code, while the existing list/scalar controls pass. The focused fix passes all 148 tests, with existing VCR cassettes replayed in record_mode='none' so no live CMR requests are made.
- 主要语言
- Python
- 星标
- 29
- 派生
- 32
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
我们还没有检查这个项目的环境配置文件。先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
nasa/python_cmr 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 88/100
nasa/python_cmr#122 ·
-
难度 2/5 1-3 小时 新手友好度 78/100
nasa/python_cmr#108 ·
-
难度 3/5 1-2 天 新手友好度 52/100
nasa/python_cmr#104 ·
-
enhancement
难度 3/5 1-2 天 新手友好度 38/100
nasa/python_cmr#95 · 1 条评论 ·
-
enhancement
难度 3/5 1-2 天 新手友好度 45/100
nasa/python_cmr#94 ·
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 78/100
solana-foundation/pay-kit#341 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 92/100
EleutherAI/lm-evaluation-harness#4243 ·
维护者通常 1 天内回复
-
area: dashboard bug perceived difficulty: 3
难度 2/5 1-3 小时 新手友好度 88/100
Nitjsefnie-Harness-Commons/daedalus#1179 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 88/100
cusp-ai-oss/tojax#17 ·
-
难度 1/5 1-3 小时 新手友好度 88/100