)]}'
{"test/unit/proxy/controllers/test_container.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"fe2bec0869b24930bdcbeac55b69c39582299616","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        nodes \u003d self.app.container_ring.replicas"},{"line_number":230,"context_line":"        handoffs \u003d self.app.request_node_count(nodes) - nodes"},{"line_number":231,"context_line":"        GET_TEST_CASES \u003d ["},{"line_number":232,"context_line":"            ([], 503),"},{"line_number":233,"context_line":"            ([200], 200),"},{"line_number":234,"context_line":"            ([404, 200], 200),"},{"line_number":235,"context_line":"            ([404] * nodes + [200], 200),"}],"source_content_type":"text/x-python","patch_set":1,"id":"5ff73747_46587f86","side":"PARENT","line":232,"updated":"2017-05-01 19:09:48.000000000","message":"I have no idea what this was meant to test. We\u0027ve already got timeouts covered below; I guess strange server errors (or even socket errors!) are as good a replacement as anything?","commit_id":"a0fcca1e0576a0dba7a61f05c86aba23d6ddd27f"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"ea44735db73caa098b96fbb1207e3a17b3d79937","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        nodes \u003d self.app.container_ring.replicas"},{"line_number":230,"context_line":"        handoffs \u003d self.app.request_node_count(nodes) - nodes"},{"line_number":231,"context_line":"        GET_TEST_CASES \u003d ["},{"line_number":232,"context_line":"            ([], 503),"},{"line_number":233,"context_line":"            ([200], 200),"},{"line_number":234,"context_line":"            ([404, 200], 200),"},{"line_number":235,"context_line":"            ([404] * nodes + [200], 200),"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_9b66a151","side":"PARENT","line":232,"updated":"2017-08-08 16:42:07.000000000","message":"if you have all your node error limited get_nodes can return an empty list - was this testing that?  If you don\u0027t get to make any backend requests (and have no backend responses) we *should* respond 503","commit_id":"45cc1d02d06f33530cefe742465828f5d0d5cd12"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0e57be495929b034fd03521dd6db14d445c3d5ae","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        nodes \u003d self.app.container_ring.replicas"},{"line_number":230,"context_line":"        handoffs \u003d self.app.request_node_count(nodes) - nodes"},{"line_number":231,"context_line":"        GET_TEST_CASES \u003d ["},{"line_number":232,"context_line":"            ([], 503),"},{"line_number":233,"context_line":"            ([200], 200),"},{"line_number":234,"context_line":"            ([404, 200], 200),"},{"line_number":235,"context_line":"            ([404] * nodes + [200], 200),"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f436f4f_2af080c9","side":"PARENT","line":232,"in_reply_to":"9f436f4f_9b66a151","updated":"2017-08-08 17:55:58.000000000","message":"You mean iter_nodes, yeah? We could test that if we wanted -- but that isn\u0027t the code path that this currently tests. Throw a self.fail() at the end of the loop and you\u0027ll see a bunch of\n\n test ERROR: ERROR with Container server 10.0.0.1:1001/sdb re: Trying to GET /v1/a/c:\n Traceback (most recent call last):\n   File \"/vagrant/swift/swift/proxy/controllers/base.py\", line 1120, in _make_node_request\n     query_string\u003dself.req_query_string)\n   File \"/vagrant/swift/swift/common/bufferedhttp.py\", line 217, in http_connect\n     ipaddr, port, method, path, headers, query_string, ssl)\n   File \"/vagrant/swift/test/unit/__init__.py\", line 1040, in connect\n     i, status \u003d next(conn_id_and_code_iter)\n StopIteration (txn: txcebb37a1160c4d06b18f0-005989f8a0)\n test ERROR: ERROR with Container server 10.0.0.3:1003/sdd re: Trying to GET /v1/a/c:\n Traceback (most recent call last):\n   File \"/vagrant/swift/swift/proxy/controllers/base.py\", line 1120, in _make_node_request\n     query_string\u003dself.req_query_string)\n   File \"/vagrant/swift/swift/common/bufferedhttp.py\", line 217, in http_connect\n     ipaddr, port, method, path, headers, query_string, ssl)\n   File \"/vagrant/swift/test/unit/__init__.py\", line 1040, in connect\n     i, status \u003d next(conn_id_and_code_iter)\n StopIteration (txn: txcebb37a1160c4d06b18f0-005989f8a0)\n\nlog lines -- the current path under test is \"what happens when some error gets raised while I\u0027m trying to contact a node,\" which seems better served by something like the socket.error() which could actually happen.\n\nWe definitely *could* test the error-limited case, though, either by marking all nodes as error-limited or mocking out iter_nodes to return an empty list. But we\u0027ll never have a realistic test of it just by futzing with mocked_http_conn.","commit_id":"45cc1d02d06f33530cefe742465828f5d0d5cd12"}]}
