Example #1
0
    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))
Example #2
0
    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])
Example #3
0
 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'))
Example #4
0
    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])