Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
 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)