def test_message(self):
        model = user_models.PendingDeletionRequestModel(id='test')
        incorrect_keys = ['incorrect key']
        error = user_validation_errors.ModelIncorrectKeyError(
            model, incorrect_keys)

        self.assertEqual(
            error.message,
            'ModelIncorrectKeyError in PendingDeletionRequestModel'
            '(id=\'test\'): contains keys %s are not allowed' % incorrect_keys)
Ejemplo n.º 2
0
    def test_process_with_incorrect_keys(self):
        test_model = user_models.PendingDeletionRequestModel(
            id=self.USER_ID,
            email=self.EMAIL_ID,
            created_on=self.NOW,
            last_updated=self.NOW,
            pseudonymizable_entity_mappings={
                models.NAMES.audit.value: {
                    'key': 'value'
                }
            })

        output = (
            self.pipeline
            | beam.Create([test_model])
            | beam.ParDo(
                user_validation.ValidateActivityMappingOnlyAllowedKeys()))

        self.assert_pcoll_equal(output, [
            user_validation_errors.ModelIncorrectKeyError(
                test_model, [self.INCORRECT_KEY])
        ])
Ejemplo n.º 3
0
    def process(self, input_model):
        """Function that check for incorrect key in model.

        Args:
            input_model: user_models.PendingDeletionRequestModel. Entity to
                validate.

        Yields:
            ModelIncorrectkeyError. An error class for incorrect key.
        """
        model = job_utils.clone_model(input_model)

        allowed_keys = [
            name.value for name in models.MODULES_WITH_PSEUDONYMIZABLE_CLASSES
        ]
        incorrect_keys = [
            key for key in model.pseudonymizable_entity_mappings.keys()
            if key not in allowed_keys
        ]

        if incorrect_keys:
            yield user_validation_errors.ModelIncorrectKeyError(
                model, incorrect_keys)