def test_get_multi(self) -> None: feedback_models.GeneralFeedbackThreadUserModel.create( 'user_id', 'exploration.exp_id.thread_id_1') feedback_models.GeneralFeedbackThreadUserModel.create( 'user_id', 'exploration.exp_id.thread_id_2') expected_model_1 = feedback_models.GeneralFeedbackThreadUserModel( id='user_id.exploration.exp_id.thread_id_1', user_id='user_id', thread_id='exploration.exp_id.thread_id_1', message_ids_read_by_user=[]) expected_model_2 = feedback_models.GeneralFeedbackThreadUserModel( id='user_id.exploration.exp_id.thread_id_2', user_id='user_id', thread_id='exploration.exp_id.thread_id_2', message_ids_read_by_user=[]) actual_models = ( feedback_models.GeneralFeedbackThreadUserModel.get_multi( 'user_id', ['exploration.exp_id.thread_id_1', 'exploration.exp_id.thread_id_2'])) actual_model_1 = actual_models[0] actual_model_2 = actual_models[1] # Ruling out the possibility of None for mypy type checking. assert actual_model_1 is not None assert actual_model_2 is not None self.assertEqual(actual_model_1.id, expected_model_1.id) self.assertEqual(actual_model_1.user_id, expected_model_1.user_id) self.assertEqual(actual_model_1.thread_id, expected_model_1.thread_id) self.assertEqual( actual_model_1.message_ids_read_by_user, expected_model_1.message_ids_read_by_user) self.assertEqual(actual_model_2.id, expected_model_2.id) self.assertEqual(actual_model_2.user_id, expected_model_2.user_id) self.assertEqual(actual_model_2.thread_id, expected_model_2.thread_id) self.assertEqual( actual_model_2.message_ids_read_by_user, expected_model_2.message_ids_read_by_user)
def test_has_reference_to_user_id(self) -> None: feedback_models.GeneralFeedbackThreadUserModel( id='id', thread_id='thread_id', user_id='user_id', ).put() self.assertTrue( feedback_models.GeneralFeedbackThreadUserModel. has_reference_to_user_id('user_id')) self.assertFalse( feedback_models.GeneralFeedbackThreadUserModel. has_reference_to_user_id('id_x'))
def test_get_object(self) -> None: feedback_models.GeneralFeedbackThreadUserModel.create( 'user_id', 'exploration.exp_id.thread_id') expected_model = feedback_models.GeneralFeedbackThreadUserModel( id='user_id.exploration.exp_id.thread_id', user_id='user_id', thread_id='exploration.exp_id.thread_id', message_ids_read_by_user=[]) actual_model = (feedback_models.GeneralFeedbackThreadUserModel.get( 'user_id', 'exploration.exp_id.thread_id')) # Ruling out the possibility of None for mypy type checking. assert actual_model is not None self.assertEqual(actual_model.id, expected_model.id) self.assertEqual(actual_model.user_id, expected_model.user_id) self.assertEqual(actual_model.thread_id, expected_model.thread_id) self.assertEqual(actual_model.message_ids_read_by_user, expected_model.message_ids_read_by_user)
def test_put_function(self) -> None: feedback_thread_model = feedback_models.GeneralFeedbackThreadUserModel( id='user_id.exploration.exp_id.thread_id', user_id='user_id', thread_id='exploration.exp_id.thread_id', message_ids_read_by_user=[]) feedback_thread_model.update_timestamps() feedback_thread_model.put() last_updated = feedback_thread_model.last_updated # If we do not wish to update the last_updated time, we should set # the update_last_updated_time argument to False in the put function. feedback_thread_model.update_timestamps(update_last_updated_time=False) feedback_thread_model.put() self.assertEqual(feedback_thread_model.last_updated, last_updated) # If we do wish to change it however, we can simply use the put function # as the default value of update_last_updated_time is True. feedback_thread_model.update_timestamps() feedback_thread_model.put() self.assertNotEqual(feedback_thread_model.last_updated, last_updated)