)]}'
{"openstack_dashboard/test/helpers.py":[{"author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"change_message_id":"58a7b2203d916ab62301efdaa882335009605914","unresolved":true,"context_lines":[{"line_number":273,"context_line":"        if response.has_header(\u0027location\u0027):"},{"line_number":274,"context_line":"            loc \u003d response[\u0027location\u0027]"},{"line_number":275,"context_line":"        else:"},{"line_number":276,"context_line":"            loc \u003d \u0027\u0027"},{"line_number":277,"context_line":"        loc \u003d http.urlunquote(loc)"},{"line_number":278,"context_line":"        expected_url \u003d http.urlunquote(expected_url)"},{"line_number":279,"context_line":"        self.assertEqual(loc, expected_url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"a3c8127a_3935325f","line":276,"updated":"2021-09-14 12:33:30.000000000","message":"Should be loc\u003d\"None\" if we want to preserve the previous behavior, though I\u0027m not sure we want that.","commit_id":"b50cabeff137bfad8712e365d435a1254e6f885b"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"803c6576545c8a5f4a18e19a2b1094612982b5c8","unresolved":true,"context_lines":[{"line_number":273,"context_line":"        if response.has_header(\u0027location\u0027):"},{"line_number":274,"context_line":"            loc \u003d response[\u0027location\u0027]"},{"line_number":275,"context_line":"        else:"},{"line_number":276,"context_line":"            loc \u003d \u0027\u0027"},{"line_number":277,"context_line":"        loc \u003d http.urlunquote(loc)"},{"line_number":278,"context_line":"        expected_url \u003d http.urlunquote(expected_url)"},{"line_number":279,"context_line":"        self.assertEqual(loc, expected_url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"15354210_47fa6dda","line":276,"in_reply_to":"272d35d7_84ffdb8b","updated":"2021-09-16 03:47:38.000000000","message":"\u003e This is intentional. The previous code does not work if \u0027location\u0027 does not exist in _header. None[1] raises TypError. loc is expected to be a string, so I used \u0027\u0027 instead.\n\nOn second thought, assertRedirectNoFollow is used to check the redirect location is expected. It might be better to check \u0027location\u0027 header exists rather than considering a case where \u0027location\u0027 header is not included. I will follow it up later.","commit_id":"b50cabeff137bfad8712e365d435a1254e6f885b"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"003da82985584a8325355dbd28a0176664b1a29a","unresolved":true,"context_lines":[{"line_number":273,"context_line":"        if response.has_header(\u0027location\u0027):"},{"line_number":274,"context_line":"            loc \u003d response[\u0027location\u0027]"},{"line_number":275,"context_line":"        else:"},{"line_number":276,"context_line":"            loc \u003d \u0027\u0027"},{"line_number":277,"context_line":"        loc \u003d http.urlunquote(loc)"},{"line_number":278,"context_line":"        expected_url \u003d http.urlunquote(expected_url)"},{"line_number":279,"context_line":"        self.assertEqual(loc, expected_url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"272d35d7_84ffdb8b","line":276,"in_reply_to":"a3c8127a_3935325f","updated":"2021-09-15 12:40:37.000000000","message":"This is intentional. The previous code does not work if \u0027location\u0027 does not exist in _header. None[1] raises TypError. loc is expected to be a string, so I used \u0027\u0027 instead.","commit_id":"b50cabeff137bfad8712e365d435a1254e6f885b"}]}
