Esempio n. 1
0
    def test_param_change_object_with_extra_attribute_in_cmd_raises_exception(
            self) -> None:
        commit_dict: Dict[str, Union[str, List[str]]] = {
            'cmd': self.CMD_EDIT_RULES,
            'new_rules': [],
            'invalid': 'invalid'
        }
        invalid_commit_cmd_model = (
            config_models.PlatformParameterSnapshotMetadataModel(
                id='model_id-1',
                created_on=self.YEAR_AGO,
                last_updated=self.NOW,
                committer_id='committer_id',
                commit_type='create',
                commit_cmds=[commit_dict]))

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

        self.assert_pcoll_equal(output, [
            base_validation_errors.CommitCmdsValidateError(
                invalid_commit_cmd_model, commit_dict,
                'The following extra attributes are present: invalid')
        ])
Esempio n. 2
0
    def test_validate_change_domain_implemented(self) -> None:
        invalid_commit_cmd_model = (
            config_models.PlatformParameterSnapshotMetadataModel(
                id='model_id-1',
                created_on=self.YEAR_AGO,
                last_updated=self.NOW,
                committer_id='committer_id',
                commit_type='create',
                commit_cmds=[{
                    'cmd':
                    base_models.VersionedModel.CMD_DELETE_COMMIT
                }]))

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

        self.assert_pcoll_equal(output, [])
Esempio n. 3
0
    def test_param_change_object_missing_attribute_in_cmd_raises_exception(
            self) -> None:
        invalid_commit_cmd_model = (
            config_models.PlatformParameterSnapshotMetadataModel(
                id='model_id-1',
                created_on=self.YEAR_AGO,
                last_updated=self.NOW,
                committer_id='committer_id',
                commit_type='create',
                commit_cmds=[{
                    'cmd': self.CMD_EDIT_RULES
                }]))

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

        self.assert_pcoll_equal(output, [
            base_validation_errors.CommitCmdsValidateError(
                invalid_commit_cmd_model, {'cmd': self.CMD_EDIT_RULES},
                'The following required attributes are missing: new_rules')
        ])
Esempio n. 4
0
    def test_param_change_object_with_invalid_cmd_raises_exception(
            self) -> None:
        invalid_commit_cmd_model = (
            config_models.PlatformParameterSnapshotMetadataModel(
                id='model_id-1',
                created_on=self.YEAR_AGO,
                last_updated=self.NOW,
                committer_id='committer_id',
                commit_type='create',
                commit_cmds=[{
                    'cmd': 'invalid'
                }]))

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

        self.assert_pcoll_equal(output, [
            base_validation_errors.CommitCmdsValidateError(
                invalid_commit_cmd_model, {'cmd': 'invalid'},
                'Command invalid is not allowed')
        ])