)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"00ba0574c4fcdb590d7920937e3191e227c4466c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"34a70fab_62e665d4","updated":"2025-02-24 21:03:11.000000000","message":"This is ready to go","commit_id":"8118f8dd9933a4fb1492712388ebd7047a9ba14c"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"3bd6083e68dc68cf08228f86b3b640ef75420673","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"161d64fb_8b8656a8","updated":"2025-04-15 05:07:13.000000000","message":"Had to manually fix merge conflict","commit_id":"9170259784979418da70c2af392160ca622bbc55"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"832d20abbf85ee6a448602874f619bc7557c489f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b94c7af1_bc23ae6e","updated":"2025-10-22 18:14:36.000000000","message":"ping reviewers","commit_id":"2f82afdf0b956585873b1bbe7172b3514de6eee1"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"0a6456ed3217fec9a78e63f5a6710d1be2772c8f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"fd71263a_869b87f1","updated":"2025-09-16 02:15:00.000000000","message":"recheck get new logs, but should be good to merge","commit_id":"2f82afdf0b956585873b1bbe7172b3514de6eee1"}],"neutron/tests/unit/conf/policies/test_security_group.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d5515d86b6e849287a030a736e387806bee2c897","unresolved":true,"context_lines":[{"line_number":426,"context_line":"        # list of temporary directories created by overrides"},{"line_number":427,"context_line":"        self.temp_policy_dirs \u003d []"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"    def tearDown(self):"},{"line_number":430,"context_line":"        for pdir in self.temp_policy_dirs:"},{"line_number":431,"context_line":"            try:"},{"line_number":432,"context_line":"                shutil.rmtree(pdir)"}],"source_content_type":"text/x-python","patch_set":2,"id":"74b0069c_7decafd2","line":429,"range":{"start_line":429,"start_character":8,"end_line":429,"end_character":16},"updated":"2025-04-15 05:51:50.000000000","message":"We usually don\u0027t override tearDown for this but use ``self.addCleanup``","commit_id":"9170259784979418da70c2af392160ca622bbc55"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d3a9389b3322eb1f3e45ade64cfae59a8e9e1801","unresolved":false,"context_lines":[{"line_number":426,"context_line":"        # list of temporary directories created by overrides"},{"line_number":427,"context_line":"        self.temp_policy_dirs \u003d []"},{"line_number":428,"context_line":""},{"line_number":429,"context_line":"    def tearDown(self):"},{"line_number":430,"context_line":"        for pdir in self.temp_policy_dirs:"},{"line_number":431,"context_line":"            try:"},{"line_number":432,"context_line":"                shutil.rmtree(pdir)"}],"source_content_type":"text/x-python","patch_set":2,"id":"6bb4a434_1d74607e","line":429,"range":{"start_line":429,"start_character":8,"end_line":429,"end_character":16},"in_reply_to":"74b0069c_7decafd2","updated":"2025-04-16 20:51:42.000000000","message":"Ack, I can fix it up. I actually copied the concept from someplace else, but each test here can just rmtree() it\u0027s own temp files without harm.","commit_id":"9170259784979418da70c2af392160ca622bbc55"}]}
