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