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), ])
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)