Test coverage gap: run_command logic in the recent parity sweep is untested
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 58/100
Hướng nghiên cứu
Start with the run_command paths described for #451, #452, #447, #448, and #444, using tests/commands/test_create_site_users.py as the testing pattern. Mock the relevant server endpoint methods, invoke Command.run_command(args), and assert that the items passed to them contain the expected normalized or assigned attributes across the covered happy paths.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Several PRs in the current Classic-parity sweep add argparse-layer tests
but no coverage of the load-bearing logic in run_command where the
parsed args actually get applied to TSC items or normalized. This is a
common pattern across the sweep, not a single-PR issue, so recording
here as a follow-up rather than blocking those PRs.
Concrete gaps
#451 delete syntax normalization. run_command transforms
isinstance(args.workbook, str) -> args.name = args.workbook; args.workbook = True (and same for datasource). This is what makes both
delete Name --workbook and Classic delete --workbook Name produce
equivalent behavior. No test covers the transform; both syntaxes are
verified at the parser layer only. If someone refactors run_command
and drops the normalization, every parser test still passes but Classic
scripts break silently.
#452 editsite attribute application. run_command reads ten new
argparse fields onto SiteItem attributes with three separate patterns:
_str_to_bool coercion for the string-value flags, direct assignment
for the paired boolean flags, and inversion for disable_subscriptions
(from allow_subscriptions). The paired custom_subscription_email +
custom_subscription_email_enabled writes on --subscription-email
(where empty string flips _enabled off) also live in run_command.
None of this is exercised by a mocked server.sites.update call. A
future refactor could drop any of these assignments and no test would
catch it.
#447 creategroup --role. run_command sets
GroupItem.minimum_site_role = args.role before
server.groups.create. Not tested; someone could delete the assignment
and every parser test still passes.
#448 publish --description. run_command sets
new_item.description = args.description on the WorkbookItem or
DatasourceItem before publish. Not tested; same failure mode.
#444 --idp-configuration-id. run_command sets
user_obj.idp_configuration_id = args.idp_configuration_id on every
UserItem in the batch, and apply_cli_overrides clears any pre-existing
auth_setting when the IDP flag is passed. Only the
apply_cli_overrides helper is tested; nothing verifies the attribute
actually reaches the wire.
Suggested shape
Adopt a pattern like tests/commands/test_create_site_users.py uses:
mock the Session/server, mock server.<endpoint>.<method>, invoke
Command.run_command(args), assert the item passed to
server.<endpoint>.<method> has the expected attributes set. Not
required per-flag -- one test per PR covering the main happy path is
enough to lock in the wire-level behavior.
Not tracking here
- #451 bare
--workbookwith no value: parser accepts, run_command
errors out. Already covered at the parser layer; run_command's error
message is standard. - Command-level auth and session setup: shared across all commands and
tested elsewhere. - #455 createsiteusers: already has run_command coverage
(test_create_site_users.py); the gap is elsewhere.
- Ngôn ngữ chính
- Python
- Star
- 52
- Fork
- 17
- Merge trung bình
- 5 ngày 20 giờ
- Pull request đã merge (30 ngày)
- 2
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của tableau/tabcmd
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
-
feat: publish missing --description flag from tabcmd ClassicCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
feat: creategroup missing --role flag from tabcmd ClassicCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Tất cả issue của tableau/tabcmd
Issue tương tự
-
fix formatting of the sample database page of the docsCó thể đã có người làm @Aaqibhafeezkhan đã nhận hôm nay. Đang mởdocumentation good first issue help wanted
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
chaoss/CollectOSS#544 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area/plugin good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
kestra-io/plugin-soda#137 ·
-
Độ khó 2/5 Nửa ngày Mức phù hợp với người mới 62/100
ibm-granite/granite.build#504 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
`LazyFrameRemote` and `ExecuteRemote` sinks do not accept `Path`, like `LazyFrame` sinks do.Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày