)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ecd9562799378a390ec00f4c65a9ef1113d26e72","unresolved":true,"context_lines":[{"line_number":1,"context_line":"Parent:     79de1371 (Merge \"identity: Add missing user argument\")"},{"line_number":2,"context_line":"Author:     d18na \u003cla18byeol@gmail.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2025-05-18 15:03:45 +0900"},{"line_number":4,"context_line":"Commit:     d18na \u003cla18byeol@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-05-18 15:07:25 +0900"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3347ae4d_fa3cdfdf","line":2,"updated":"2025-05-19 11:34:51.000000000","message":"If you would like to ensure your own name is associated with this change, I would suggest setting your name correctly in Git. You can do this like so:\n\ngit commit --global user.name \"\u003cyour name here\u003e\"\n\nOnce done, you can then reset this field like so:\n\ngit commit --amend --reset-author\n\nWhat you\u0027ve done is fine but I assume you would like credit for your hard work 😊","commit_id":"4f0ed15354b3febef6a8a9624568cb9d4877c40e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c4a02a47518d426e8a8ccaeace5d746b0b0db8ae","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     79de1371 (Merge \"identity: Add missing user argument\")"},{"line_number":2,"context_line":"Author:     d18na \u003cla18byeol@gmail.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2025-05-18 15:03:45 +0900"},{"line_number":4,"context_line":"Commit:     d18na \u003cla18byeol@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-05-18 15:07:25 +0900"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"d85432b5_fa553873","line":2,"in_reply_to":"3347ae4d_fa3cdfdf","updated":"2025-08-14 11:03:37.000000000","message":"Done","commit_id":"4f0ed15354b3febef6a8a9624568cb9d4877c40e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ecd9562799378a390ec00f4c65a9ef1113d26e72","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     d18na \u003cla18byeol@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-05-18 15:07:25 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Replace assignment of `Mock` objects to methods that are already mocked in test_server.py"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Replace assignment of `Mock` objects to methods that are already mocked"},{"line_number":10,"context_line":"in the setUp function of TestServerAddFloatingIPNetwork class in test_server.py"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5fb9bc9c_e5f8156f","line":7,"updated":"2025-05-19 11:34:51.000000000","message":"This is a little verbose. How about something simpler?\n\n```\ntests: Simplify mocking in server tests\n```","commit_id":"4f0ed15354b3febef6a8a9624568cb9d4877c40e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c4a02a47518d426e8a8ccaeace5d746b0b0db8ae","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     d18na \u003cla18byeol@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-05-18 15:07:25 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Replace assignment of `Mock` objects to methods that are already mocked in test_server.py"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Replace assignment of `Mock` objects to methods that are already mocked"},{"line_number":10,"context_line":"in the setUp function of TestServerAddFloatingIPNetwork class in test_server.py"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"c5c7d4e6_f6db4278","line":7,"in_reply_to":"5fb9bc9c_e5f8156f","updated":"2025-08-14 11:03:37.000000000","message":"Done","commit_id":"4f0ed15354b3febef6a8a9624568cb9d4877c40e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ecd9562799378a390ec00f4c65a9ef1113d26e72","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Replace assignment of `Mock` objects to methods that are already mocked in test_server.py"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Replace assignment of `Mock` objects to methods that are already mocked"},{"line_number":10,"context_line":"in the setUp function of TestServerAddFloatingIPNetwork class in test_server.py"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"story: 2011459"},{"line_number":13,"context_line":"task: 52211"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"77a234b2_85f183c1","line":10,"updated":"2025-05-19 11:34:51.000000000","message":"Please ensure these lines are wrapped at \u003c\u003d 72 characters.","commit_id":"4f0ed15354b3febef6a8a9624568cb9d4877c40e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c4a02a47518d426e8a8ccaeace5d746b0b0db8ae","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Replace assignment of `Mock` objects to methods that are already mocked in test_server.py"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Replace assignment of `Mock` objects to methods that are already mocked"},{"line_number":10,"context_line":"in the setUp function of TestServerAddFloatingIPNetwork class in test_server.py"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"story: 2011459"},{"line_number":13,"context_line":"task: 52211"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"39281c27_403de7a6","line":10,"in_reply_to":"77a234b2_85f183c1","updated":"2025-08-14 11:03:37.000000000","message":"Done","commit_id":"4f0ed15354b3febef6a8a9624568cb9d4877c40e"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":38041},"change_message_id":"fa291f6015b45df0ea060a2fc7bfb391f4d7123e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"13226563_808f0aba","updated":"2025-05-18 08:55:44.000000000","message":"RECHECK","commit_id":"4f0ed15354b3febef6a8a9624568cb9d4877c40e"},{"author":{"_account_id":38041},"change_message_id":"cf3642ee59c8a1a35e3e1e33712f9ef22dd19385","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8cf5e8be_7a04440b","updated":"2025-05-18 07:35:29.000000000","message":"RECHECK","commit_id":"4f0ed15354b3febef6a8a9624568cb9d4877c40e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c548216266642787af1cbcab15e6c377500b0495","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1757f586_46e2abc1","updated":"2025-05-21 15:46:43.000000000","message":"I know it\u0027s going to be more work, but I wonder if you\u0027d be able to update all references in this file now, rather than doing it class by class? It\u0027s going to take a very long time if we do the latter.","commit_id":"3d5034b3ab17d7624b26255fe7e50dcb554cf5a3"}],"openstackclient/tests/unit/compute/v2/test_server.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3c2ceed8e3222ed7a1d131d315a2e226173f3b90","unresolved":true,"context_lines":[{"line_number":87,"context_line":"        super().setUp()"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        # Get the command object to test"},{"line_number":90,"context_line":"        self.cmd \u003d server.AddFixedIP(self.app, None)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        # Mock network methods"},{"line_number":93,"context_line":"        self.find_network \u003d mock.Mock()"},{"line_number":94,"context_line":"        self.app.client_manager.network.find_network \u003d self.find_network"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_server_add_fixed_ip_pre_v249_with_tag(self):"},{"line_number":97,"context_line":"        self.set_compute_api_version(\u00272.48\u0027)"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"871dc49c_ecc13540","line":95,"range":{"start_line":90,"start_character":52,"end_line":95,"end_character":1},"updated":"2025-05-19 11:28:40.000000000","message":"This isn\u0027t related, but you can delete these lines in a separate change if you like: this mocking happens automatically in the `TestComputev2` super class (via the use of the `network_fakes.FakeClientMixin` mixin class). You would also need to replace calls to `self.find_network` with `self.network_client.find_network` in the class.\n\nJust to emphasise: this should be a *separate* change, but it would be a good change to make.","commit_id":"4f0ed15354b3febef6a8a9624568cb9d4877c40e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"84f894f085e3a4400e419c01b5dd36dfb486e302","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        super().setUp()"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        # Get the command object to test"},{"line_number":90,"context_line":"        self.cmd \u003d server.AddFixedIP(self.app, None)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        # Mock network methods"},{"line_number":93,"context_line":"        self.find_network \u003d mock.Mock()"},{"line_number":94,"context_line":"        self.app.client_manager.network.find_network \u003d self.find_network"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def test_server_add_fixed_ip_pre_v249_with_tag(self):"},{"line_number":97,"context_line":"        self.set_compute_api_version(\u00272.48\u0027)"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"097923bb_32f53fd4","line":95,"range":{"start_line":90,"start_character":52,"end_line":95,"end_character":1},"in_reply_to":"871dc49c_ecc13540","updated":"2025-08-14 11:03:50.000000000","message":"I did this in a follow-up","commit_id":"4f0ed15354b3febef6a8a9624568cb9d4877c40e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3c2ceed8e3222ed7a1d131d315a2e226173f3b90","unresolved":true,"context_lines":[{"line_number":416,"context_line":"    def test_server_add_floating_ip(self):"},{"line_number":417,"context_line":"        _port \u003d network_fakes.create_one_port()"},{"line_number":418,"context_line":"        _floating_ip \u003d network_fakes.FakeFloatingIP.create_one_floating_ip()"},{"line_number":419,"context_line":"        self.network_client.find_ip \u003d mock.Mock(return_value\u003d_floating_ip)"},{"line_number":420,"context_line":"        self.network_client.ports.return_value \u003d [_port]"},{"line_number":421,"context_line":"        arglist \u003d ["},{"line_number":422,"context_line":"            self.server.id,"},{"line_number":423,"context_line":"            _floating_ip[\u0027floating_ip_address\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"bddd99c5_4eaf2902","line":420,"range":{"start_line":419,"start_character":0,"end_line":420,"end_character":56},"updated":"2025-05-19 11:28:40.000000000","message":"Could you fix both of these while you\u0027re here?\n\n```suggestion\n        self.network_client.find_ip.return_value \u003d _floating_ip\n        self.network_client.ports.return_value \u003d [_port]\n```","commit_id":"4f0ed15354b3febef6a8a9624568cb9d4877c40e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"96bd5def48fada79a9f2833a4841a152debad124","unresolved":false,"context_lines":[{"line_number":416,"context_line":"    def test_server_add_floating_ip(self):"},{"line_number":417,"context_line":"        _port \u003d network_fakes.create_one_port()"},{"line_number":418,"context_line":"        _floating_ip \u003d network_fakes.FakeFloatingIP.create_one_floating_ip()"},{"line_number":419,"context_line":"        self.network_client.find_ip \u003d mock.Mock(return_value\u003d_floating_ip)"},{"line_number":420,"context_line":"        self.network_client.ports.return_value \u003d [_port]"},{"line_number":421,"context_line":"        arglist \u003d ["},{"line_number":422,"context_line":"            self.server.id,"},{"line_number":423,"context_line":"            _floating_ip[\u0027floating_ip_address\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"717291f0_35d6fcef","line":420,"range":{"start_line":419,"start_character":0,"end_line":420,"end_character":56},"in_reply_to":"bddd99c5_4eaf2902","updated":"2025-08-14 11:02:38.000000000","message":"Done","commit_id":"4f0ed15354b3febef6a8a9624568cb9d4877c40e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3c2ceed8e3222ed7a1d131d315a2e226173f3b90","unresolved":true,"context_lines":[{"line_number":535,"context_line":"    def test_server_add_floating_ip_with_fixed_ip(self):"},{"line_number":536,"context_line":"        _port \u003d network_fakes.create_one_port()"},{"line_number":537,"context_line":"        _floating_ip \u003d network_fakes.FakeFloatingIP.create_one_floating_ip()"},{"line_number":538,"context_line":"        self.network_client.find_ip \u003d mock.Mock(return_value\u003d_floating_ip)"},{"line_number":539,"context_line":"        self.network_client.ports.return_value \u003d [_port]"},{"line_number":540,"context_line":"        # The user has specified a fixed ip that matches one of the ports"},{"line_number":541,"context_line":"        # already attached to the instance."},{"line_number":542,"context_line":"        arglist \u003d ["}],"source_content_type":"text/x-python","patch_set":1,"id":"34453a46_f28e09e6","line":539,"range":{"start_line":538,"start_character":0,"end_line":539,"end_character":56},"updated":"2025-05-19 11:28:40.000000000","message":"As above\n\n```suggestion\n        self.network_client.find_ip.return_value \u003d _floating_ip\n        self.network_client.ports.return_value \u003d [_port]\n```","commit_id":"4f0ed15354b3febef6a8a9624568cb9d4877c40e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"96bd5def48fada79a9f2833a4841a152debad124","unresolved":false,"context_lines":[{"line_number":535,"context_line":"    def test_server_add_floating_ip_with_fixed_ip(self):"},{"line_number":536,"context_line":"        _port \u003d network_fakes.create_one_port()"},{"line_number":537,"context_line":"        _floating_ip \u003d network_fakes.FakeFloatingIP.create_one_floating_ip()"},{"line_number":538,"context_line":"        self.network_client.find_ip \u003d mock.Mock(return_value\u003d_floating_ip)"},{"line_number":539,"context_line":"        self.network_client.ports.return_value \u003d [_port]"},{"line_number":540,"context_line":"        # The user has specified a fixed ip that matches one of the ports"},{"line_number":541,"context_line":"        # already attached to the instance."},{"line_number":542,"context_line":"        arglist \u003d ["}],"source_content_type":"text/x-python","patch_set":1,"id":"4232672a_8e7f1a28","line":539,"range":{"start_line":538,"start_character":0,"end_line":539,"end_character":56},"in_reply_to":"34453a46_f28e09e6","updated":"2025-08-14 11:02:38.000000000","message":"Done","commit_id":"4f0ed15354b3febef6a8a9624568cb9d4877c40e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3c2ceed8e3222ed7a1d131d315a2e226173f3b90","unresolved":true,"context_lines":[{"line_number":575,"context_line":"    def test_server_add_floating_ip_with_fixed_ip_no_port_found(self):"},{"line_number":576,"context_line":"        _port \u003d network_fakes.create_one_port()"},{"line_number":577,"context_line":"        _floating_ip \u003d network_fakes.FakeFloatingIP.create_one_floating_ip()"},{"line_number":578,"context_line":"        self.network_client.find_ip \u003d mock.Mock(return_value\u003d_floating_ip)"},{"line_number":579,"context_line":"        self.network_client.ports.return_value \u003d [_port]"},{"line_number":580,"context_line":"        # The user has specified a fixed ip that does not match any of the"},{"line_number":581,"context_line":"        # ports already attached to the instance."},{"line_number":582,"context_line":"        nonexistent_ip \u003d \u002710.0.0.9\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"0abfe2fb_a5537112","line":579,"range":{"start_line":578,"start_character":0,"end_line":579,"end_character":56},"updated":"2025-05-19 11:28:40.000000000","message":"```suggestion\n        self.network_client.find_ip.return_value \u003d _floating_ip\n        self.network_client.ports.return_value \u003d [_port]\n```\n\nditto for the rest of this file (hint: search for `mock.Mock`)","commit_id":"4f0ed15354b3febef6a8a9624568cb9d4877c40e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"96bd5def48fada79a9f2833a4841a152debad124","unresolved":false,"context_lines":[{"line_number":575,"context_line":"    def test_server_add_floating_ip_with_fixed_ip_no_port_found(self):"},{"line_number":576,"context_line":"        _port \u003d network_fakes.create_one_port()"},{"line_number":577,"context_line":"        _floating_ip \u003d network_fakes.FakeFloatingIP.create_one_floating_ip()"},{"line_number":578,"context_line":"        self.network_client.find_ip \u003d mock.Mock(return_value\u003d_floating_ip)"},{"line_number":579,"context_line":"        self.network_client.ports.return_value \u003d [_port]"},{"line_number":580,"context_line":"        # The user has specified a fixed ip that does not match any of the"},{"line_number":581,"context_line":"        # ports already attached to the instance."},{"line_number":582,"context_line":"        nonexistent_ip \u003d \u002710.0.0.9\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"7772d2a7_d4edc89e","line":579,"range":{"start_line":578,"start_character":0,"end_line":579,"end_character":56},"in_reply_to":"0abfe2fb_a5537112","updated":"2025-08-14 11:02:38.000000000","message":"Done","commit_id":"4f0ed15354b3febef6a8a9624568cb9d4877c40e"}]}
