)]}'
{"id":"openstack%2Fceilometer~998544","triplet_id":"openstack%2Fceilometer~master~I9893c6aa96fab6def69ac552312286227d2f4856","project":"openstack/ceilometer","branch":"master","topic":"ceilometer_use_openstack_sdk","hashtags":[],"change_id":"I9893c6aa96fab6def69ac552312286227d2f4856","subject":"Refactor test_novaclient to use centralized fakes module","status":"NEW","created":"2026-07-23 17:13:54.000000000","updated":"2026-08-06 21:02:43.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"5d1eda98d798213ccafcb0e131d69e7b9a763adf","_number":998544,"virtual_id_number":998544,"owner":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-08-06 21:02:43.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}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-07-23 17:29:59.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":"4617c6c15e2cd178d38a84f50809728dd46904d4","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-07-23 17:13:54.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"b126e5a98e4af00e936ebf050a1449e4e720ee05","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-23 17:29:59.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/265e3e3c612245c0bef68d944b51efb7\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/1155b1fc108d446f9512183f9c99308b : SUCCESS in 8m 39s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4b13ef50801641248f54c0684db613d5 : SUCCESS in 3m 41s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/086c4522040b4dae8b76c0c76ecdb445 : SUCCESS in 4m 27s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/0f5a039e689a4dbeb659eb8b05de1626 : SUCCESS in 5m 06s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/b854c1e31e994c5c9ce85cd83501ed0e : SUCCESS in 8m 52s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/16b9df13cfdf4bc1adadc13143b79d1c : SUCCESS in 7m 45s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0bddf3a1e00a4b91b1b8d5f58837071c : SUCCESS in 6m 09s","accounts_in_message":[],"_revision_number":1},{"id":"ec32137acc9c8ed41b11347d9f6bf91509a29ceb","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-07-23 17:35:49.000000000","message":"Topic set to ceilometer_use_openstack_sdk","accounts_in_message":[],"_revision_number":1},{"id":"154b4f52efc136649caa19f47e4f910742fd5472","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-07-27 20:53:52.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"504dfbbf3f5b17ccfb2d724dd55a7eef184a0bd3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-27 21:14:54.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c5b26991a6c24dd1b05b2f4d7bfb8233\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/405d294bf57b4b43ad21af7ddb6e7ff8 : SUCCESS in 8m 10s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2b42c065461141d2ac8f6e1afa7d0f58 : SUCCESS in 3m 47s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/5ac61eba7acb41a3823963df9518d3ee : SUCCESS in 5m 48s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/c58d81552c9d42cf98b76413007fe6b9 : SUCCESS in 5m 10s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/4d8f26f731c34c82861d2caeba69ed02 : SUCCESS in 7m 19s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1b5705d7ef9e4bd19a00396c0e92c8f8 : SUCCESS in 8m 16s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/45f7b9ee69724c89ba61d6fb9380a91b : SUCCESS in 4m 53s","accounts_in_message":[],"_revision_number":2},{"id":"a07b969d8f2bf008c63c7cef5ca7655e88e2e570","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-08-04 20:58:17.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"f5a0a9269c7ece1fe77f1f879cbd6e21b0651c36","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-04 21:11:45.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/cc548d26062b40a9b8ec9a9f7379c935\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/536e23757f0d476389a99733d48b26bb : SUCCESS in 6m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f58a1432f31c4c3bb75e9a43427ac63f : SUCCESS in 5m 39s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/0c6a8b9f528840688a6bab31242aaf72 : SUCCESS in 4m 27s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/f6ba379bdbc744278c7f7a147a7a3244 : SUCCESS in 3m 51s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/1212026ad0fa46b8a4e2a970278a6e73 : SUCCESS in 11m 02s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/19980d969257420eb54865301f44a304 : SUCCESS in 7m 40s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/3563d2a52bcf40678205df3526b290b7 : SUCCESS in 6m 17s","accounts_in_message":[],"_revision_number":3},{"id":"0fdc4f635d1c2d42275dac851580299bf4660e16","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-08-06 20:36:54.000000000","message":"Uploaded patch set 4: Patch Set 3 was rebased.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"5d1eda98d798213ccafcb0e131d69e7b9a763adf","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-06 21:02:43.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0e7d8eaf5c0a4a5286785eae19dff9fc\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/8c782f1442f34d57b0a18b7a639b8538 : SUCCESS in 7m 13s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2c58e583822e47b092bf51024a3f57e6 : SUCCESS in 3m 46s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/b64873091480471795437b5aac831bd7 : SUCCESS in 5m 25s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/11596fd905c44b4c822471704e7769ad : SUCCESS in 3m 02s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/cb809bcf7b38413eae15ee8ad71dc370 : SUCCESS in 4m 36s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4b2a40d1a9934bd4b6ccb2dbb413d3d3 : SUCCESS in 10m 14s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/08baa6de20bc4cc396695fe41f570089 : SUCCESS in 6m 59s","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"bbdf8a904ad418f5ceec89853629469459dd00c5","revisions":{"9d62aa29fe1878055365fd2af6af26e3d3736d75":{"kind":"REWORK","_number":1,"created":"2026-07-23 17:13:54.000000000","uploader":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"ref":"refs/changes/44/998544/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometer","ref":"refs/changes/44/998544/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/44/998544/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/44/998544/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/44/998544/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometer refs/changes/44/998544/1"}}},"commit":{"parents":[{"commit":"aa648481a7269829583634fdfcb6bf01dffb0b2f","subject":"Add FakeNovaClient fixture for consistent nova test infrastructure","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/aa648481a7269829583634fdfcb6bf01dffb0b2f"}]}],"author":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-07-17 20:22:28.000000000","tz":-240},"committer":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-07-23 17:12:53.000000000","tz":-240},"subject":"Refactor test_novaclient to use centralized fakes module","message":"Refactor test_novaclient to use centralized fakes module\n\nReplace inline mock methods with centralized test fixtures from the\nfakes module for improved maintainability and consistency.\n\nChanges:\n- Remove inline fake methods (fake_flavors_get, fake_servers_list, etc.)\n  and replace with fakes module constants (SERVER_WITH_HOST,\n  SERVER_TINY_FLAVOR, etc.)\n- Update setup_connection() to reinitialize self.nv after connection\n  setup, ensuring nova client uses the fake connection\n- Replace MagicMock-based test doubles with proper SDK Server objects\n  that include .to_dict() methods and realistic attributes\n- Update test assertions to verify calls on self.fake_nova.flavors.get\n  and self.fake_conn.image.get_image instead of mocked methods\n- Add explicit tests for NotFound exception handling in\n  test_with_flavor_handles_not_found and test_with_image_handles_not_found\n\nBenefits:\n- Fixtures defined once in fakes module, reused across all tests\n- Tests use real SDK object types instead of MagicMocks, catching\n  attribute/method mismatches earlier\n- Reduced test code (~60 lines removed from inline mocking)\n- Better alignment with FakeSDKImageClient and FakeNovaClient\n  infrastructure being built for SDK migration\n- Easier to maintain - fixture updates propagate to all consumers\n\nThis refactoring prepares for the novaclient to openstacksdk migration\nby establishing a consistent fake infrastructure that mirrors SDK\nobject behavior.\n\nChange-Id: I9893c6aa96fab6def69ac552312286227d2f4856\nSigned-off-by: Emma Foley \u003cefoley@redhat.com\u003e\nAssisted-By: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/9d62aa29fe1878055365fd2af6af26e3d3736d75"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/9d62aa29fe1878055365fd2af6af26e3d3736d75"}]},"branch":"refs/heads/master"},"2cf014aff790f9203b3fef5b959465e981f0ca7d":{"kind":"REWORK","_number":2,"created":"2026-07-27 20:53:52.000000000","uploader":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"ref":"refs/changes/44/998544/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometer","ref":"refs/changes/44/998544/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/44/998544/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/44/998544/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/44/998544/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometer refs/changes/44/998544/2"}}},"commit":{"parents":[{"commit":"a7b582061e098b10f72b23daf2721aba998e692c","subject":"[WIP] Add FakeNovaClient fixture for consistent nova test infrastructure","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/a7b582061e098b10f72b23daf2721aba998e692c"}]}],"author":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-07-17 20:22:28.000000000","tz":-240},"committer":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-07-27 19:38:35.000000000","tz":-240},"subject":"[WIP] Refactor test_novaclient to use centralized fakes module","message":"[WIP] Refactor test_novaclient to use centralized fakes module\n\nReplace inline mock methods with centralized test fixtures from the\nfakes module for improved maintainability and consistency.\n\nChanges:\n- Remove inline fake methods (fake_flavors_get, fake_servers_list, etc.)\n  and replace with fakes module constants (SERVER_WITH_HOST,\n  SERVER_TINY_FLAVOR, etc.)\n- Update setup_connection() to reinitialize self.nv after connection\n  setup, ensuring nova client uses the fake connection\n- Replace MagicMock-based test doubles with proper novaclient Server objects\n  that include .to_dict() methods and realistic attributes\n- Update test assertions to verify calls on self.fake_nova.flavors.get\n  and self.fake_conn.image.get_image instead of mocked methods\n- Add explicit tests for NotFound exception handling in\n  test_with_flavor_handles_not_found and test_with_image_handles_not_found\n\nBenefits:\n- Fixtures defined once in fakes module, reused across all tests\n- Tests use real novaclient object types instead of MagicMocks, catching\n  attribute/method mismatches earlier\n- Reduced test code (~60 lines removed from inline mocking)\n- Better alignment with FakeSDKImageClient and FakeNovaClient\n  infrastructure being built for SDK migration\n- Easier to maintain - fixture updates propagate to all consumers\n\nThis refactoring prepares for the novaclient to openstacksdk migration\nby establishing a consistent fake infrastructure that mirrors SDK\nobject behavior.\n\nChange-Id: I9893c6aa96fab6def69ac552312286227d2f4856\nSigned-off-by: Emma Foley \u003cefoley@redhat.com\u003e\nAssisted-By: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/2cf014aff790f9203b3fef5b959465e981f0ca7d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/2cf014aff790f9203b3fef5b959465e981f0ca7d"}]},"branch":"refs/heads/master"},"2dab84f6fd25d24dbdd82912991b9d4d17e683c4":{"kind":"REWORK","_number":3,"created":"2026-08-04 20:58:17.000000000","uploader":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"ref":"refs/changes/44/998544/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometer","ref":"refs/changes/44/998544/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/44/998544/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/44/998544/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/44/998544/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometer refs/changes/44/998544/3"}}},"commit":{"parents":[{"commit":"e232825a4e8a31fecf9d8a1cb2d1c761fd5ce211","subject":"[WIP] Add FakeNovaClient fixture for consistent nova test infrastructure","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/e232825a4e8a31fecf9d8a1cb2d1c761fd5ce211"}]}],"author":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-08-04 20:47:39.000000000","tz":-240},"committer":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-08-04 20:49:32.000000000","tz":-240},"subject":"Refactor test_novaclient to use centralized fakes module","message":"Refactor test_novaclient to use centralized fakes module\n\nReplace inline mock methods with centralized test fixtures from the\nfakes module for improved maintainability and consistency.\n\nChanges:\n- Remove inline fake methods (fake_flavors_get, fake_servers_list, etc.)\n  and replace with fakes module constants (SERVER_WITH_HOST,\n  SERVER_TINY_FLAVOR, etc.)\n- Update setup_connection() to reinitialize self.nv after connection\n  setup, ensuring nova client uses the fake connection\n- Replace MagicMock-based test doubles with proper novaclient Server objects\n  that include .to_dict() methods and realistic attributes\n- Update test assertions to verify calls on self.fake_nova.flavors.get\n  and self.fake_conn.image.get_image instead of mocked methods\n- Add explicit tests for NotFound exception handling in\n  test_with_flavor_handles_not_found and test_with_image_handles_not_found\n\nBenefits:\n- Fixtures defined once in fakes module, reused across all tests\n- Tests use real novaclient object types instead of MagicMocks, catching\n  attribute/method mismatches earlier\n- Reduced test code (~60 lines removed from inline mocking)\n- Better alignment with FakeSDKImageClient and FakeNovaClient\n  infrastructure being built for SDK migration\n- Easier to maintain - fixture updates propagate to all consumers\n\nThis refactoring prepares for the novaclient to openstacksdk migration\nby establishing a consistent fake infrastructure that mirrors SDK\nobject behavior.\n\nChange-Id: I9893c6aa96fab6def69ac552312286227d2f4856\nSigned-off-by: Emma Foley \u003cefoley@redhat.com\u003e\nAssisted-By: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/2dab84f6fd25d24dbdd82912991b9d4d17e683c4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/2dab84f6fd25d24dbdd82912991b9d4d17e683c4"}]},"branch":"refs/heads/master"},"bbdf8a904ad418f5ceec89853629469459dd00c5":{"kind":"TRIVIAL_REBASE","_number":4,"created":"2026-08-06 20:36:54.000000000","uploader":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"ref":"refs/changes/44/998544/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometer","ref":"refs/changes/44/998544/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/44/998544/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/44/998544/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/44/998544/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometer refs/changes/44/998544/4"}}},"commit":{"parents":[{"commit":"bbf02a3db9680ee30aaad181815276f3fc0b998e","subject":"[WIP] Add FakeNovaClient fixture for consistent nova test infrastructure","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/bbf02a3db9680ee30aaad181815276f3fc0b998e"}]}],"author":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-08-04 20:47:39.000000000","tz":-240},"committer":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-08-06 20:36:10.000000000","tz":-240},"subject":"Refactor test_novaclient to use centralized fakes module","message":"Refactor test_novaclient to use centralized fakes module\n\nReplace inline mock methods with centralized test fixtures from the\nfakes module for improved maintainability and consistency.\n\nChanges:\n- Remove inline fake methods (fake_flavors_get, fake_servers_list, etc.)\n  and replace with fakes module constants (SERVER_WITH_HOST,\n  SERVER_TINY_FLAVOR, etc.)\n- Update setup_connection() to reinitialize self.nv after connection\n  setup, ensuring nova client uses the fake connection\n- Replace MagicMock-based test doubles with proper novaclient Server objects\n  that include .to_dict() methods and realistic attributes\n- Update test assertions to verify calls on self.fake_nova.flavors.get\n  and self.fake_conn.image.get_image instead of mocked methods\n- Add explicit tests for NotFound exception handling in\n  test_with_flavor_handles_not_found and test_with_image_handles_not_found\n\nBenefits:\n- Fixtures defined once in fakes module, reused across all tests\n- Tests use real novaclient object types instead of MagicMocks, catching\n  attribute/method mismatches earlier\n- Reduced test code (~60 lines removed from inline mocking)\n- Better alignment with FakeSDKImageClient and FakeNovaClient\n  infrastructure being built for SDK migration\n- Easier to maintain - fixture updates propagate to all consumers\n\nThis refactoring prepares for the novaclient to openstacksdk migration\nby establishing a consistent fake infrastructure that mirrors SDK\nobject behavior.\n\nChange-Id: I9893c6aa96fab6def69ac552312286227d2f4856\nSigned-off-by: Emma Foley \u003cefoley@redhat.com\u003e\nAssisted-By: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/bbdf8a904ad418f5ceec89853629469459dd00c5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/bbdf8a904ad418f5ceec89853629469459dd00c5"}]},"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"}]}],"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":"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":""}}}]}
