)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9fdc71eb56750b817864e45299ffeb82886ab38e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"assignment\" happens if the expected xml has a child element and actual"},{"line_number":11,"context_line":"has not."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Fallback to the first element if no nodes match."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I2773cfb5b3c2a13d514899c64dc052086134a5c4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9fdfeff1_7f7bbb28","line":13,"updated":"2019-02-19 22:28:17.000000000","message":"It would be nice to see the stack trace you mention in your comment, as well as an example of a test case that triggers the problem. I would say you shouldn\u0027t necessarily do that in the commit message; instead open a bug (which has the added benefit of allowing this fix to be backported if we feel like it, as I assume it\u0027s also a problem in earlier releases), put the information in there, and reference it here with\n\n Closes-Bug: #XXXXXXX","commit_id":"08be016aec042558ca536fa3494cbc960b1cb734"}],"nova/tests/unit/matchers.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9fdc71eb56750b817864e45299ffeb82886ab38e","unresolved":false,"context_lines":[{"line_number":527,"context_line":"                    matched_actual_child_idxs.add(actual_child_idx)"},{"line_number":528,"context_line":"                else:"},{"line_number":529,"context_line":"                    return XMLExpectedChild(state, expected_child.tag,"},{"line_number":530,"context_line":"                                            first_actual_child_idx + 1)"},{"line_number":531,"context_line":"            # Make sure we consumed all nodes in actual"},{"line_number":532,"context_line":"            for actual_child_idx, actual_child in enumerate(actual):"},{"line_number":533,"context_line":"                if (actual_child.tag not in self.SKIP_TAGS and"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_bfb3630a","line":530,"range":{"start_line":530,"start_character":44,"end_line":530,"end_character":71},"updated":"2019-02-19 22:28:17.000000000","message":"This is going to give you 1, but (if I understand the error case correctly) you actually want 0.\n\nSuggest instead initializing actual_child_idx to -1 above the loop at L506.","commit_id":"08be016aec042558ca536fa3494cbc960b1cb734"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"53660f5455aee27915292ee9a1847b4db34de2b3","unresolved":false,"context_lines":[{"line_number":527,"context_line":"                    matched_actual_child_idxs.add(actual_child_idx)"},{"line_number":528,"context_line":"                else:"},{"line_number":529,"context_line":"                    return XMLExpectedChild(state, expected_child.tag,"},{"line_number":530,"context_line":"                                            first_actual_child_idx + 1)"},{"line_number":531,"context_line":"            # Make sure we consumed all nodes in actual"},{"line_number":532,"context_line":"            for actual_child_idx, actual_child in enumerate(actual):"},{"line_number":533,"context_line":"                if (actual_child.tag not in self.SKIP_TAGS and"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_5f8d97d1","line":530,"range":{"start_line":530,"start_character":44,"end_line":530,"end_character":71},"in_reply_to":"9fdfeff1_bfb3630a","updated":"2019-02-19 22:50:51.000000000","message":"Confirmed that this does the wrong thing, based on your new failing test case - but my suggestion also does the wrong thing. I couldn\u0027t suss it after diddling with it for a couple of minutes; so I leave it to you :P","commit_id":"08be016aec042558ca536fa3494cbc960b1cb734"}]}
