)]}'
{"swift/common/middleware/formpost.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"4667f63c3df625025ddcfebd91a6f44b62c55192","unresolved":false,"context_lines":[{"line_number":445,"context_line":"        \"\"\""},{"line_number":446,"context_line":"        parts \u003d env[\u0027PATH_INFO\u0027].split(\u0027/\u0027, 4)"},{"line_number":447,"context_line":"        if len(parts) \u003c 4 or parts[0] or not valid_api_version(parts[1]) \\"},{"line_number":448,"context_line":"                or not parts[2] or not parts[3]:"},{"line_number":449,"context_line":"            return []"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"        account_info \u003d get_account_info(env, self.app, swift_source\u003d\u0027FP\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_ac732bb3","line":448,"updated":"2020-01-15 21:41:41.000000000","message":"OK. I\u0027m not sure if this is direct fix for the issue but it just adding `valid_api_version` validation and it looks to include the condition `part[1] !\u003d \u0027v1\u0027` so it should be safe.","commit_id":"7d382067b0e0fae2634eef15999af9443ceaf0f5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"fabfed4c7324c39bf82f65e9cdb89261a6c0b546","unresolved":false,"context_lines":[{"line_number":445,"context_line":"        \"\"\""},{"line_number":446,"context_line":"        parts \u003d env[\u0027PATH_INFO\u0027].split(\u0027/\u0027, 4)"},{"line_number":447,"context_line":"        if len(parts) \u003c 4 or parts[0] or not valid_api_version(parts[1]) \\"},{"line_number":448,"context_line":"                or not parts[2] or not parts[3]:"},{"line_number":449,"context_line":"            return []"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"        account_info \u003d get_account_info(env, self.app, swift_source\u003d\u0027FP\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_8f5ae1f2","line":448,"in_reply_to":"3fa7e38b_ac732bb3","updated":"2020-01-16 00:53:27.000000000","message":"Yeah, this was more of a drive-by than anything else.","commit_id":"7d382067b0e0fae2634eef15999af9443ceaf0f5"}],"test/unit/common/middleware/test_formpost.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"4667f63c3df625025ddcfebd91a6f44b62c55192","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        key \u003d b\u0027abc\u0027"},{"line_number":292,"context_line":"        path \u003d u\u0027/v1/AUTH_test/container/let_it_\\N{SNOWMAN}_\u0027"},{"line_number":293,"context_line":"        if six.PY2:"},{"line_number":294,"context_line":"            path \u003d path.encode(\u0027utf-8\u0027)"},{"line_number":295,"context_line":"        redirect \u003d \u0027http://brim.net\u0027"},{"line_number":296,"context_line":"        max_file_size \u003d 1024"},{"line_number":297,"context_line":"        max_file_count \u003d 10"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_062b3d9b","line":294,"updated":"2020-01-15 21:41:41.000000000","message":"It might be redundant, I prefer to make another test for unicode path and filename because the change mangle the original tests rather than just adding test cases.","commit_id":"7d382067b0e0fae2634eef15999af9443ceaf0f5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"fabfed4c7324c39bf82f65e9cdb89261a6c0b546","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        key \u003d b\u0027abc\u0027"},{"line_number":292,"context_line":"        path \u003d u\u0027/v1/AUTH_test/container/let_it_\\N{SNOWMAN}_\u0027"},{"line_number":293,"context_line":"        if six.PY2:"},{"line_number":294,"context_line":"            path \u003d path.encode(\u0027utf-8\u0027)"},{"line_number":295,"context_line":"        redirect \u003d \u0027http://brim.net\u0027"},{"line_number":296,"context_line":"        max_file_size \u003d 1024"},{"line_number":297,"context_line":"        max_file_count \u003d 10"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_32731052","line":294,"in_reply_to":"3fa7e38b_062b3d9b","updated":"2020-01-16 00:53:27.000000000","message":"Done","commit_id":"7d382067b0e0fae2634eef15999af9443ceaf0f5"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"6c1c4d3db992b6fef4c151dcc10d0da3dd310b70","unresolved":false,"context_lines":[{"line_number":823,"context_line":"            \u0027HTTP_ACCEPT\u0027: \u0027*/*\u0027,"},{"line_number":824,"context_line":"            \u0027HTTP_HOST\u0027: \u0027ubuntu:8080\u0027,"},{"line_number":825,"context_line":"            \u0027HTTP_USER_AGENT\u0027: \u0027curl/7.58.0\u0027,"},{"line_number":826,"context_line":"            \u0027PATH_INFO\u0027: \u0027/v1/AUTH_test/container/let_it_\\xE2\\x9D\\x84/\u0027,"},{"line_number":827,"context_line":"            \u0027REMOTE_ADDR\u0027: \u0027172.16.83.1\u0027,"},{"line_number":828,"context_line":"            \u0027REQUEST_METHOD\u0027: \u0027POST\u0027,"},{"line_number":829,"context_line":"            \u0027SCRIPT_NAME\u0027: \u0027\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_e07a82b9","line":826,"updated":"2020-01-16 06:57:58.000000000","message":"Even I change the container name as alphabet character only, the object name with unicode got error with the snowman. Good.","commit_id":"9483630ae130c5b2616f8617da25bcb51b647208"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"6c1c4d3db992b6fef4c151dcc10d0da3dd310b70","unresolved":false,"context_lines":[{"line_number":856,"context_line":"            headers[0] \u003d h"},{"line_number":857,"context_line":"            exc_info[0] \u003d e"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"        body \u003d b\u0027\u0027.join(self.formpost(env, start_response))"},{"line_number":860,"context_line":"        status \u003d status[0]"},{"line_number":861,"context_line":"        headers \u003d headers[0]"},{"line_number":862,"context_line":"        exc_info \u003d exc_info[0]"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_e0a5a249","line":859,"updated":"2020-01-16 06:57:58.000000000","message":"OK. I got lovely snowman in the path in the error message here when I removed the change in the formpost in py3 env (py2 works well). \n\n`TypeError: Expected a WSGI string; got \u0027/v1/AUTH_test/container/let_it_â\\x9d\\x84/☃.txt\u0027`\n\nThen, with the change all tests passed as expected","commit_id":"9483630ae130c5b2616f8617da25bcb51b647208"},{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"6c1c4d3db992b6fef4c151dcc10d0da3dd310b70","unresolved":false,"context_lines":[{"line_number":871,"context_line":"        self.assertEqual(len(self.app.requests), 2)"},{"line_number":872,"context_line":"        self.assertEqual("},{"line_number":873,"context_line":"            self.app.requests[0].path,"},{"line_number":874,"context_line":"            \u0027/v1/AUTH_test/container/let_it_%E2%9D%84/%E2%98%83.txt\u0027)"},{"line_number":875,"context_line":"        self.assertEqual(self.app.requests[0].body, b\u0027Test File\\nOne\\n\u0027)"},{"line_number":876,"context_line":"        self.assertEqual("},{"line_number":877,"context_line":"            self.app.requests[1].path,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_c049868d","line":874,"updated":"2020-01-16 06:57:58.000000000","message":"nits) unfortunately, we\u0027ll get errors before this assertion at wsgi_quote(env[\u0027PATH_INFO\u0027]) in __call__. But it seems still ok, this should work as the sanity check.","commit_id":"9483630ae130c5b2616f8617da25bcb51b647208"}]}
