)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"73bed8d08613f2f475133dd506284b8ca40937a7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"64ac9d7a_ed862414","updated":"2023-03-02 04:59:42.000000000","message":"Do we still care about this, or is it safe to abandon?","commit_id":"196299bbc62ea06d66dbee246f62e34350b84d93"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a7626296ed53b375bbcc0e8407bab41d46a12c95","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a2fc619b_f67ada49","updated":"2022-09-09 17:44:10.000000000","message":"Yeah, sure -- I can squash it in.","commit_id":"196299bbc62ea06d66dbee246f62e34350b84d93"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"a460efbe3cba75453f40da034cdb3c2400d75a95","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"39cad057_efd9ddee","updated":"2022-09-09 19:03:02.000000000","message":"maybe before we squash I can understand this test infra a little better or you can help invest to make it more obvoius","commit_id":"196299bbc62ea06d66dbee246f62e34350b84d93"}],"test/unit/common/test_wsgi.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"bb3eeefca46dcac8f1ecb3508900f58cca46d498","unresolved":true,"context_lines":[{"line_number":1208,"context_line":"    @staticmethod"},{"line_number":1209,"context_line":"    def app(env, start_response):"},{"line_number":1210,"context_line":"        start_response(\"200 OK\", [])"},{"line_number":1211,"context_line":"        return [wsgi_to_bytes(env[\u0027RAW_PATH_INFO\u0027])]"},{"line_number":1212,"context_line":""},{"line_number":1213,"context_line":"    def test_simple(self):"},{"line_number":1214,"context_line":"        bytes_out \u003d self._run_bytes_through_protocol(("}],"source_content_type":"text/x-python","patch_set":1,"id":"556aed5b_01b331a3","line":1211,"updated":"2022-09-10 05:00:23.000000000","message":"Path-as-response-body is what this test app does -- though we could change that, of course. Maybe start doing something like\n\n return [json.dumps({\n     \u0027raw_path_info\u0027: wsgi_to_str(env[\u0027RAW_PATH_INFO\u0027]),\n     \u0027query_string\u0027: wsgi_to_str(env[\u0027QUERY_STRING\u0027]),\n }).encode(\u0027ascii\u0027)]\n\nor something? And start throwing some non-encoded bytes in the query that would trip up https://bugs.python.org/issue33973 ...","commit_id":"196299bbc62ea06d66dbee246f62e34350b84d93"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a7626296ed53b375bbcc0e8407bab41d46a12c95","unresolved":true,"context_lines":[{"line_number":1249,"context_line":"            b\u0027/bucket/key\u0027,"},{"line_number":1250,"context_line":"            b\"https://cluster.domain/\": b\u0027/\u0027,"},{"line_number":1251,"context_line":"            b\"https://cluster.domain/info\": b\u0027/info\u0027,"},{"line_number":1252,"context_line":"            # we strip query strings"},{"line_number":1253,"context_line":"            b\"https://cluster.domain/v1/a/c?format\u003dwild\": b\u0027/v1/a/c\u0027,"},{"line_number":1254,"context_line":"            b\"/v1/a/c?format\u003dwild\": b\u0027/v1/a/c\u0027, # and this stub always has"},{"line_number":1255,"context_line":"            # clients talking nonsense"}],"source_content_type":"text/x-python","patch_set":1,"id":"3acb20b4_1cf24c1e","line":1252,"updated":"2022-09-09 17:44:10.000000000","message":"It\u0027s not that we strip them, it\u0027s that they go into QUERY_STRING instead of PATH_INFO / RAW_PATH_INFO.","commit_id":"196299bbc62ea06d66dbee246f62e34350b84d93"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"a460efbe3cba75453f40da034cdb3c2400d75a95","unresolved":true,"context_lines":[{"line_number":1249,"context_line":"            b\u0027/bucket/key\u0027,"},{"line_number":1250,"context_line":"            b\"https://cluster.domain/\": b\u0027/\u0027,"},{"line_number":1251,"context_line":"            b\"https://cluster.domain/info\": b\u0027/info\u0027,"},{"line_number":1252,"context_line":"            # we strip query strings"},{"line_number":1253,"context_line":"            b\"https://cluster.domain/v1/a/c?format\u003dwild\": b\u0027/v1/a/c\u0027,"},{"line_number":1254,"context_line":"            b\"/v1/a/c?format\u003dwild\": b\u0027/v1/a/c\u0027, # and this stub always has"},{"line_number":1255,"context_line":"            # clients talking nonsense"}],"source_content_type":"text/x-python","patch_set":1,"id":"fc648fe5_3e73b8d7","line":1252,"in_reply_to":"3acb20b4_1cf24c1e","updated":"2022-09-09 19:03:02.000000000","message":"can this test demonstrate that?  I don\u0027t understand why in this test the path ends up in the ... response body lines?","commit_id":"196299bbc62ea06d66dbee246f62e34350b84d93"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"bb3eeefca46dcac8f1ecb3508900f58cca46d498","unresolved":true,"context_lines":[{"line_number":1249,"context_line":"            b\u0027/bucket/key\u0027,"},{"line_number":1250,"context_line":"            b\"https://cluster.domain/\": b\u0027/\u0027,"},{"line_number":1251,"context_line":"            b\"https://cluster.domain/info\": b\u0027/info\u0027,"},{"line_number":1252,"context_line":"            # we strip query strings"},{"line_number":1253,"context_line":"            b\"https://cluster.domain/v1/a/c?format\u003dwild\": b\u0027/v1/a/c\u0027,"},{"line_number":1254,"context_line":"            b\"/v1/a/c?format\u003dwild\": b\u0027/v1/a/c\u0027, # and this stub always has"},{"line_number":1255,"context_line":"            # clients talking nonsense"}],"source_content_type":"text/x-python","patch_set":1,"id":"92dfe965_aee04743","line":1252,"in_reply_to":"fc648fe5_3e73b8d7","updated":"2022-09-10 05:00:23.000000000","message":"I mean, if we want it to? See above.","commit_id":"196299bbc62ea06d66dbee246f62e34350b84d93"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"a460efbe3cba75453f40da034cdb3c2400d75a95","unresolved":true,"context_lines":[{"line_number":1251,"context_line":"            b\"https://cluster.domain/info\": b\u0027/info\u0027,"},{"line_number":1252,"context_line":"            # we strip query strings"},{"line_number":1253,"context_line":"            b\"https://cluster.domain/v1/a/c?format\u003dwild\": b\u0027/v1/a/c\u0027,"},{"line_number":1254,"context_line":"            b\"/v1/a/c?format\u003dwild\": b\u0027/v1/a/c\u0027, # and this stub always has"},{"line_number":1255,"context_line":"            # clients talking nonsense"},{"line_number":1256,"context_line":"            b\"ftp://cluster.domain/bucket/key\":"},{"line_number":1257,"context_line":"            b\u0027ftp://cluster.domain/bucket/key\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"6a997172_10e2c445","line":1254,"updated":"2022-09-09 19:03:02.000000000","message":"i don\u0027t think i understand what this _run_bytes_through_protocol is doing - I\u0027d almost rather assert request bytes on wire to wsgi environ dicts","commit_id":"196299bbc62ea06d66dbee246f62e34350b84d93"}]}
