Example #1
0
    def test_model_invalid_id_error(self) -> None:
        model = base_models.BaseCommitLogEntryModel(id='123',
                                                    created_on=self.YEAR_AGO,
                                                    last_updated=self.NOW,
                                                    commit_type='invalid-type',
                                                    user_id='',
                                                    post_commit_status='',
                                                    commit_cmds=[])
        error = base_validation_errors.InvalidCommitTypeError(model)

        self.assertEqual(
            error.stderr,
            'InvalidCommitTypeError in BaseCommitLogEntryModel(id="123"): '
            'Commit type invalid-type is not allowed')
Example #2
0
    def test_message(self) -> None:
        model = base_models.BaseCommitLogEntryModel(id='invalid',
                                                    created_on=self.YEAR_AGO,
                                                    last_updated=self.NOW,
                                                    commit_type='test',
                                                    user_id='',
                                                    post_commit_status='',
                                                    commit_cmds=[{}])
        error = base_validation_errors.CommitCmdsNoneError(model)

        self.assertEqual(
            error.stderr,
            'CommitCmdsNoneError in BaseCommitLogEntryModel(id="invalid"): '
            'No commit command domain object '
            'defined for entity with commands: [{}]')
Example #3
0
 def test_message_for_invalid_post_commit_status(self) -> None:
     model = base_models.BaseCommitLogEntryModel(
         id='123',
         created_on=self.YEAR_AGO,
         last_updated=self.NOW,
         commit_type='invalid-type',
         user_id='',
         post_commit_status='invalid',
         post_commit_is_private=False,
         commit_cmds=[])
     error = base_validation_errors.InvalidCommitStatusError(model)
     self.assertEqual(
         error.stderr,
         'InvalidCommitStatusError in BaseCommitLogEntryModel(id="123"): '
         'post_commit_status is invalid')
Example #4
0
    def test_message_for_public_post_commit_status(self) -> None:
        model = base_models.BaseCommitLogEntryModel(
            id='123',
            created_on=self.YEAR_AGO,
            last_updated=self.NOW,
            commit_type='invalid-type',
            user_id='',
            post_commit_status='public',
            post_commit_is_private=True,
            commit_cmds=[])
        error = base_validation_errors.InvalidPrivateCommitStatusError(model)

        self.assertEqual(
            error.stderr, 'InvalidPrivateCommitStatusError in '
            'BaseCommitLogEntryModel(id="123"): post_commit_status=public '
            'but post_commit_is_private=True')
Example #5
0
    def test_validate_commit_cmds(self) -> None:
        invalid_commit_cmd_model = base_models.BaseCommitLogEntryModel(
            id='123',
            created_on=self.YEAR_AGO,
            last_updated=self.NOW,
            commit_type='test',
            user_id='',
            post_commit_status='',
            commit_cmds=[{'cmd': base_models.VersionedModel.CMD_DELETE_COMMIT}])

        output = (
            self.pipeline
            | beam.Create([invalid_commit_cmd_model])
            | beam.ParDo(MockValidateWrongSchema())
        )

        self.assert_pcoll_equal(output, [])
Example #6
0
    def test_message_for_public_post_commit_status_raise_exception(
            self) -> None:
        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')
Example #7
0
    def test_validate_raise_not_implemented(self) -> None:
        invalid_commit_cmd_model = base_models.BaseCommitLogEntryModel(
            id='123',
            created_on=self.YEAR_AGO,
            last_updated=self.NOW,
            commit_type='test',
            user_id='',
            post_commit_status='',
            commit_cmds=[{}])

        with self.assertRaisesRegex(  # type: ignore[no-untyped-call]
            NotImplementedError,
            re.escape(
                'The _get_change_domain_class() method is missing from the '
                'derived class. It should be implemented in the derived class.'
            )
        ):
            MockValidateCommitCmdsSchema().process(invalid_commit_cmd_model)
Example #8
0
    def test_validate_post_commit_is_public_when_status_is_public(self) -> None:
        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=True,
            commit_cmds=[])

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

        self.assert_pcoll_empty(output)
Example #9
0
    def test_validate_none_commit(self) -> None:
        invalid_commit_cmd_model = base_models.BaseCommitLogEntryModel(
            id='invalid',
            created_on=self.YEAR_AGO,
            last_updated=self.NOW,
            commit_type='test',
            user_id='',
            post_commit_status='',
            commit_cmds=[{}])

        output = (
            self.pipeline
            | beam.Create([invalid_commit_cmd_model])
            | beam.ParDo(MockValidateCommitCmdsSchemaChangeDomain())
        )

        self.assert_pcoll_equal(output, [
            base_validation_errors.CommitCmdsNoneError(invalid_commit_cmd_model)
        ])
Example #10
0
    def test_validate_commit_type(self) -> None:
        invalid_commit_type_model = base_models.BaseCommitLogEntryModel(
            id='123',
            created_on=self.YEAR_AGO,
            last_updated=self.NOW,
            commit_type='invalid-type',
            user_id='',
            post_commit_status='',
            commit_cmds=[])

        output = (
            self.pipeline
            | beam.Create([invalid_commit_type_model])
            | beam.ParDo(base_validation.ValidateCommitType())
        )

        self.assert_pcoll_equal(output, [
            base_validation_errors.InvalidCommitTypeError(
                invalid_commit_type_model),
        ])
Example #11
0
    def test_message(self) -> None:
        model = base_models.BaseCommitLogEntryModel(id='invalid',
                                                    created_on=self.YEAR_AGO,
                                                    last_updated=self.NOW,
                                                    commit_type='test',
                                                    user_id='',
                                                    post_commit_status='',
                                                    commit_cmds=[{
                                                        'cmd-invalid':
                                                        'invalid_test_command'
                                                    }])
        error_message = 'Missing cmd key in change dict'
        error = base_validation_errors.CommitCmdsValidateError(
            model, {'cmd-invalid': 'invalid_test_command'}, error_message)

        self.assertEqual(
            error.stderr, 'CommitCmdsValidateError in BaseCommitLogEntryModel'
            '(id="invalid"): Commit command domain validation for '
            'command: {\'cmd-invalid\': \'invalid_test_command\'} failed '
            'with error: Missing cmd key in change dict')
Example #12
0
    def test_validate_post_commit_is_public_raise_exception(self) -> None:
        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),
        ])
Example #13
0
    def test_validate_wrong_commit_cmd(self) -> None:
        invalid_commit_cmd_model = base_models.BaseCommitLogEntryModel(
            id='invalid',
            created_on=self.YEAR_AGO,
            last_updated=self.NOW,
            commit_type='test',
            user_id='',
            post_commit_status='',
            commit_cmds=[{'cmd': 'invalid_test_command'}])

        output = (
            self.pipeline
            | beam.Create([invalid_commit_cmd_model])
            | beam.ParDo(MockValidateWrongSchema())
        )

        self.assert_pcoll_equal(output, [
            base_validation_errors.CommitCmdsValidateError(
                invalid_commit_cmd_model,
                {'cmd': 'invalid_test_command'},
                'Command invalid_test_command is not allowed')
        ])
Example #14
0
    def test_validate_post_commit_is_private_when_status_is_private(
        self
    ) -> None:
        invalid_commit_status = base_models.BaseCommitLogEntryModel(
            id='123',
            created_on=self.YEAR_AGO,
            last_updated=self.NOW,
            commit_type='invalid-type',
            user_id='',
            post_commit_status='private',
            post_commit_is_private=False,
            commit_cmds=[])

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

        self.assert_pcoll_equal(output, [
            base_validation_errors.InvalidPrivateCommitStatusError(
                invalid_commit_status),
        ])