Beispiel #1
0
def _get_thread_from_model(thread_model):
    """Converts the given FeedbackThreadModel to a FeedbackThread object.

    Args:
        thread_model: FeedbackThreadModel.

    Returns:
        FeedbackThread. The corresponding FeedbackThread domain object.
    """
    if constants.ENABLE_GENERALIZED_FEEDBACK_THREADS:
        message_model = feedback_models.GeneralFeedbackMessageModel
    else:
        message_model = feedback_models.FeedbackMessageModel
    if thread_model.message_count is None:
        message_count = message_model.get_message_count(thread_model.id)
    else:
        message_count = thread_model.message_count
    if constants.ENABLE_GENERALIZED_FEEDBACK_THREADS:
        return feedback_domain.FeedbackThread(
            thread_model.id, thread_model.entity_type, thread_model.entity_id,
            None, thread_model.original_author_id, thread_model.status,
            thread_model.subject, thread_model.summary,
            thread_model.has_suggestion, message_count,
            thread_model.created_on, thread_model.last_updated)
    else:
        return feedback_domain.FeedbackThread(
            thread_model.id, None, thread_model.exploration_id,
            thread_model.state_name, thread_model.original_author_id,
            thread_model.status, thread_model.subject, thread_model.summary,
            thread_model.has_suggestion, message_count,
            thread_model.created_on, thread_model.last_updated)
Beispiel #2
0
    def test_get_last_two_message_ids(self):
        fake_date = datetime.datetime(2016, 4, 10, 0, 0, 0, 0)
        thread_1 = feedback_domain.FeedbackThread(self.THREAD_ID, self.EXP_ID,
                                                  u'a_state_name',
                                                  self.viewer_id, u'open',
                                                  u'a subject', None, False, 5,
                                                  fake_date, fake_date)

        last_two_message_ids = thread_1.get_last_two_message_ids()
        self.assertEqual(
            last_two_message_ids,
            [thread_1.get_full_message_id(4),
             thread_1.get_full_message_id(3)])

        # Check what happens in case the thread has only one message.
        thread_1 = feedback_domain.FeedbackThread(self.THREAD_ID, self.EXP_ID,
                                                  u'a_state_name',
                                                  self.viewer_id, u'open',
                                                  u'a subject', None, False, 1,
                                                  fake_date, fake_date)

        last_two_message_ids = thread_1.get_last_two_message_ids()
        # The second last message should be given an id of -1 as it doesn't
        # exist.
        self.assertEqual(last_two_message_ids,
                         [thread_1.get_full_message_id(0), None])
Beispiel #3
0
 def test_to_dict(self) -> None:
     fake_date = datetime.datetime(2016, 4, 10, 0, 0, 0, 0)
     expected_thread_dict: feedback_domain.FeedbackThreadDict = {
         'thread_id': self.THREAD_ID,
         'status': u'open',
         'state_name': u'a_state_name',
         'summary': 'test summary',
         'original_author_id': self.viewer_id,
         'message_count': 1,
         'subject': u'a subject',
         'last_updated_msecs': utils.get_time_in_millisecs(fake_date),
         'last_nonempty_message_text': 'last message',
         'last_nonempty_message_author_id': self.viewer_id,
     }
     observed_thread = feedback_domain.FeedbackThread(
         self.THREAD_ID, feconf.ENTITY_TYPE_EXPLORATION, self.EXP_ID,
         expected_thread_dict['state_name'], self.viewer_id,
         expected_thread_dict['status'], expected_thread_dict['subject'],
         expected_thread_dict['summary'], False, 1, fake_date, fake_date,
         'last message', self.viewer_id)
     # Using type ignore[arg-type] here because assertDictEqual method
     # expects both arguments to be of type Dict[Any, Any].
     self.assertDictEqual(
         expected_thread_dict,
         observed_thread.to_dict())  # type: ignore[arg-type]
def _get_thread_from_model(thread_model):
    return feedback_domain.FeedbackThread(
        thread_model.id, thread_model.exploration_id, thread_model.state_name,
        thread_model.original_author_id, thread_model.status,
        thread_model.subject, thread_model.summary,
        thread_model.has_suggestion, thread_model.created_on,
        thread_model.last_updated)
    def test_get_last_two_message_ids_from_thread_with_only_one_message(self):
        fake_date = datetime.datetime(2016, 4, 10, 0, 0, 0, 0)
        thread = feedback_domain.FeedbackThread(
            self.THREAD_ID, feconf.ENTITY_TYPE_EXPLORATION, self.EXP_ID,
            u'a_state_name', self.viewer_id, u'open', u'a subject', None, False,
            1, # This value decides the number of messages.
            fake_date, fake_date, 'last message', self.VIEWER_USERNAME)

        self.assertEqual(
            thread.get_last_two_message_ids(), ['exp0.thread0.0', None])
