示例#1
0
    def test_message_for_public_post_commit_status_raise_exception(self):
        model = base_models.BaseCommitLogEntryModel(
            id='123',
            created_on=self.YEAR_AGO,
            last_updated=self.NOW,
            commit_type='create',
            user_id='',
            post_commit_status='public',
            post_commit_community_owned=False,
            commit_cmds=[])
        error = base_validation_errors.InvalidPublicCommitStatusError(model)

        self.assertEqual(
            error.stderr, 'InvalidPublicCommitStatusError in '
            'BaseCommitLogEntryModel(id="123"): post_commit_status=public '
            'but post_commit_community_owned=False')
    def test_validate_post_commit_is_public_raise_exception(self):
        invalid_commit_status = base_models.BaseCommitLogEntryModel(
            id='123',
            created_on=self.YEAR_AGO,
            last_updated=self.NOW,
            commit_type='create',
            user_id='',
            post_commit_status='public',
            post_commit_community_owned=False,
            commit_cmds=[])

        output = (self.pipeline
                  | beam.Create([invalid_commit_status])
                  | beam.ParDo(base_validation.ValidatePostCommitIsPublic()))

        self.assert_pcoll_equal(output, [
            base_validation_errors.InvalidPublicCommitStatusError(
                invalid_commit_status),
        ])
示例#3
0
    def process(self, entity):
        """Function validates that post_commit_is_public is true iff
        post_commit_status is public.

        Args:
            entity: base_models.BaseCommitLogEntryModel. Entity to validate.

        Yields:
            InvalidPublicCommitStatusError. Error for public commit_type
            validation.
        """
        cloned_entity = job_utils.clone_model(entity)

        expected_post_commit_is_public = (cloned_entity.post_commit_status ==
                                          feconf.POST_COMMIT_STATUS_PUBLIC)
        if (cloned_entity.post_commit_community_owned !=
                expected_post_commit_is_public):
            yield base_validation_errors.InvalidPublicCommitStatusError(
                cloned_entity)