)]}'
{"id":"openstack%2Foslo.utils~983867","triplet_id":"openstack%2Foslo.utils~master~I576f4e8ca08a299567d292bb82d7ca8c66d4654a","project":"openstack/oslo.utils","branch":"master","attention_set":{"15334":{"account":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"last_update":"2026-05-12 15:07:35.000000000","reason":"Vote got outdated and was removed: Code-Review-1"},"28522":{"account":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"last_update":"2026-05-12 16:00:45.000000000","reason":"A robot voted negatively on a label"}},"removed_from_attention_set":{"31245":{"account":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"last_update":"2026-05-16 14:18:01.000000000","reason":"\u003cGERRIT_ACCOUNT_31245\u003e replied on the change","reason_account":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"}}},"hashtags":[],"change_id":"I576f4e8ca08a299567d292bb82d7ca8c66d4654a","subject":"Refactor TimeFixture to use unittest.mock","status":"NEW","created":"2026-04-09 13:32:09.000000000","updated":"2026-05-16 14:18:01.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":4,"unresolved_comment_count":1,"has_review_started":true,"meta_rev_id":"1fa6ea32e91f65395af522c60fa1c317dc67d189","_number":983867,"virtual_id_number":983867,"owner":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-05-13 10:25:13.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"}],"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":{"approved":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2026-05-16 14:18:01.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"}],"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":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"}],"values":{"-2":"Do Not Backport","-1":"Not A Backport Candidate"," 0":"Backport Review Needed","+1":"Proposed Backport","+2":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-04-09 15:30:50.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"},{"updated":"2026-04-16 13:27:33.000000000","updated_by":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"reviewer":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"state":"REVIEWER"},{"updated":"2026-05-08 16:38:06.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"CC"},{"updated":"2026-05-08 16:39:59.000000000","updated_by":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"reviewer":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"state":"REVIEWER"}],"messages":[{"id":"9e647d8fd2f1777c53b07840fdfa019fadb3370c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"date":"2026-04-09 13:32:09.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"9a5e9df1266a8d1172f26fc8eb83e6aa96531b30","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-09 15:30:50.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/df33badc6803436e88bfbc5674ef08ca\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/0efa4eb4eea345f481d9fd1d8b7ab388 : SUCCESS in 1h 49m 35s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/86e7072fffc94fbc9d5120b00d8ab247 : SUCCESS in 3m 57s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ba11c32330bf4eb886094452b81d633d : FAILURE in 3m 31s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/703ecc69ba47448bb836e20b9f12133f : SUCCESS in 3m 35s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/a64dbbed11a44075ad4f310f628f82bd : SUCCESS in 4m 26s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/81213090810d487c948db9fcba1e2be8 : SUCCESS in 7m 30s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9425d48354c34047bcd7bb1fd2093bbd : SUCCESS in 3m 29s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/ebbcb51187a04192a9a373289ea50b91 : SUCCESS in 2m 48s","accounts_in_message":[],"_revision_number":1},{"id":"9af75c54d14a6f62cd3aaaf300c419fe4368cd20","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"date":"2026-04-14 07:45:12.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"05711bc3a888b6e2a14b223922e2f18f1021f2c2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-14 08:46:05.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/057aed93943b48a4970506fa6a7af1f5\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/3fad246135294ecba13341da91b28435 : SUCCESS in 56m 44s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/3cfc102e2959479494ea85a219431730 : SUCCESS in 10m 12s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7c1c4585525e4e69adbb88949b854db1 : SUCCESS in 5m 37s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/325fd66306f2430bb24f9e5944dd019b : SUCCESS in 4m 29s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/60cb59505bf44db3bc0977b95b411d5a : SUCCESS in 3m 08s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/36191dbf7dfc4577bc7eaddfe832809b : SUCCESS in 6m 33s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/46a3a8e46e234a8888ac9a6b2d442209 : SUCCESS in 3m 00s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e953b9e9f07a47d5ba97ff2aac1b8b4c : SUCCESS in 2m 02s","accounts_in_message":[],"_revision_number":2},{"id":"28ca55a595bf4f9cb62c09d41c982ea6d0f022cd","author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"date":"2026-04-16 13:27:33.000000000","message":"Patch Set 2: Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"049a92497c836a302c827cf0123f0bdaaa160463","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-05-08 16:38:06.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"7977687fb39a14bf9f84450f80379890e89d532c","author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"date":"2026-05-08 16:39:59.000000000","message":"Patch Set 2: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"56f7fe2ea8030e23b7810a054b5760742e9ee541","author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"date":"2026-05-12 15:01:43.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"5cc5bbffb7c7300b8cf0baa562e00ce03a45cf72","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"date":"2026-05-12 15:07:35.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Code-Review+2, Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"dbd319db67bd52ac3ad3d0a6c12f58c99f0977e9","author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"date":"2026-05-12 15:08:02.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"7ce6baf4daa5e1b6ab82dd15b93cf50060c1ed7b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-12 16:00:45.000000000","message":"Patch Set 3: 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/9e1e172aaae049858fa12474353db75b\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/42f16ac0808b4f00bf4b28e3574b244e : SUCCESS in 50m 44s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/2ee128ebb6394877916a05a153f5144d : SUCCESS in 10m 24s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6635d405a78a4e67a97779f3a6886733 : FAILURE in 3m 38s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/3f19750aca0e491eb2d277735d172a23 : SUCCESS in 4m 04s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/49f6f87a798247f5b4552dd7e1e0955e : SUCCESS in 4m 21s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7939d81f2f9e4602b4b2b92600358274 : SUCCESS in 4m 14s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/265bcd6ba7a846ac909e40a3f98aec30 : SUCCESS in 3m 15s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/29146a2a7a2f41109ac9faaabe47f5bd : SUCCESS in 2m 00s","accounts_in_message":[],"_revision_number":3},{"id":"655e83954e962b10e20684785c3adc34008f2fde","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"date":"2026-05-13 08:21:39.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"569c4af7773940f96688cb34c3f18edcb5310608","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-13 10:25:13.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d312bce3f10f4c05917a1e4ceddcf3b1\n\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/91f92a072c0d48d585a0c623fcb2716d : SUCCESS in 1h 58m 16s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/f4baeba9b3d848729bbefec4ff57ca9d : SUCCESS in 6m 50s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fa232a5d0c9347e59e58d52a345b0ad6 : SUCCESS in 4m 12s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/c0c3f6e4320d4681aef3d31e821bbddf : SUCCESS in 4m 17s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e3b2e6b3ec164638b84bc74fffcfa19e : SUCCESS in 4m 45s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/ab47bd335b784f8f985c89c734edfc99 : SUCCESS in 7m 05s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5a2fa32295b5465e84b8cfaff02aa97a : SUCCESS in 2m 06s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/eb1e496eacd2419395943e0b82d37a48 : SUCCESS in 3m 36s","accounts_in_message":[],"_revision_number":4},{"id":"1fa6ea32e91f65395af522c60fa1c317dc67d189","author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"date":"2026-05-16 14:18:01.000000000","message":"Patch Set 4: Code-Review+2","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"da53be5965ae376b373b552cfb46f83cbd6f808c","revisions":{"6ac9567e804cc86febd3deee80122e77312d7ada":{"kind":"REWORK","_number":1,"created":"2026-04-09 13:32:09.000000000","uploader":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"ref":"refs/changes/67/983867/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.utils","ref":"refs/changes/67/983867/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/67/983867/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/67/983867/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/67/983867/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.utils refs/changes/67/983867/1"}}},"commit":{"parents":[{"commit":"2abaacb3c73c8178080e7f25daad8cb3047432c8","subject":"Refactor _UTCNow class to utcnow() function","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/2abaacb3c73c8178080e7f25daad8cb3047432c8"}]}],"author":{"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","date":"2026-04-09 13:10:08.000000000","tz":120},"committer":{"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","date":"2026-04-09 13:31:44.000000000","tz":120},"subject":"Refactor TimeFixture to use unittest.mock","message":"Refactor TimeFixture to use unittest.mock\n\nRefactor the TimeFixture class to use unittest.mock internally instead\nof the deprecated time override functions. This modernizes the fixture\nimplementation while preserving its public API.\n\nThe TimeFixture now:\n- Uses mock.patch.object() to patch timeutils.utcnow()\n- Maintains state internally with _current_time instead of relying on\n  global state\n- Provides the same advance_time_delta() and advance_time_seconds()\n  methods\n\nThis change provides users with a modern, best-practice example of how\nto mock time in tests while maintaining backward compatibility for\nexisting code using TimeFixture.\n\nPartial-Bug: #1266962\nChange-Id: I576f4e8ca08a299567d292bb82d7ca8c66d4654a\nSigned-off-by: Hervé Beraud \u003cherveberaud.pro@gmail.com\u003e\nAssisted-By: Claude Sonnet 4.5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/6ac9567e804cc86febd3deee80122e77312d7ada"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/6ac9567e804cc86febd3deee80122e77312d7ada"}]},"branch":"refs/heads/master"},"0d6f2a8a5e49c546171f25c5c3c5f5b46d25a56a":{"kind":"REWORK","_number":2,"created":"2026-04-14 07:45:12.000000000","uploader":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"ref":"refs/changes/67/983867/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.utils","ref":"refs/changes/67/983867/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/67/983867/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/67/983867/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/67/983867/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.utils refs/changes/67/983867/2"}}},"commit":{"parents":[{"commit":"429fcc68211f18ab53e92bf37f6a0ef2ae22c46a","subject":"Refactor _UTCNow class to utcnow() function","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/429fcc68211f18ab53e92bf37f6a0ef2ae22c46a"}]}],"author":{"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","date":"2026-04-09 13:10:08.000000000","tz":120},"committer":{"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","date":"2026-04-14 07:40:12.000000000","tz":120},"subject":"Refactor TimeFixture to use unittest.mock","message":"Refactor TimeFixture to use unittest.mock\n\nRefactor the TimeFixture class to use unittest.mock internally instead\nof the deprecated time override functions. This modernizes the fixture\nimplementation while preserving its public API.\n\nThe TimeFixture now:\n- Uses mock.patch.object() to patch timeutils.utcnow()\n- Maintains state internally with _current_time instead of relying on\n  global state\n- Provides the same advance_time_delta() and advance_time_seconds()\n  methods\n\nThis change provides users with a modern, best-practice example of how\nto mock time in tests while maintaining backward compatibility for\nexisting code using TimeFixture.\n\nPartial-Bug: #1266962\nChange-Id: I576f4e8ca08a299567d292bb82d7ca8c66d4654a\nSigned-off-by: Hervé Beraud \u003cherveberaud.pro@gmail.com\u003e\nAssisted-By: Claude Sonnet 4.5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/0d6f2a8a5e49c546171f25c5c3c5f5b46d25a56a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/0d6f2a8a5e49c546171f25c5c3c5f5b46d25a56a"}]},"branch":"refs/heads/master"},"069a93286a59744ecad66f0fa1106c6e1591d728":{"kind":"REWORK","_number":3,"created":"2026-05-12 15:07:35.000000000","uploader":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"ref":"refs/changes/67/983867/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.utils","ref":"refs/changes/67/983867/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/67/983867/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/67/983867/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/67/983867/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.utils refs/changes/67/983867/3"}}},"commit":{"parents":[{"commit":"429fcc68211f18ab53e92bf37f6a0ef2ae22c46a","subject":"Refactor _UTCNow class to utcnow() function","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/429fcc68211f18ab53e92bf37f6a0ef2ae22c46a"}]}],"author":{"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","date":"2026-04-09 13:10:08.000000000","tz":120},"committer":{"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","date":"2026-05-12 15:07:03.000000000","tz":120},"subject":"Refactor TimeFixture to use unittest.mock","message":"Refactor TimeFixture to use unittest.mock\n\nRefactor the TimeFixture class to use unittest.mock internally instead\nof the deprecated time override functions. This modernizes the fixture\nimplementation while preserving its public API.\n\nThe TimeFixture now:\n- Uses mock.patch.object() to patch timeutils.utcnow()\n- Maintains state internally with _current_time instead of relying on\n  global state\n- Provides the same advance_time_delta() and advance_time_seconds()\n  methods\n\nThis change provides users with a modern, best-practice example of how\nto mock time in tests while maintaining backward compatibility for\nexisting code using TimeFixture.\n\nPartial-Bug: #1266962\nChange-Id: I576f4e8ca08a299567d292bb82d7ca8c66d4654a\nSigned-off-by: Hervé Beraud \u003cherveberaud.pro@gmail.com\u003e\nAssisted-By: Claude Sonnet 4.5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/069a93286a59744ecad66f0fa1106c6e1591d728"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/069a93286a59744ecad66f0fa1106c6e1591d728"}]},"branch":"refs/heads/master"},"da53be5965ae376b373b552cfb46f83cbd6f808c":{"kind":"REWORK","_number":4,"created":"2026-05-13 08:21:39.000000000","uploader":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"ref":"refs/changes/67/983867/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/oslo.utils","ref":"refs/changes/67/983867/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/67/983867/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/67/983867/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/oslo.utils refs/changes/67/983867/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/oslo.utils refs/changes/67/983867/4"}}},"commit":{"parents":[{"commit":"429fcc68211f18ab53e92bf37f6a0ef2ae22c46a","subject":"Refactor _UTCNow class to utcnow() function","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/429fcc68211f18ab53e92bf37f6a0ef2ae22c46a"}]}],"author":{"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","date":"2026-04-09 13:10:08.000000000","tz":120},"committer":{"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","date":"2026-05-13 08:21:19.000000000","tz":120},"subject":"Refactor TimeFixture to use unittest.mock","message":"Refactor TimeFixture to use unittest.mock\n\nRefactor the TimeFixture class to use unittest.mock internally instead\nof the deprecated time override functions. This modernizes the fixture\nimplementation while preserving its public API.\n\nThe TimeFixture now:\n- Uses mock.patch.object() to patch timeutils.utcnow()\n- Maintains state internally with _current_time instead of relying on\n  global state\n- Provides the same advance_time_delta() and advance_time_seconds()\n  methods\n\nThis change provides users with a modern, best-practice example of how\nto mock time in tests while maintaining backward compatibility for\nexisting code using TimeFixture.\n\nPartial-Bug: #1266962\nChange-Id: I576f4e8ca08a299567d292bb82d7ca8c66d4654a\nSigned-off-by: Hervé Beraud \u003cherveberaud.pro@gmail.com\u003e\nAssisted-By: Claude Sonnet 4.5\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/da53be5965ae376b373b552cfb46f83cbd6f808c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/oslo.utils/commit/da53be5965ae376b373b552cfb46f83cbd6f808c"}]},"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","applied_by":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"}},{"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":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["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":""}}}]}
