)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"8ed553da2d355aa160f2f28d4689850b2b96c8ff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f98fca70_b1461b27","updated":"2026-02-24 14:12:03.000000000","message":"recheck","commit_id":"98a8d0a18e3fc6d711c377593ee54ccb0736db6a"}],"openstack/tests/unit/cloud/test_baremetal_node.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"18828da8f79836dde32e732dd29e2271ab71894e","unresolved":true,"context_lines":[{"line_number":1836,"context_line":"        # deterministic for Python 3.14"},{"line_number":1837,"context_line":"        times \u003d itertools.count(start\u003d0, step\u003d0.001)"},{"line_number":1838,"context_line":"        mock_monotonic \u003d mock.Mock(side_effect\u003dlambda: next(times))"},{"line_number":1839,"context_line":"        self.patch(time, \u0027monotonic\u0027, mock_monotonic)"},{"line_number":1840,"context_line":""},{"line_number":1841,"context_line":"        manageable_node \u003d self.fake_baremetal_node.copy()"},{"line_number":1842,"context_line":"        manageable_node[\u0027provision_state\u0027] \u003d \u0027manageable\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"ef01070e_30864afc","line":1839,"updated":"2025-12-08 17:52:33.000000000","message":"This wasn\u0027t obvious to me initially and it seems to rely on internals from another library. Rather than doing this, could you mock the actual wait methods we are calling (namely `Node.wait_for_reservation` and `Node.wait_for_provision_state`)?","commit_id":"04b418b3998ab8c7592ba33104cb309b898bdd5d"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"dc85e97c1a6a8219064abaa563e2a0ac790bde73","unresolved":false,"context_lines":[{"line_number":1836,"context_line":"        # deterministic for Python 3.14"},{"line_number":1837,"context_line":"        times \u003d itertools.count(start\u003d0, step\u003d0.001)"},{"line_number":1838,"context_line":"        mock_monotonic \u003d mock.Mock(side_effect\u003dlambda: next(times))"},{"line_number":1839,"context_line":"        self.patch(time, \u0027monotonic\u0027, mock_monotonic)"},{"line_number":1840,"context_line":""},{"line_number":1841,"context_line":"        manageable_node \u003d self.fake_baremetal_node.copy()"},{"line_number":1842,"context_line":"        manageable_node[\u0027provision_state\u0027] \u003d \u0027manageable\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"271a856d_55038821","line":1839,"in_reply_to":"ef01070e_30864afc","updated":"2025-12-10 09:19:54.000000000","message":"Done","commit_id":"04b418b3998ab8c7592ba33104cb309b898bdd5d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d099e1484415300de67991379bc0e67715264e34","unresolved":true,"context_lines":[{"line_number":23,"context_line":"from testscenarios import load_tests_apply_scenarios as load_tests  # noqa"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from openstack import exceptions"},{"line_number":26,"context_line":"from openstack.baremetal.v1.node import Node"},{"line_number":27,"context_line":"from openstack.network.v2 import port as _port"},{"line_number":28,"context_line":"from openstack.tests import fakes"},{"line_number":29,"context_line":"from openstack.tests.unit import base"}],"source_content_type":"text/x-python","patch_set":7,"id":"04dfc2d9_44c0a356","line":26,"in_reply_to":"6e83754f_77fc9ce2","updated":"2026-02-24 15:42:22.000000000","message":"\u003e pep8: H306: imports not in alphabetical order (openstack.exceptions, openstack.baremetal.v1.node.node)\n\nPlease fix.","commit_id":"974987a8b8c3632938936e75ef9f15f894f97d16"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d099e1484415300de67991379bc0e67715264e34","unresolved":true,"context_lines":[{"line_number":1902,"context_line":"                 Node, \"wait_for_provision_state\""},{"line_number":1903,"context_line":"             ) as mock_wait_prov:"},{"line_number":1904,"context_line":""},{"line_number":1905,"context_line":"            mock_wait_res.side_effect \u003d exceptions.SDKException(\"timeout\")"},{"line_number":1906,"context_line":"            mock_wait_prov.side_effect \u003d exceptions.SDKException(\"timeout\")"},{"line_number":1907,"context_line":""},{"line_number":1908,"context_line":"            self.assertRaises("}],"source_content_type":"text/x-python","patch_set":7,"id":"9878c979_47e1580e","line":1905,"updated":"2026-02-24 15:42:22.000000000","message":"You\u0027re either missing a mock or forgot to remove this after a rebase","commit_id":"974987a8b8c3632938936e75ef9f15f894f97d16"}]}
