From da8a8ac4ebc62f7549d2927c41472561541abfa2 Mon Sep 17 00:00:00 2001 From: kali Date: Thu, 31 Jan 2013 09:09:54 +0900 Subject: hide jsonschema exception in tests --- src/leap/base/pluggableconfig.py | 9 ++++++++- src/leap/base/tests/test_providers.py | 6 ++---- src/leap/base/tests/test_validation.py | 13 +++++++------ 3 files changed, 17 insertions(+), 11 deletions(-) (limited to 'src/leap/base') diff --git a/src/leap/base/pluggableconfig.py b/src/leap/base/pluggableconfig.py index 3517db6b..6f9f3f6f 100644 --- a/src/leap/base/pluggableconfig.py +++ b/src/leap/base/pluggableconfig.py @@ -26,6 +26,10 @@ __all__ = ['PluggableConfig', # exceptions +class ValidationError(Exception): + pass + + class UnknownOptionException(Exception): """exception raised when a non-configuration value is present in the configuration""" @@ -107,7 +111,10 @@ class JSONAdaptor(ConfigAdaptor): def validate(self, config, schema_obj): schema_json = JSONSchemaEncoder().encode(schema_obj) schema = json.loads(schema_json) - jsonschema.validate(config, schema) + try: + jsonschema.validate(config, schema) + except jsonschema.ValidationError: + raise ValidationError adaptors['json'] = JSONAdaptor() diff --git a/src/leap/base/tests/test_providers.py b/src/leap/base/tests/test_providers.py index f257f54d..92bc1f2f 100644 --- a/src/leap/base/tests/test_providers.py +++ b/src/leap/base/tests/test_providers.py @@ -6,9 +6,7 @@ except ImportError: import unittest import os -import jsonschema - -#from leap import __branding as BRANDING +from leap.base.pluggableconfig import ValidationError from leap.testing.basetest import BaseLeapTest from leap.base import providers @@ -96,7 +94,7 @@ class TestLeapProviderDefinition(BaseLeapTest): _config = copy.deepcopy(self.config) # bad type, raise validation error _config['domain'] = 111 - with self.assertRaises(jsonschema.ValidationError): + with self.assertRaises(ValidationError): self.definition.validate(_config) @unittest.skip diff --git a/src/leap/base/tests/test_validation.py b/src/leap/base/tests/test_validation.py index 87e99648..b45fbe3a 100644 --- a/src/leap/base/tests/test_validation.py +++ b/src/leap/base/tests/test_validation.py @@ -1,5 +1,6 @@ import copy import datetime +from functools import partial #import json try: import unittest2 as unittest @@ -7,8 +8,6 @@ except ImportError: import unittest import os -import jsonschema - from leap.base.config import JSONLeapConfig from leap.base import pluggableconfig from leap.testing.basetest import BaseLeapTest @@ -76,16 +75,18 @@ class TestJSONLeapConfigValidation(BaseLeapTest): def test_broken_int(self): _config = copy.deepcopy(SAMPLE_CONFIG_DICT) _config['prop_one'] = '1' - with self.assertRaises(jsonschema.ValidationError): - self.sampleconfig.validate(_config) + self.assertRaises( + pluggableconfig.ValidationError, + partial(self.sampleconfig.validate, _config)) def test_format_property(self): # JsonSchema Validator does not check the format property. # We should have to extend the Configuration class blah = copy.deepcopy(SAMPLE_CONFIG_DICT) blah['prop_uri'] = 'xxx' - with self.assertRaises(pluggableconfig.TypeCastException): - self.sampleconfig.validate(blah) + self.assertRaises( + pluggableconfig.TypeCastException, + partial(self.sampleconfig.validate, blah)) if __name__ == "__main__": -- cgit v1.2.3