)]}'
{"nova/tests/unit/api/openstack/placement/test_deploy.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc75ce4ab25f177e0911436cde3c94ca27ecc1f7","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        response \u003d req.get_response(app)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        auth_header \u003d response.headers[\u0027www-authenticate\u0027]"},{"line_number":42,"context_line":"        self.assertIn(auth_uri, auth_header)"},{"line_number":43,"context_line":"        self.assertIn(\u0027keystone uri\u003d\u0027, auth_header.lower())"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_12fd416d","line":41,"updated":"2018-05-11 19:30:49.000000000","message":"Assuming it\u0027s always either single or double quotes, this would be more accurate as:\n\n import re\n ...\n self.assertIsNotNone(re.match(r\u0027^keystone_uri\u003d[\\\u0027\"]%s[\\\u0027\"]$\u0027 % auth_uri, auth_header, flags\u003dre.I))\n\n...or if there\u0027s an assertMatches I don\u0027t know about...","commit_id":"46d919c11ba3ad3324b175aae78f3535b231dc27"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"5491bd3c59f4ddc7123b910834205cafd34f4386","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        response \u003d req.get_response(app)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        auth_header \u003d response.headers[\u0027www-authenticate\u0027]"},{"line_number":42,"context_line":"        self.assertIn(auth_uri, auth_header)"},{"line_number":43,"context_line":"        self.assertIn(\u0027keystone uri\u003d\u0027, auth_header.lower())"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_32371d50","line":41,"in_reply_to":"5f7c97a3_12fd416d","updated":"2018-05-11 19:32:54.000000000","message":"There is a assertRegex or some such, but I decided that doing the assertIn\u0027s more accurately captured the intent of the test. We aren\u0027t trying to test keystonemiddleware here, we\u0027re trying to test that we are deploying it correctly.","commit_id":"46d919c11ba3ad3324b175aae78f3535b231dc27"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8bc6ad0cdb074dae04d14fecc37b4d641606ff2a","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        response \u003d req.get_response(app)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        auth_header \u003d response.headers[\u0027www-authenticate\u0027]"},{"line_number":42,"context_line":"        self.assertIn(auth_uri, auth_header)"},{"line_number":43,"context_line":"        self.assertIn(\u0027keystone uri\u003d\u0027, auth_header.lower())"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_927dd1b3","line":41,"in_reply_to":"5f7c97a3_32371d50","updated":"2018-05-11 19:52:49.000000000","message":"I get that; it\u0027s just that this will now also succeed with\n\n keystone_uri\u003d\u0027http://example.com/identity_hacker\u0027\n\nor\n\n keystone_uri\u003d\u0027http://hacker.com/x?hacked\u003dhttp://example.com/identity\u0027\n\netc.  Do we care?  I don\u0027t know.","commit_id":"46d919c11ba3ad3324b175aae78f3535b231dc27"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"2f3d7decd702706ed274ab9a01def6a686283e0f","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        response \u003d req.get_response(app)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        auth_header \u003d response.headers[\u0027www-authenticate\u0027]"},{"line_number":42,"context_line":"        self.assertIn(auth_uri, auth_header)"},{"line_number":43,"context_line":"        self.assertIn(\u0027keystone uri\u003d\u0027, auth_header.lower())"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_687cc282","line":41,"in_reply_to":"5f7c97a3_927dd1b3","updated":"2018-05-11 21:05:07.000000000","message":"\u003e Do we care?\n\ncdent: no","commit_id":"46d919c11ba3ad3324b175aae78f3535b231dc27"}]}