Beispiel #6
0
    def test_get_last_two_message_ids_from_thread_with_many_messages(
        self
    ) -> None:
        fake_date = datetime.datetime(2016, 4, 10, 0, 0, 0, 0)
        thread = feedback_domain.FeedbackThread(
            self.THREAD_ID, feconf.ENTITY_TYPE_EXPLORATION, self.EXP_ID,
            u'a_state_name', self.viewer_id, u'open', u'a subject',
            # This value of "5" decides the number of messages.
            'test summary', False, 5, fake_date, fake_date, 'last message',
            self.VIEWER_USERNAME)

        self.assertEqual(
            thread.get_last_two_message_ids(),
            ['exp0.thread0.4', 'exp0.thread0.3'])
Beispiel #7
0
def _get_thread_from_model(thread_model):
    """Converts the given FeedbackThreadModel to a FeedbackThread object.

    Args:
        thread_model: FeedbackThreadModel.

    Returns:
        FeedbackThread. The corresponding FeedbackThread domain object.
    """
    return feedback_domain.FeedbackThread(
        thread_model.id, thread_model.exploration_id, thread_model.state_name,
        thread_model.original_author_id, thread_model.status,
        thread_model.subject, thread_model.summary,
        thread_model.has_suggestion, thread_model.created_on,
        thread_model.last_updated)
Beispiel #8
0
 def test_to_dict(self):
     fake_date = datetime.datetime(2016, 4, 10, 0, 0, 0, 0)
     expected_thread_dict = {
         'thread_id': self.THREAD_ID,
         'status': u'open',
         'state_name': u'a_state_name',
         'summary': None,
         'original_author_username': self.VIEWER_USERNAME,
         'subject': u'a subject',
         'last_updated': utils.get_time_in_millisecs(fake_date)
     }
     observed_thread = feedback_domain.FeedbackThread(
         self.FULL_THREAD_ID, self.EXP_ID,
         expected_thread_dict['state_name'], self.viewer_id,
         expected_thread_dict['status'], expected_thread_dict['subject'],
         expected_thread_dict['summary'], False, fake_date, fake_date)
     self.assertDictEqual(expected_thread_dict, observed_thread.to_dict())
def _get_thread_from_model(thread_model):
    """Converts the given FeedbackThreadModel to a FeedbackThread object.

    Args:
        thread_model: FeedbackThreadModel.

    Returns:
        FeedbackThread. The corresponding FeedbackThread domain object.
    """
    message_count = (
        thread_model.message_count
        or feedback_models.GeneralFeedbackMessageModel.get_message_count(
            thread_model.id))
    return feedback_domain.FeedbackThread(
        thread_model.id, thread_model.entity_type, thread_model.entity_id,
        None, thread_model.original_author_id, thread_model.status,
        thread_model.subject, thread_model.summary,
        thread_model.has_suggestion, message_count, thread_model.created_on,
        thread_model.last_updated, thread_model.last_nonempty_message_text,
        thread_model.last_nonempty_message_author_id)
Beispiel #10
0
def _get_thread_from_model(thread_model):
    """Converts the given FeedbackThreadModel to a FeedbackThread object.

    Args:
        thread_model: FeedbackThreadModel.

    Returns:
        FeedbackThread. The corresponding FeedbackThread domain object.
    """
    if thread_model.message_count is None:
        message_count = feedback_models.FeedbackMessageModel.get_message_count(
            thread_model.exploration_id, thread_model.thread_id)
    else:
        message_count = thread_model.message_count

    return feedback_domain.FeedbackThread(
        thread_model.id, thread_model.exploration_id, thread_model.state_name,
        thread_model.original_author_id, thread_model.status,
        thread_model.subject, thread_model.summary, thread_model.has_suggestion,
        message_count, thread_model.created_on, thread_model.last_updated)
 def test_to_dict(self):
     fake_date = datetime.datetime(2016, 4, 10, 0, 0, 0, 0)
     expected_thread_dict = {
         'thread_id': self.THREAD_ID,
         'status': u'open',
         'state_name': u'a_state_name',
         'summary': None,
         'original_author_username': self.VIEWER_USERNAME,
         'message_count': 1,
         'subject': u'a subject',
         'last_updated_msecs': utils.get_time_in_millisecs(fake_date),
         'last_nonempty_message_text': 'last message',
         'last_nonempty_message_author': self.VIEWER_USERNAME,
     }
     observed_thread = feedback_domain.FeedbackThread(
         self.THREAD_ID, feconf.ENTITY_TYPE_EXPLORATION, self.EXP_ID,
         expected_thread_dict['state_name'], self.viewer_id,
         expected_thread_dict['status'], expected_thread_dict['subject'],
         expected_thread_dict['summary'], False, 1, fake_date, fake_date,
         'last message', self.viewer_id)
     self.assertDictEqual(expected_thread_dict, observed_thread.to_dict())