)]}'
{"id":"openstack%2Fpython-ironicclient~985249","triplet_id":"openstack%2Fpython-ironicclient~master~I4099efb0df5b18c48f1407365b39d6fcce75668f","project":"openstack/python-ironicclient","branch":"master","attention_set":{"38828":{"account":{"_account_id":38828,"name":"Karan Anand","display_name":"Karan","email":"anandkarancompsci@gmail.com","username":"anandkaranubc"},"last_update":"2026-04-21 18:27:25.000000000","reason":"A robot voted negatively on a label"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I4099efb0df5b18c48f1407365b39d6fcce75668f","subject":"Stop ignoring arg-type in tests","status":"NEW","created":"2026-04-19 04:15:53.000000000","updated":"2026-04-21 18:27:25.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"febc659c85ed59e348de5a1491740f3c616f7400","_number":985249,"virtual_id_number":985249,"owner":{"_account_id":38828,"name":"Karan Anand","display_name":"Karan","email":"anandkarancompsci@gmail.com","username":"anandkaranubc"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":-1,"date":"2026-04-19 04:44:42.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":-1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Do Not Backport"," 0":"Backport Review Needed","+1":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-04-19 04:44:42.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"39b0b19a56d44c45cc03056f5b14405484252a44","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":38828,"name":"Karan Anand","display_name":"Karan","email":"anandkarancompsci@gmail.com","username":"anandkaranubc"},"date":"2026-04-19 04:15:53.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"af2168d1c90b5f21cd8b9eda1018980528053bee","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-19 04:44:42.000000000","message":"Patch Set 1: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/e8058f89863445c0b126b45dfebfb934\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/63c30bb7825a4856afa3e03775ef2355 : POST_FAILURE in 2m 29s\n- requirements-check https://zuul.opendev.org/t/openstack/build/8f93bd3480b94dbe93c2324ffba2c35e : POST_FAILURE in 1m 49s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/27e90c736f3e4c3aaadad95672f331be : POST_FAILURE in 3m 03s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/40ee920566884e83868b614cef3f30ff : POST_FAILURE in 2m 39s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/4c171141838f45939f6428f4254eb9de : POST_FAILURE in 4m 43s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/7fbaf04b291e4eada80a753b57f057a9 : POST_FAILURE in 2m 30s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/f05147e3bb6d483683405f62fa5ae18b : POST_FAILURE in 4m 00s (non-voting)\n- openstackclient-check-plugins https://zuul.opendev.org/t/openstack/build/353662fd737547569c56a73931458a60 : POST_FAILURE in 4m 00s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/48c7093916414acdac048f495f224ee5 : POST_FAILURE in 4m 01s\n- ironicclient-tempest https://zuul.opendev.org/t/openstack/build/c532da081ac947f6b87dd1dd75a8ca3c : POST_FAILURE in 26m 57s\n- ironicclient-tox-codespell https://zuul.opendev.org/t/openstack/build/435d55959a864e61ae2d0f8f8c36d882 : POST_FAILURE in 2m 22s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"a106b7e76ecce14040dbdcfabed20e787259c58c","author":{"_account_id":38828,"name":"Karan Anand","display_name":"Karan","email":"anandkarancompsci@gmail.com","username":"anandkaranubc"},"date":"2026-04-21 17:43:55.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"febc659c85ed59e348de5a1491740f3c616f7400","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-21 18:27:25.000000000","message":"Patch Set 1:\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/9372c3fa18924a26a44733e02677f19d\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/7f56dc2fd4344479b46a24a966d8f31c : SUCCESS in 2m 34s\n- requirements-check https://zuul.opendev.org/t/openstack/build/066b421d1b78497b960c3eb6d4f6fc79 : SUCCESS in 2m 28s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/81043bd175e44d1e825bc153c25f794a : SUCCESS in 4m 09s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/566e8fd1bf6745c987c9cd3d81d02ec3 : SUCCESS in 3m 24s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/32c11aa340be48069ee07a8a4515f105 : SUCCESS in 4m 03s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/f557896672b74c41b06baf22c14f724d : SUCCESS in 3m 37s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/162b9761b566464c8925173d33cdb21d : SUCCESS in 6m 04s (non-voting)\n- openstackclient-check-plugins https://zuul.opendev.org/t/openstack/build/45fb22c237d545ad80473a97dca0fd23 : SUCCESS in 7m 19s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/35b6f5418e1140e082c1a67ea8a9f3c1 : FAILURE in 7m 20s\n- ironicclient-tempest https://zuul.opendev.org/t/openstack/build/0d1b4d5ae6d348fc8950b14b23e09399 : SUCCESS in 41m 24s\n- ironicclient-tox-codespell https://zuul.opendev.org/t/openstack/build/6489cd0d079541a095c2ba23d1d314f9 : SUCCESS in 4m 37s (non-voting)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"e74f4a78f768682c07108659cf1910a3bbc09bb0","revisions":{"e74f4a78f768682c07108659cf1910a3bbc09bb0":{"kind":"REWORK","_number":1,"created":"2026-04-19 04:15:53.000000000","uploader":{"_account_id":38828,"name":"Karan Anand","display_name":"Karan","email":"anandkarancompsci@gmail.com","username":"anandkaranubc"},"ref":"refs/changes/49/985249/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/python-ironicclient","ref":"refs/changes/49/985249/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/python-ironicclient refs/changes/49/985249/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/python-ironicclient refs/changes/49/985249/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/python-ironicclient refs/changes/49/985249/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/python-ironicclient refs/changes/49/985249/1"}}},"commit":{"parents":[{"commit":"cdd1e37b8a4da3125252d9414ca53f72ea95d769","subject":"Stop ignoring var-annotated in tests","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-ironicclient/commit/cdd1e37b8a4da3125252d9414ca53f72ea95d769"}]}],"author":{"name":"Karan Anand","email":"anandkarancompsci@gmail.com","date":"2026-04-19 04:13:25.000000000","tz":-240},"committer":{"name":"Karan Anand","email":"anandkarancompsci@gmail.com","date":"2026-04-19 04:15:42.000000000","tz":-240},"subject":"Stop ignoring arg-type in tests","message":"Stop ignoring arg-type in tests\n\nMost arg-type errors in the test suite came from passing fake mocks\nwhere the production signature expects the real type — `FakeAPI` for\n`http.SessionClient`, `FakeResponse` for `requests.Response`,\n`FakeApp` for `cliff.app.App`, `FakeClientManager` for `ClientManager`\n— along with dict/list invariance on module-level fixtures expanded\nvia `**kwargs`.\n\nFix them with the same fake-real boundary pattern already used in the\nchain:\n\n- Cast at construction sites: `Manager(cast(http.SessionClient, self.api))`,\n  `from_response(cast(requests.Response, FakeResponse(...)))`, etc.\n- Re-type `app: App` once on `TestBaremetal` with `# type: ignore[assignment]`\n  so the ~115 cliff command call sites don\u0027t each need a cast.\n- Annotate module-level fixtures (`NODE1`, `fake_responses*`, etc.) as\n  `dict[str, Any]` so `**fixture` expansion type-checks.\n- Widen helper signatures (`_validate_obj`, `_validate_list`) from\n  invariant `dict`/`list` to covariant `Mapping`/`Sequence`.\n- Wrap single-dict `patch\u003d` arguments in at to match `_update`\u0027s\n  `list[dict[str, Any]] | None` signature.\n- Preserve intentional bad-input tests with explicit casts\n  (`cast(int, \"2\")`, `cast(str, 1)`, `cast(bool, \u0027foo\u0027)`).\n- Widen `mockSessionResponse(content\u003d...)` to `str | bytes | None`.\n\nWith every test file fully typed under `strict \u003d true`, drop both\n`tool.mypy.overrides` blocks for `ironicclient.tests.*` entirely.\n\nChange-Id: I4099efb0df5b18c48f1407365b39d6fcce75668f\nSigned-off-by: Karan Anand \u003canandkarancompsci@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-ironicclient/commit/e74f4a78f768682c07108659cf1910a3bbc09bb0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/python-ironicclient/commit/e74f4a78f768682c07108659cf1910a3bbc09bb0"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"},{"label":"Backport-Candidate","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Backport-Candidate","description":"Backport candidate status","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
