)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"56656fb626514164530ed2f592c2c2e80fc1e859","unresolved":true,"context_lines":[{"line_number":1,"context_line":"Parent:     1b930bd2 (Merge \"Fix jsonschema enum (list instead of tuple)\")"},{"line_number":2,"context_line":"Author:     akintewe \u003csolaakintewe@gmail.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2026-03-24 16:19:41 +0100"},{"line_number":4,"context_line":"Commit:     akintewe \u003csolaakintewe@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"f6329043_ab5cf331","line":1,"updated":"2026-03-31 21:38:44.000000000","message":"Duplicate Change-Id and Signed-off-by lines (bad squash/amend)","commit_id":"7d6d6f631b317cb0d107e4b8f7a64eb7c08ea583"},{"author":{"_account_id":38940,"name":"Oluwasola Akintewe","display_name":"nathan_akin","email":"solaakintewe@gmail.com","username":"nathan_akin"},"change_message_id":"cc3d36f1040b10a77d11701a1b966f023d8200e5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     1b930bd2 (Merge \"Fix jsonschema enum (list instead of tuple)\")"},{"line_number":2,"context_line":"Author:     akintewe \u003csolaakintewe@gmail.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2026-03-24 16:19:41 +0100"},{"line_number":4,"context_line":"Commit:     akintewe \u003csolaakintewe@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"acf1b267_38f2d388","line":1,"in_reply_to":"f6329043_ab5cf331","updated":"2026-04-01 00:12:59.000000000","message":"Done","commit_id":"7d6d6f631b317cb0d107e4b8f7a64eb7c08ea583"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d5617cafe8baca1799e09b3ab052decc5d06bb72","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d750c1d9_ca2df447","updated":"2026-03-25 21:28:06.000000000","message":"LGTM, thanks","commit_id":"fb2a9bd28688359a9491bf7e7370d104cd5b535e"}],"manila/tests/api/openstack/test_api_version_request.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"218f469dd7ccdcc7cacc045550fba64bf316b900","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.assertEqual(v1, v4)"},{"line_number":114,"context_line":"        self.assertNotEqual(v1, v_null)"},{"line_number":115,"context_line":"        self.assertEqual(v_null, v_null)"},{"line_number":116,"context_line":"        self.assertNotEqual(v1, \u00272.0\u0027)"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    def test_version_matches(self):"},{"line_number":119,"context_line":"        v1 \u003d api_version_request.APIVersionRequest(\u00272.0\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"4577ef50_0e8ef2cb","line":116,"updated":"2026-03-27 05:13:32.000000000","message":"`assertFalse(v1 \u003d\u003d \u00272.0\u0027)` tested that `__eq__` returns False when\ncomparing an APIVersionRequest with a plain string. `assertNotEqual`\nuses `!\u003d` instead, so this is a different operator test.","commit_id":"c644cef97c9537c06124f5351901c58781310206"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"56656fb626514164530ed2f592c2c2e80fc1e859","unresolved":true,"context_lines":[{"line_number":109,"context_line":"        self.assertTrue(v1 \u003c\u003d v2)"},{"line_number":110,"context_line":"        self.assertTrue(v3 \u003e v2)"},{"line_number":111,"context_line":"        self.assertTrue(v3 \u003e\u003d v2)"},{"line_number":112,"context_line":"        self.assertNotEqual(v1, v2)"},{"line_number":113,"context_line":"        self.assertEqual(v1, v4)"},{"line_number":114,"context_line":"        self.assertNotEqual(v1, v_null)"},{"line_number":115,"context_line":"        self.assertEqual(v_null, v_null)"}],"source_content_type":"text/x-python","patch_set":6,"id":"269789f1_712555d4","line":112,"updated":"2026-03-31 21:38:44.000000000","message":"Same operator-swap issue. assertFalse(v1 \u003d\u003d \u00272.0\u0027) tested __eq__\nreturning False, whereas assertNotEqual(v1, \u00272.0\u0027) tests __ne__\ninstead.","commit_id":"7d6d6f631b317cb0d107e4b8f7a64eb7c08ea583"},{"author":{"_account_id":38940,"name":"Oluwasola Akintewe","display_name":"nathan_akin","email":"solaakintewe@gmail.com","username":"nathan_akin"},"change_message_id":"cc3d36f1040b10a77d11701a1b966f023d8200e5","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        self.assertTrue(v1 \u003c\u003d v2)"},{"line_number":110,"context_line":"        self.assertTrue(v3 \u003e v2)"},{"line_number":111,"context_line":"        self.assertTrue(v3 \u003e\u003d v2)"},{"line_number":112,"context_line":"        self.assertNotEqual(v1, v2)"},{"line_number":113,"context_line":"        self.assertEqual(v1, v4)"},{"line_number":114,"context_line":"        self.assertNotEqual(v1, v_null)"},{"line_number":115,"context_line":"        self.assertEqual(v_null, v_null)"}],"source_content_type":"text/x-python","patch_set":6,"id":"f8147ec8_f3bffabd","line":112,"in_reply_to":"269789f1_712555d4","updated":"2026-04-01 00:12:59.000000000","message":"Done","commit_id":"7d6d6f631b317cb0d107e4b8f7a64eb7c08ea583"}],"manila/tests/test_utils.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"218f469dd7ccdcc7cacc045550fba64bf316b900","unresolved":false,"context_lines":[{"line_number":367,"context_line":"        self.assertTrue(self.one \u003c\u003d self.one)"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    def test_eq(self):"},{"line_number":370,"context_line":"        self.assertNotEqual(self.one, self.two)"},{"line_number":371,"context_line":"        self.assertNotEqual(self.two, self.one)"},{"line_number":372,"context_line":"        self.assertEqual(self.one, self.one)"},{"line_number":373,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"de941f19_56c5642b","line":370,"updated":"2026-03-27 05:13:32.000000000","message":"`assertFalse(self.one \u003d\u003d self.two)` tested that `__eq__` returns `False`\nfor unequal objects. `assertNotEqual` internally calls `!\u003d` (`__ne__`),\nso this no longer exercises the `__eq__` operator. In a method named\n`test_eq` that exists to verify `__eq__` works, this is semantically\nwrong. Same issue on the next line.\n\nThe safe conversions here are only the `assertTrue(x \u003d\u003d y)` →\n`assertEqual(x, y)` cases, since both exercise `__eq__`. The\n`assertFalse(x \u003d\u003d y)` cases should be left as-is (or could use\n`assertFalse(x \u003d\u003d y)` — there\u0027s no single-method equivalent that\ntests `__eq__` returning False).","commit_id":"c644cef97c9537c06124f5351901c58781310206"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"218f469dd7ccdcc7cacc045550fba64bf316b900","unresolved":false,"context_lines":[{"line_number":382,"context_line":"        self.assertFalse(self.one \u003e self.one)"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    def test_ne(self):"},{"line_number":385,"context_line":"        self.assertNotEqual(self.one, self.two)"},{"line_number":386,"context_line":"        self.assertNotEqual(self.two, self.one)"},{"line_number":387,"context_line":"        self.assertEqual(self.one, self.one)"},{"line_number":388,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"27fc2cac_c4fe8702","line":385,"updated":"2026-03-27 05:13:32.000000000","message":"Same issue in reverse for `test_ne`. Line 387\u0027s\n`assertFalse(self.one !\u003d self.one)` was changed to\n`assertEqual(self.one, self.one)`, which internally calls `\u003d\u003d`\n(`__eq__`), so `test_ne` no longer exercises the `!\u003d` operator for\nthe equal-objects case. This should be left as\n`assertFalse(self.one !\u003d self.one)`.","commit_id":"c644cef97c9537c06124f5351901c58781310206"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"56656fb626514164530ed2f592c2c2e80fc1e859","unresolved":true,"context_lines":[{"line_number":367,"context_line":"        self.assertTrue(self.one \u003c\u003d self.one)"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    def test_eq(self):"},{"line_number":370,"context_line":"        self.assertNotEqual(self.one, self.two)"},{"line_number":371,"context_line":"        self.assertNotEqual(self.two, self.one)"},{"line_number":372,"context_line":"        self.assertEqual(self.one, self.one)"},{"line_number":373,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"45110016_f026d23c","line":370,"updated":"2026-03-31 21:38:44.000000000","message":"test_eq now tests the wrong operator. The original\nassertFalse(self.one \u003d\u003d self.two) exercised __eq__ (verifying it\nreturns False for unequal objects). The replacement\nassertNotEqual(self.one, self.two) exercises __ne__ instead.","commit_id":"7d6d6f631b317cb0d107e4b8f7a64eb7c08ea583"},{"author":{"_account_id":38940,"name":"Oluwasola Akintewe","display_name":"nathan_akin","email":"solaakintewe@gmail.com","username":"nathan_akin"},"change_message_id":"cc3d36f1040b10a77d11701a1b966f023d8200e5","unresolved":false,"context_lines":[{"line_number":367,"context_line":"        self.assertTrue(self.one \u003c\u003d self.one)"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    def test_eq(self):"},{"line_number":370,"context_line":"        self.assertNotEqual(self.one, self.two)"},{"line_number":371,"context_line":"        self.assertNotEqual(self.two, self.one)"},{"line_number":372,"context_line":"        self.assertEqual(self.one, self.one)"},{"line_number":373,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"f01bcf42_33af2ded","line":370,"in_reply_to":"45110016_f026d23c","updated":"2026-04-01 00:12:59.000000000","message":"Done","commit_id":"7d6d6f631b317cb0d107e4b8f7a64eb7c08ea583"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"56656fb626514164530ed2f592c2c2e80fc1e859","unresolved":true,"context_lines":[{"line_number":381,"context_line":"        self.assertTrue(self.two \u003e self.one)"},{"line_number":382,"context_line":"        self.assertFalse(self.one \u003e self.one)"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    def test_ne(self):"},{"line_number":385,"context_line":"        self.assertNotEqual(self.one, self.two)"},{"line_number":386,"context_line":"        self.assertNotEqual(self.two, self.one)"},{"line_number":387,"context_line":"        self.assertEqual(self.one, self.one)"}],"source_content_type":"text/x-python","patch_set":6,"id":"2ee0008f_4921c3df","line":384,"updated":"2026-03-31 21:38:44.000000000","message":"test_ne and test_eq are now identical (both contain assertNotEqual,\nassertNotEqual, assertEqual). The original assertFalse(self.one !\u003d\nself.one) tested __ne__ returning False, but assertEqual(self.one,\nself.one) tests __eq__ returning True.","commit_id":"7d6d6f631b317cb0d107e4b8f7a64eb7c08ea583"},{"author":{"_account_id":38940,"name":"Oluwasola Akintewe","display_name":"nathan_akin","email":"solaakintewe@gmail.com","username":"nathan_akin"},"change_message_id":"cc3d36f1040b10a77d11701a1b966f023d8200e5","unresolved":false,"context_lines":[{"line_number":381,"context_line":"        self.assertTrue(self.two \u003e self.one)"},{"line_number":382,"context_line":"        self.assertFalse(self.one \u003e self.one)"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    def test_ne(self):"},{"line_number":385,"context_line":"        self.assertNotEqual(self.one, self.two)"},{"line_number":386,"context_line":"        self.assertNotEqual(self.two, self.one)"},{"line_number":387,"context_line":"        self.assertEqual(self.one, self.one)"}],"source_content_type":"text/x-python","patch_set":6,"id":"0f513313_72fd1363","line":384,"in_reply_to":"2ee0008f_4921c3df","updated":"2026-04-01 00:12:59.000000000","message":"Done","commit_id":"7d6d6f631b317cb0d107e4b8f7a64eb7c08ea583"}]}
