)]}'
{"keystone/federation/utils.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"df8981756c277307205098f7f08ac008a05bd029","unresolved":false,"context_lines":[{"line_number":812,"context_line":"                                     if v in whitelisted_values]"},{"line_number":813,"context_line":""},{"line_number":814,"context_line":"            if not direct_map_values:"},{"line_number":815,"context_line":"                return None"},{"line_number":816,"context_line":"            direct_maps.add(direct_map_values)"},{"line_number":817,"context_line":""},{"line_number":818,"context_line":"            LOG.debug(\u0027updating a direct mapping: %s\u0027, direct_map_values)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f201791_15e07e25","line":815,"updated":"2017-06-27 21:26:21.000000000","message":"This is not correct. It is valid to have neither a blacklist or whitelist, but this will return None if there is no blacklist or whitelist, when it should return an empty array.","commit_id":"2344132268fe04e076c07d206924c9a7f40aa0e6"},{"author":{"_account_id":17430,"name":"yangweiwei","email":"yangweiwei@cmss.chinamobile.com","username":"yangweiwei"},"change_message_id":"33530ea822cb3d05725605a53e7e4c98c81c4534","unresolved":false,"context_lines":[{"line_number":812,"context_line":"                                     if v in whitelisted_values]"},{"line_number":813,"context_line":""},{"line_number":814,"context_line":"            if not direct_map_values:"},{"line_number":815,"context_line":"                return None"},{"line_number":816,"context_line":"            direct_maps.add(direct_map_values)"},{"line_number":817,"context_line":""},{"line_number":818,"context_line":"            LOG.debug(\u0027updating a direct mapping: %s\u0027, direct_map_values)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f201791_d8123662","line":815,"in_reply_to":"5f201791_15e07e25","updated":"2017-06-28 03:18:21.000000000","message":"Thanks for review it.","commit_id":"2344132268fe04e076c07d206924c9a7f40aa0e6"}],"keystone/tests/unit/contrib/federation/test_utils.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"df8981756c277307205098f7f08ac008a05bd029","unresolved":false,"context_lines":[{"line_number":445,"context_line":"        rp \u003d mapping_utils.RuleProcessor(FAKE_MAPPING_ID, mapping[\u0027rules\u0027])"},{"line_number":446,"context_line":"        self.assertRaises(exception.ValidationError,"},{"line_number":447,"context_line":"                          rp.process,"},{"line_number":448,"context_line":"                          assertion)"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    def test_rule_engine_user_in_blacklist(self):"},{"line_number":451,"context_line":"        \"\"\"Test for the correct error when user is in the blacklist."}],"source_content_type":"text/x-python","patch_set":3,"id":"5f201791_b5caea9d","line":448,"updated":"2017-06-27 21:26:21.000000000","message":"This is a major change in behavior, if your change is breaking this test then it is changing functionality in a backwards incompatible way","commit_id":"2344132268fe04e076c07d206924c9a7f40aa0e6"}]}
