)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"b4bb16612ca24e6e2f186325a0b2f1f1eabd448a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, rbac_rule_validation decorator repeats code"},{"line_number":10,"context_line":"underneath \"except expected_exception\" and \"except RbacActionFailed\"."},{"line_number":11,"context_line":"These 2 blocks fo code can be merged by using a tuple that"},{"line_number":12,"context_line":"contains both of these exceptions on 1 line."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch makes the above change. It also adds a new exception"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1a1ced50_8d853bd0","line":11,"range":{"start_line":11,"start_character":15,"end_line":11,"end_character":17},"updated":"2017-03-22 17:13:08.000000000","message":"nit: of","commit_id":"df3457505387d96bc2163d038b5e7ca88ae18dd4"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"508b71b683761adec96e8aa88cfe5d8941bad853","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, rbac_rule_validation decorator repeats code"},{"line_number":10,"context_line":"underneath \"except expected_exception\" and \"except RbacActionFailed\"."},{"line_number":11,"context_line":"These 2 blocks fo code can be merged by using a tuple that"},{"line_number":12,"context_line":"contains both of these exceptions on 1 line."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch makes the above change. It also adds a new exception"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1a1ced50_f0f044cb","line":11,"range":{"start_line":11,"start_character":15,"end_line":11,"end_character":17},"in_reply_to":"1a1ced50_8d853bd0","updated":"2017-03-22 17:16:28.000000000","message":"Done","commit_id":"df3457505387d96bc2163d038b5e7ca88ae18dd4"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"d4d1733b6408a241f003b1fd15150d4820820c91","unresolved":false,"context_lines":[{"line_number":18,"context_line":"That is, a more informative error message is thrown than"},{"line_number":19,"context_line":"otherwise would be."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"This patch finally fixes test_expect_not_found_but_raises_forbidden"},{"line_number":22,"context_line":"which was expecting a 404 but raising a 404 via mock\u0027s side_effect,"},{"line_number":23,"context_line":"when instead a 404 should be expected and a 403 thrown."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Change-Id: Idea4a45f721893c997acbfb2a1beb978ccfe11e6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ffe62b97_087dcb1b","line":23,"range":{"start_line":21,"start_character":0,"end_line":23,"end_character":55},"updated":"2017-03-23 20:47:33.000000000","message":"Perhaps update this with a description of what you did with the unit tests","commit_id":"3d310bf0fbe0a3eb5bfbfbbc6caae8f8f5816709"}],"patrole_tempest_plugin/tests/unit/test_rbac_rule_validation.py":[{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"b4bb16612ca24e6e2f186325a0b2f1f1eabd448a","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    def test_RBAC_rv_rbac_action_failed(self, mock_auth, mock_log):"},{"line_number":98,"context_line":"        decorator \u003d rbac_rv.action(mock.sentinel.service, mock.sentinel.action)"},{"line_number":99,"context_line":"        mock_function \u003d mock.Mock()"},{"line_number":100,"context_line":"        mock_function.side_effect \u003d rbac_exceptions.RbacActionFailed"},{"line_number":101,"context_line":"        wrapper \u003d decorator(mock_function)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        e \u003d self.assertRaises(exceptions.Forbidden, wrapper, self.mock_args)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_50a118f7","line":100,"range":{"start_line":100,"start_character":8,"end_line":100,"end_character":68},"updated":"2017-03-22 17:13:08.000000000","message":"following what you did for the test above, should this also be:\n\nmock_function.side_effect \u003d exceptions.Forbidden","commit_id":"df3457505387d96bc2163d038b5e7ca88ae18dd4"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"508b71b683761adec96e8aa88cfe5d8941bad853","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    def test_RBAC_rv_rbac_action_failed(self, mock_auth, mock_log):"},{"line_number":98,"context_line":"        decorator \u003d rbac_rv.action(mock.sentinel.service, mock.sentinel.action)"},{"line_number":99,"context_line":"        mock_function \u003d mock.Mock()"},{"line_number":100,"context_line":"        mock_function.side_effect \u003d rbac_exceptions.RbacActionFailed"},{"line_number":101,"context_line":"        wrapper \u003d decorator(mock_function)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        e \u003d self.assertRaises(exceptions.Forbidden, wrapper, self.mock_args)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_d01ee80a","line":100,"range":{"start_line":100,"start_character":8,"end_line":100,"end_character":68},"in_reply_to":"1a1ced50_50a118f7","updated":"2017-03-22 17:16:28.000000000","message":"No, because rbac_rule_validation catches the RbacActionFailed and then re-raises the exception as Forbidden.","commit_id":"df3457505387d96bc2163d038b5e7ca88ae18dd4"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"15127106015e5b825696f10ec5b297e6f7427c74","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    def test_RBAC_rv_rbac_action_failed(self, mock_auth, mock_log):"},{"line_number":98,"context_line":"        decorator \u003d rbac_rv.action(mock.sentinel.service, mock.sentinel.action)"},{"line_number":99,"context_line":"        mock_function \u003d mock.Mock()"},{"line_number":100,"context_line":"        mock_function.side_effect \u003d rbac_exceptions.RbacActionFailed"},{"line_number":101,"context_line":"        wrapper \u003d decorator(mock_function)"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        e \u003d self.assertRaises(exceptions.Forbidden, wrapper, self.mock_args)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_10716044","line":100,"range":{"start_line":100,"start_character":8,"end_line":100,"end_character":68},"in_reply_to":"1a1ced50_d01ee80a","updated":"2017-03-22 17:18:20.000000000","message":"So doesn\u0027t the test above catch NotFound and then re-raise exception as Forbidden?","commit_id":"df3457505387d96bc2163d038b5e7ca88ae18dd4"}]}
