From 4f524082d76c67c29e5d7ea7e772cff17fccd944 Mon Sep 17 00:00:00 2001 From: Jason Lingohr Date: Sun, 20 Sep 2015 23:13:23 +1000 Subject: [PATCH 1/2] ValidatorSQL class doesn't handle/pass allow_unknown, as per https://github.com/RedTurtle/eve-sqlalchemy/issues/70. --- .../tests/test_validation_allow_unknown.py | 28 +++++++++++++++++++ eve_sqlalchemy/validation.py | 2 ++ 2 files changed, 30 insertions(+) create mode 100644 eve_sqlalchemy/tests/test_validation_allow_unknown.py diff --git a/eve_sqlalchemy/tests/test_validation_allow_unknown.py b/eve_sqlalchemy/tests/test_validation_allow_unknown.py new file mode 100644 index 0000000..d914f1d --- /dev/null +++ b/eve_sqlalchemy/tests/test_validation_allow_unknown.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- + +import eve_sqlalchemy.validation +from eve_sqlalchemy.tests.test_settings_sql import * +from eve.utils import config + +import unittest + + +class TestValidator(unittest.TestCase): + def setUp(self): + schemas = { + 'mock_string': { + 'type': 'string', + }, + } + # This is usually set in a users' app + DOMAIN['people'].update({ + 'allow_unknown': True, + }) + config.DOMAIN = DOMAIN + self.validator = eve_sqlalchemy.validation.ValidatorSQL(schemas, resource='people') + + def test_allow_unknown_true(self): + self.assertTrue(self.validator.allow_unknown) + +# def test_allow_unknown_false(self): +# self.assertFalse(self.validator.allow_unknown) diff --git a/eve_sqlalchemy/validation.py b/eve_sqlalchemy/validation.py index 31cba6b..04b4abd 100644 --- a/eve_sqlalchemy/validation.py +++ b/eve_sqlalchemy/validation.py @@ -30,6 +30,8 @@ def __init__(self, schema, resource=None, allow_unknown=False): super(ValidatorSQL, self).__init__(schema, transparent_schema_rules=True, allow_unknown=False) + if resource: + self.allow_unknown = config.DOMAIN[resource]['allow_unknown'] def validate_update(self, document, _id, original_document=None): self._id = _id From 98f97ce68eda44d9003248bcc7d25e26fc6a7954 Mon Sep 17 00:00:00 2001 From: Jason Lingohr Date: Wed, 23 Sep 2015 16:28:52 +1000 Subject: [PATCH 2/2] Amended test to pass PEP8. --- eve_sqlalchemy/tests/test_validation_allow_unknown.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/eve_sqlalchemy/tests/test_validation_allow_unknown.py b/eve_sqlalchemy/tests/test_validation_allow_unknown.py index d914f1d..1c49197 100644 --- a/eve_sqlalchemy/tests/test_validation_allow_unknown.py +++ b/eve_sqlalchemy/tests/test_validation_allow_unknown.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import eve_sqlalchemy.validation -from eve_sqlalchemy.tests.test_settings_sql import * +from eve_sqlalchemy.tests.test_settings_sql import DOMAIN from eve.utils import config import unittest @@ -23,6 +23,3 @@ def setUp(self): def test_allow_unknown_true(self): self.assertTrue(self.validator.allow_unknown) - -# def test_allow_unknown_false(self): -# self.assertFalse(self.validator.allow_unknown)