def test_resubmit_accepted_suggestion_failure(self): with self.swap(feedback_models.GeneralFeedbackThreadModel, 'generate_new_thread_id', self.mock_generate_new_thread_id): with self.swap(exp_services, 'get_exploration_by_id', self.mock_get_exploration_by_id): suggestion_services.create_suggestion( suggestion_models.SUGGESTION_TYPE_EDIT_STATE_CONTENT, suggestion_models.TARGET_TYPE_EXPLORATION, self.target_id, self.target_version_at_submission, self.author_id, self.change, 'test description', self.reviewer_id) suggestion = suggestion_services.get_suggestion_by_id( self.suggestion_id) with self.swap(suggestion_registry.SuggestionEditStateContent, 'accept', self.mock_accept_does_nothing): suggestion_services.accept_suggestion( suggestion, self.reviewer_id, self.COMMIT_MESSAGE, 'review message') suggestion = suggestion_services.get_suggestion_by_id( self.suggestion_id) with self.assertRaisesRegexp( Exception, 'The suggestion was accepted. Only rejected suggestions ' 'can be resubmitted.'): suggestion_services.resubmit_rejected_suggestion( suggestion, 'resubmit summary message', self.author_id)
def put(self, suggestion_id): suggestion = suggestion_services.get_suggestion_by_id(suggestion_id) new_change = self.payload.get('change') change_cls = type(suggestion.change) change_object = change_cls(new_change) summary_message = self.payload.get('summary_message') suggestion_services.resubmit_rejected_suggestion( suggestion_id, summary_message, self.user_id, change_object) self.render_json(self.values)
def put(self, suggestion_id): """Handles PUT requests. Args: suggestion_id: str. The ID of the suggestion. """ suggestion = suggestion_services.get_suggestion_by_id(suggestion_id) new_change = self.payload.get('change') change_cls = type(suggestion.change) change_object = change_cls(new_change) summary_message = self.payload.get('summary_message') suggestion_services.resubmit_rejected_suggestion( suggestion_id, summary_message, self.user_id, change_object) self.render_json(self.values)
def put(self, suggestion_id): suggestion = suggestion_services.get_suggestion_by_id(suggestion_id) if not suggestion: raise self.InvalidInputException( 'No suggestion found with given suggestion id') new_change = self.payload.get('change') change_cls = type(suggestion.change) change_object = change_cls(new_change) suggestion.pre_update_validate(change_object) suggestion.change = change_object summary_message = self.payload.get('summary_message') suggestion_services.resubmit_rejected_suggestion( suggestion, summary_message, self.user_id) self.render_json(self.values)
def test_resubmit_rejected_suggestion_success(self): with self.swap(feedback_models.GeneralFeedbackThreadModel, 'generate_new_thread_id', self.generate_thread_id): with self.swap(exp_services, 'get_exploration_by_id', self.mock_get_exploration_by_id): suggestion_services.create_suggestion( suggestion_models.SUGGESTION_TYPE_EDIT_STATE_CONTENT, suggestion_models.TARGET_TYPE_EXPLORATION, self.target_id, self.target_version_at_submission, self.author_id, self.change, 'test description', self.reviewer_id) suggestion = suggestion_services.get_suggestion_by_id( self.suggestion_id) suggestion_services.reject_suggestion(suggestion, self.reviewer_id, 'reject review message') suggestion_services.resubmit_rejected_suggestion( suggestion, 'resubmit summary message', self.author_id) suggestion = suggestion_services.get_suggestion_by_id( self.suggestion_id) self.assertEqual(suggestion.status, suggestion_models.STATUS_IN_REVIEW)
def test_resubmit_rejected_suggestion_failure(self): with self.swap(feedback_models.GeneralFeedbackThreadModel, 'generate_new_thread_id', self.generate_thread_id): with self.swap(exp_services, 'get_exploration_by_id', self.mock_get_exploration_by_id): suggestion_services.create_suggestion( suggestion_models.SUGGESTION_TYPE_EDIT_STATE_CONTENT, suggestion_models.TARGET_TYPE_EXPLORATION, self.target_id, self.target_version_at_submission, self.author_id, self.change, 'test description', self.reviewer_id) suggestion = suggestion_services.get_suggestion_by_id( self.suggestion_id) with self.assertRaisesRegexp(Exception, 'Summary message cannot be empty.'): suggestion_services.resubmit_rejected_suggestion( suggestion, '', self.author_id) with self.assertRaisesRegexp(Exception, 'The suggestion is not yet handled.'): suggestion_services.resubmit_rejected_suggestion( suggestion, 'resubmit summary message', self.author_id)