def test_get_at_least_editable(self) -> None: editable_collection_summary_model = ( exp_models.ExpSummaryModel( id='id0', title='title', category='category', objective='objective', language_code='language_code', tags=['tag'], status=constants.ACTIVITY_STATUS_PRIVATE, community_owned=False, owner_ids=['a'], editor_ids=['editor_id'], viewer_ids=['viewer_id'], contributor_ids=[''], contributors_summary={}, version=0, exploration_model_last_updated=None, exploration_model_created_on=None, )) editable_collection_summary_model.update_timestamps() editable_collection_summary_model.put() uneditable_collection_summary_model = ( exp_models.ExpSummaryModel( id='id1', title='title', category='category', objective='objective', language_code='language_code', tags=['tag'], status=constants.ACTIVITY_STATUS_PRIVATE, community_owned=False, owner_ids=['owner_id'], editor_ids=['editor_id'], viewer_ids=['viewer_id'], contributor_ids=[''], contributors_summary={}, version=0, exploration_model_last_updated=None, exploration_model_created_on=None, )) uneditable_collection_summary_model.update_timestamps() uneditable_collection_summary_model.put() exploration_summary_models = ( exp_models.ExpSummaryModel .get_at_least_editable('a')) self.assertEqual(1, len(exploration_summary_models)) self.assertEqual('id0', exploration_summary_models[0].id) exploration_summary_models = ( exp_models.ExpSummaryModel .get_at_least_editable('viewer_id')) self.assertEqual(0, len(exploration_summary_models)) exploration_summary_models = ( exp_models.ExpSummaryModel .get_at_least_editable('nonexistent_id')) self.assertEqual(0, len(exploration_summary_models))
def test_get_non_private(self) -> None: public_exploration_summary_model = ( exp_models.ExpSummaryModel( id='id0', title='title', category='category', objective='objective', language_code='language_code', tags=['tag'], status=constants.ACTIVITY_STATUS_PUBLIC, community_owned=False, owner_ids=['owner_id'], editor_ids=['editor_id'], viewer_ids=['viewer_id'], contributor_ids=[''], contributors_summary={}, version=0, exploration_model_last_updated=None, exploration_model_created_on=None, )) public_exploration_summary_model.update_timestamps() public_exploration_summary_model.put() private_exploration_summary_model = ( exp_models.ExpSummaryModel( id='id1', title='title', category='category', objective='objective', language_code='language_code', tags=['tag'], status=constants.ACTIVITY_STATUS_PRIVATE, community_owned=False, owner_ids=['owner_id'], editor_ids=['editor_id'], viewer_ids=['viewer_id'], contributor_ids=[''], contributors_summary={}, version=0, exploration_model_last_updated=None, exploration_model_created_on=None, )) private_exploration_summary_model.update_timestamps() private_exploration_summary_model.put() exploration_summary_models = ( exp_models.ExpSummaryModel.get_non_private()) self.assertEqual( exploration_summary_models, [public_exploration_summary_model])
def test_has_reference_to_user_id(self) -> None: exp_models.ExpSummaryModel( id='id0', title='title', category='category', objective='objective', language_code='language_code', community_owned=False, owner_ids=['owner_id'], editor_ids=['editor_id'], viewer_ids=['viewer_id'], contributor_ids=['contributor_id'], ).put() self.assertTrue( exp_models.ExpSummaryModel .has_reference_to_user_id('owner_id')) self.assertTrue( exp_models.ExpSummaryModel .has_reference_to_user_id('editor_id')) self.assertTrue( exp_models.ExpSummaryModel .has_reference_to_user_id('viewer_id')) self.assertTrue( exp_models.ExpSummaryModel .has_reference_to_user_id('contributor_id')) self.assertFalse( exp_models.ExpSummaryModel .has_reference_to_user_id('x_id'))
def test_get_top_rated(self) -> None: good_rating_exploration_summary_model = ( exp_models.ExpSummaryModel( id='id0', title='title', category='category', objective='objective', language_code='language_code', tags=['tag'], status=constants.ACTIVITY_STATUS_PUBLIC, community_owned=False, owner_ids=['owner_id'], editor_ids=['editor_id'], viewer_ids=['viewer_id'], contributor_ids=[''], contributors_summary={}, version=0, exploration_model_last_updated=None, exploration_model_created_on=None, )) good_rating_exploration_summary_model.scaled_average_rating = 100 good_rating_exploration_summary_model.update_timestamps() good_rating_exploration_summary_model.put() bad_rating_exploration_summary_model = ( exp_models.ExpSummaryModel( id='id1', title='title', category='category', objective='objective', language_code='language_code', tags=['tag'], status=constants.ACTIVITY_STATUS_PUBLIC, community_owned=False, owner_ids=['owner_id'], editor_ids=['editor_id'], viewer_ids=['viewer_id'], contributor_ids=[''], contributors_summary={}, version=0, exploration_model_last_updated=None, exploration_model_created_on=None, )) bad_rating_exploration_summary_model.scaled_average_rating = 0 bad_rating_exploration_summary_model.update_timestamps() bad_rating_exploration_summary_model.put() self.assertEqual( exp_models.ExpSummaryModel.get_top_rated(1), [good_rating_exploration_summary_model]) self.assertEqual( exp_models.ExpSummaryModel.get_top_rated(2), [good_rating_exploration_summary_model, bad_rating_exploration_summary_model]) self.assertEqual( exp_models.ExpSummaryModel.get_top_rated(3), [good_rating_exploration_summary_model, bad_rating_exploration_summary_model]) # Test that private summaries should be ignored. good_rating_exploration_summary_model.status = ( constants.ACTIVITY_STATUS_PRIVATE) good_rating_exploration_summary_model.update_timestamps() good_rating_exploration_summary_model.put() self.assertEqual( exp_models.ExpSummaryModel.get_top_rated(2), [bad_rating_exploration_summary_model])