)]}'
{"test/unit/common/middleware/s3api/helpers.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"03ec2b2057f21a4675ab9cb990df4382613aad6d","unresolved":false,"context_lines":[{"line_number":116,"context_line":"            etag \u003d md5(input).hexdigest()"},{"line_number":117,"context_line":"            if env.get(\u0027HTTP_ETAG\u0027, etag) !\u003d etag:"},{"line_number":118,"context_line":"                raise Exception(\u0027Client sent a bad ETag! Got %r, but \u0027"},{"line_number":119,"context_line":"                                \u0027md5(body) \u003d %r\u0027 % (env[\u0027HTTP_ETAG\u0027], etag))"},{"line_number":120,"context_line":"            headers.setdefault(\u0027Etag\u0027, etag)"},{"line_number":121,"context_line":"            headers.setdefault(\u0027Content-Length\u0027, len(input))"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_99c08e2c","line":119,"updated":"2019-04-29 19:26:04.000000000","message":"so this ensures the fake acts like the real object server :+1:","commit_id":"da5f215705e703016a7156bc5e9a29722533004a"}],"test/unit/common/middleware/s3api/test_multi_upload.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"03ec2b2057f21a4675ab9cb990df4382613aad6d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    \u0027\u003cPartNumber\u003e2\u003c/PartNumber\u003e\u0027 \\"},{"line_number":45,"context_line":"    \u0027\u003cETag\u003e\"fedcba9876543210\"\u003c/ETag\u003e\u0027 \\"},{"line_number":46,"context_line":"    \u0027\u003c/Part\u003e\u0027 \\"},{"line_number":47,"context_line":"    \u0027\u003c/CompleteMultipartUpload\u003e\u0027"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"objects_template \u003d \\"},{"line_number":50,"context_line":"    ((\u0027object/X/1\u0027, \u00272014-05-07T19:47:51.592270\u0027, \u00270123456789abcdef\u0027, 100),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_598bf66c","line":47,"updated":"2019-04-29 19:26:04.000000000","message":"oic, it\u0027s a global/constant\n\ns/xml/XML/ would make it slightly more clear","commit_id":"da5f215705e703016a7156bc5e9a29722533004a"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"81b011753cbc6fbc257c29264d38a1c416bdd639","unresolved":false,"context_lines":[{"line_number":671,"context_line":"                            environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027POST\u0027},"},{"line_number":672,"context_line":"                            headers\u003d{\u0027Authorization\u0027: \u0027AWS test:tester:hmac\u0027,"},{"line_number":673,"context_line":"                                     \u0027Date\u0027: self.get_date_header(),"},{"line_number":674,"context_line":"                                     \u0027Content-MD5\u0027: content_md5, },"},{"line_number":675,"context_line":"                            body\u003dxml)"},{"line_number":676,"context_line":"        status, headers, body \u003d self.call_s3api(req)"},{"line_number":677,"context_line":"        elem \u003d fromstring(body, \u0027CompleteMultipartUploadResult\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffd0ebdf_e9ab8b72","line":674,"updated":"2019-01-03 20:35:08.000000000","message":"Not the *best* failure message, but it\u0027ll pop fine:\n\n $ nosetests test/unit/common/middleware/s3api/test_multi_upload.py:TestS3ApiMultiUpload.test_object_multipart_upload_complete\n test_object_multipart_upload_complete (test.unit.common.middleware.s3api.test_multi_upload.TestS3ApiMultiUpload) ... ERROR\n \n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n ERROR: test_object_multipart_upload_complete (test.unit.common.middleware.s3api.test_multi_upload.TestS3ApiMultiUpload)\n ----------------------------------------------------------------------\n Traceback (most recent call last):\n   File \"/Users/tburke/Code/openstack/swift/test/unit/common/middleware/s3api/test_multi_upload.py\", line 677, in test_object_multipart_upload_complete\n     elem \u003d fromstring(body, \u0027CompleteMultipartUploadResult\u0027)\n   File \"/Users/tburke/Code/openstack/swift/swift/common/middleware/s3api/etree.py\", line 83, in fromstring\n     raise DocumentInvalid(e)\n DocumentInvalid: Expecting element CompleteMultipartUploadResult, got Error, line 2\n \n ----------------------------------------------------------------------\n Ran 1 test in 0.009s\n \n FAILED (errors\u003d1)","commit_id":"da5f215705e703016a7156bc5e9a29722533004a"}]}
