)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"34a8a71979f738c0c379a975598294ded1b7669d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"33046d55_9c3030bf","updated":"2023-03-20 15:05:07.000000000","message":"makes sense I think, new test hits at least half of the branch conditionals","commit_id":"1600ee8ac0c37bb4d96ea47b03bd1d3e2ce5e46a"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"44df5f60799e3991ebd1e357f492639d7e6a09be","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ff258f69_ff21e147","updated":"2023-03-21 17:33:59.000000000","message":"cool!","commit_id":"099dd66265dfdc94e162eba4c1ec3a33b305bc26"}],"swiftclient/client.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"34a8a71979f738c0c379a975598294ded1b7669d","unresolved":true,"context_lines":[{"line_number":1802,"context_line":"                self._add_response_dict(caller_response_dict, kwargs)"},{"line_number":1803,"context_line":"                if \u0027cert\u0027 in str(e) or self.attempts \u003e self.retries:"},{"line_number":1804,"context_line":"                    raise"},{"line_number":1805,"context_line":"                self.http_conn \u003d None"},{"line_number":1806,"context_line":"            except (socket.error, RequestException):"},{"line_number":1807,"context_line":"                self._add_response_dict(caller_response_dict, kwargs)"},{"line_number":1808,"context_line":"                if self.attempts \u003e self.retries:"}],"source_content_type":"text/x-python","patch_set":1,"id":"f113dbad_da8b9c8e","line":1805,"updated":"2023-03-20 15:05:07.000000000","message":"seems more in-line with the other error handling, makes sense given the bug reports","commit_id":"1600ee8ac0c37bb4d96ea47b03bd1d3e2ce5e46a"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"124fc556e6c3b20f50086b8ac76aa34a3153f8c8","unresolved":true,"context_lines":[{"line_number":1801,"context_line":"            except SSLError as e:"},{"line_number":1802,"context_line":"                self._add_response_dict(caller_response_dict, kwargs)"},{"line_number":1803,"context_line":"                if (\u0027certificate verify\u0027 in str(e)) or \\"},{"line_number":1804,"context_line":"                        (\u0027hostname\u0027 in str(e)) or \\"},{"line_number":1805,"context_line":"                        self.attempts \u003e self.retries:"},{"line_number":1806,"context_line":"                    raise"},{"line_number":1807,"context_line":"                self.http_conn \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"49532164_07f1d7dc","line":1804,"updated":"2023-03-21 00:21:49.000000000","message":"I\u0027m not thrilled with the `str(e)`s, but it\u0027s not much better doing something like\n\ndef real_error(e):\n    if isinstance(getattr(e, \u0027reason\u0027, None), BaseException):\n        return real_error(e.reason)\n    if isinstance(e.args[0], BaseException):\n        return real_error(e.args[0])\n    return e\n\neither. Catching `ssl.SSLCertVerificationError` isn\u0027t so bad -- seems obvious and unlikely to change -- but `urllib3.packages.ssl_match_hostname._implementation.CertificateError` is pretty terrible and leaves me expecting a location change at some point. In fact, I see that it\u0027s *already* moved to `urllib3.util.ssl_match_hostname` in urllib3\u003e\u003d1.26.8. Presumably things will change again when urllib3 drops py27 and py36? I\u0027m not actually sure *what* to make of the various notes at https://docs.python.org/3/library/ssl.html#ssl.match_hostname and https://github.com/urllib3/urllib3/issues/2439","commit_id":"099dd66265dfdc94e162eba4c1ec3a33b305bc26"}],"test/unit/test_swiftclient.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"34a8a71979f738c0c379a975598294ded1b7669d","unresolved":true,"context_lines":[{"line_number":2192,"context_line":"                \"been closed (EOF) (_ssl.c:997)\u0027)))\")"},{"line_number":2193,"context_line":"            self.assertRaises(socket.error, conn.head_account)"},{"line_number":2194,"context_line":"        self.assertEqual(mock_auth.call_count, 1)"},{"line_number":2195,"context_line":"        self.assertEqual(conn.attempts, conn.retries + 1)"},{"line_number":2196,"context_line":""},{"line_number":2197,"context_line":"    def test_retry_with_force_auth_retry_exceptions(self):"},{"line_number":2198,"context_line":"        def quick_sleep(*args):"}],"source_content_type":"text/x-python","patch_set":1,"id":"f536fa36_581640e6","line":2195,"updated":"2023-03-20 15:05:07.000000000","message":"should there be another test demonstrating we do NOT retry when the ssl error has \"cert\" in the str/repr?\n\nhttps://review.opendev.org/c/openstack/python-swiftclient/+/877965","commit_id":"1600ee8ac0c37bb4d96ea47b03bd1d3e2ce5e46a"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"44df5f60799e3991ebd1e357f492639d7e6a09be","unresolved":false,"context_lines":[{"line_number":2192,"context_line":"                \"been closed (EOF) (_ssl.c:997)\u0027)))\")"},{"line_number":2193,"context_line":"            self.assertRaises(socket.error, conn.head_account)"},{"line_number":2194,"context_line":"        self.assertEqual(mock_auth.call_count, 1)"},{"line_number":2195,"context_line":"        self.assertEqual(conn.attempts, conn.retries + 1)"},{"line_number":2196,"context_line":""},{"line_number":2197,"context_line":"    def test_retry_with_force_auth_retry_exceptions(self):"},{"line_number":2198,"context_line":"        def quick_sleep(*args):"}],"source_content_type":"text/x-python","patch_set":1,"id":"2b590ae9_437654ad","line":2195,"in_reply_to":"f536fa36_581640e6","updated":"2023-03-21 17:33:59.000000000","message":"Done","commit_id":"1600ee8ac0c37bb4d96ea47b03bd1d3e2ce5e46a"}]}
