)]}'
{"swiftclient/client.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"31ee4034ac090ed995a25af3bef970f90e9ac6da","unresolved":false,"context_lines":[{"line_number":1630,"context_line":"            conn \u003d self.http_conn[1]"},{"line_number":1631,"context_line":"            if hasattr(conn, \u0027close\u0027) and callable(conn.close):"},{"line_number":1632,"context_line":"                # XXX: Our HTTPConnection object has no close, should be"},{"line_number":1633,"context_line":"                # trying to close the requests.Session here?"},{"line_number":1634,"context_line":"                conn.close()"},{"line_number":1635,"context_line":"                self.http_conn \u003d None"},{"line_number":1636,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_9b5c9d59","line":1633,"updated":"2018-10-18 01:18:16.000000000","message":"Oh yeah, and I should clean up this comment...","commit_id":"ff67cfe95f98333d9d9fe1ef139388e1f734cb3c"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"51954e61e5e5ae4411c8796c33e63fe7155a39e2","unresolved":false,"context_lines":[{"line_number":1692,"context_line":"            try:"},{"line_number":1693,"context_line":"                if not self.url or not self.token:"},{"line_number":1694,"context_line":"                    self.url, self.token \u003d self.get_auth()"},{"line_number":1695,"context_line":"                    if self.http_conn:"},{"line_number":1696,"context_line":"                        self.http_conn[1].close()"},{"line_number":1697,"context_line":"                    self.http_conn \u003d None"},{"line_number":1698,"context_line":"                if self.service_auth and not self.service_token:"},{"line_number":1699,"context_line":"                    self.url, self.service_token \u003d self.get_service_auth()"},{"line_number":1700,"context_line":"                    if self.http_conn:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_35fefa05","line":1697,"range":{"start_line":1695,"start_character":20,"end_line":1697,"end_character":41},"updated":"2018-06-26 03:49:36.000000000","message":"This class already has a .close, can\u0027t we just call that? As it makes sure  http_conn exists, the conn has a .close and sets self.http_conn to None\n\n  self.close()","commit_id":"ff67cfe95f98333d9d9fe1ef139388e1f734cb3c"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"51954e61e5e5ae4411c8796c33e63fe7155a39e2","unresolved":false,"context_lines":[{"line_number":1697,"context_line":"                    self.http_conn \u003d None"},{"line_number":1698,"context_line":"                if self.service_auth and not self.service_token:"},{"line_number":1699,"context_line":"                    self.url, self.service_token \u003d self.get_service_auth()"},{"line_number":1700,"context_line":"                    if self.http_conn:"},{"line_number":1701,"context_line":"                        self.http_conn[1].close()"},{"line_number":1702,"context_line":"                    self.http_conn \u003d None"},{"line_number":1703,"context_line":"                self.auth_end_time \u003d time()"},{"line_number":1704,"context_line":"                if not self.http_conn:"},{"line_number":1705,"context_line":"                    self.http_conn \u003d self.http_connection()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_f02ad07b","line":1702,"range":{"start_line":1700,"start_character":20,"end_line":1702,"end_character":41},"updated":"2018-06-26 03:49:36.000000000","message":"And here","commit_id":"ff67cfe95f98333d9d9fe1ef139388e1f734cb3c"}],"tests/functional/test_swiftclient.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"31ee4034ac090ed995a25af3bef970f90e9ac6da","unresolved":false,"context_lines":[{"line_number":108,"context_line":"                self.conn.delete_container(container)"},{"line_number":109,"context_line":"            except swiftclient.ClientException:"},{"line_number":110,"context_line":"                pass"},{"line_number":111,"context_line":"        self.conn.close()"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _check_account_headers(self, headers):"},{"line_number":114,"context_line":"        headers_to_check \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_7063db46","line":111,"updated":"2018-10-18 01:18:16.000000000","message":"To test, you might want to try applying\n\ndiff --git a/tests/functional/test_swiftclient.py b/tests/functional/test_swiftclient.py\nindex 1d76a8d..7d3da94 100644\n--- a/tests/functional/test_swiftclient.py\n+++ b/tests/functional/test_swiftclient.py\n@@ -109,6 +109,9 @@ class TestFunctional(unittest.TestCase):\n             except swiftclient.ClientException:\n                 pass\n         self.conn.close()\n+        del self.conn\n+        import gc\n+        gc.collect()\n\n     def _check_account_headers(self, headers):\n         headers_to_check \u003d [\n\naround here to force more-frequent garbage collection, and running tests with something like\n\n python -m unittest tests/functional/test_swiftclient.py\n\ninstead of nosetests or whatever.","commit_id":"fd9a60cd850b84fb08c3a1eb9706461db385f453"}]}
