)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"bcb26bf92dc32ad6681cc9190634a2463cbd308c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ffbc7c34_237a598a","updated":"2026-02-10 14:27:05.000000000","message":"LGTM, thanks for fixing both tests Brian, certainly a double negative (calling original function + wrong assert) yields a positive test result 😄","commit_id":"35007eceb4d1f1a5c8604172c71df274a40c980c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"b3dda347febdb3d386c8da310ffd66c5e4fd5434","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e6106d7d_6a75cddd","updated":"2026-03-17 13:10:52.000000000","message":"LGTM, rebased to include another fix related to os-win.","commit_id":"be173a913d9291c6f94641ed7d3dcb4f9582e664"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3eaec4b863fbd79f8c4a26931fb768bfdcdb3598","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"90579749_acf45ee8","updated":"2026-02-27 20:06:14.000000000","message":"Rebased to include removal of windows support so os-win won\u0027t try to load pkg_resources and cause the py313 job to fail.","commit_id":"be173a913d9291c6f94641ed7d3dcb4f9582e664"}],"cinder/tests/unit/backup/drivers/test_backup_ceph.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"d6f5ab7ffff6c10e119fa1a8cf5c3781a0110d0c","unresolved":true,"context_lines":[{"line_number":1653,"context_line":"        serialized_meta_1 \u003d jsonutils.dumps({\u0027foo\u0027: \u0027bar\u0027})"},{"line_number":1654,"context_line":"        serialized_meta_2 \u003d jsonutils.dumps({\u0027doo\u0027: \u0027dah\u0027})"},{"line_number":1655,"context_line":""},{"line_number":1656,"context_line":"        with mock.patch.object(ceph.VolumeMetadataBackup, \u0027set\u0027) as mock_write:"},{"line_number":1657,"context_line":"            mock_write.side_effect \u003d _mock_write"},{"line_number":1658,"context_line":""},{"line_number":1659,"context_line":"            self.mb.set(serialized_meta_1)"}],"source_content_type":"text/x-python","patch_set":1,"id":"62e20ac8_10ea5525","side":"PARENT","line":1656,"range":{"start_line":1656,"start_character":58,"end_line":1656,"end_character":63},"updated":"2025-03-30 15:47:56.000000000","message":"Probably not a good idea to mock out the actual function we\u0027re supposed to be testing.","commit_id":"c6b4fc17aec3b65364f7c60e55b5285e80cad871"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"d6f5ab7ffff6c10e119fa1a8cf5c3781a0110d0c","unresolved":true,"context_lines":[{"line_number":1673,"context_line":"        self.assertEqual([\u0027write\u0027, \u0027read\u0027, \u0027read\u0027], called)"},{"line_number":1674,"context_line":""},{"line_number":1675,"context_line":"        self.mb._exists.return_value \u003d False"},{"line_number":1676,"context_line":"        self.mb.set(serialized_meta_2)"},{"line_number":1677,"context_line":"        self.assertNotEqual(thread_dict[\u0027thread\u0027],"},{"line_number":1678,"context_line":"                            threading.current_thread)"},{"line_number":1679,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"0193638d_b30568de","side":"PARENT","line":1676,"range":{"start_line":1676,"start_character":16,"end_line":1676,"end_character":19},"updated":"2025-03-30 15:47:56.000000000","message":"Here we\u0027re calling the non-mocked function, but because _mock_write was called by the mocked function, thread_dict[\u0027thread\u0027] will be the main test thread.  The reason the assertion at line 1677 has been passing is that the typo in \u0027threading.current_thread\u0027 (forgot the function parentheses) is comparing a thread object to a function object, and of course they are not the same.","commit_id":"c6b4fc17aec3b65364f7c60e55b5285e80cad871"}]}
