Mercurial > hgrepos > Python > libs > data-schema
diff tests/test_schema.py @ 28:db3491e1b590
Allow to customize the loading of the schema dict
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sat, 08 Jul 2023 13:51:20 +0200 |
| parents | c3a0fe8d4587 |
| children | 68286d27f27d |
line wrap: on
line diff
--- a/tests/test_schema.py Sat Jul 08 12:26:44 2023 +0200 +++ b/tests/test_schema.py Sat Jul 08 13:51:20 2023 +0200 @@ -140,7 +140,8 @@ obj = object() schema = object() settings = data_schema.ValidationSettings( - skip_keys=[], break_on_keynames_problems=True) + skip_keys=[], break_on_keynames_problems=True, + schema_loader=data_schema.default_schema_loader) ctx = data_schema.Context( None, root_object=obj, root_schema=schema, settings=settings) self.assertEqual("<ROOT>", str(ctx)) @@ -152,7 +153,8 @@ obj = object() schema = object() settings = data_schema.ValidationSettings( - skip_keys=[], break_on_keynames_problems=True) + skip_keys=[], break_on_keynames_problems=True, + schema_loader=data_schema.default_schema_loader) ctx = data_schema.Context( None, root_object=obj, root_schema=schema, settings=settings) self.assertTrue(ctx.is_root) @@ -167,7 +169,8 @@ def test_root_context_init_root_empty(self): settings = data_schema.ValidationSettings( - skip_keys=[], break_on_keynames_problems=True) + skip_keys=[], break_on_keynames_problems=True, + schema_loader=data_schema.default_schema_loader) self.assertRaises( TypeError, data_schema.Context, None, key="key", settings=settings) @@ -177,7 +180,8 @@ def test_root_context_init_only_one_of_key_index(self): settings = data_schema.ValidationSettings( - skip_keys=[], break_on_keynames_problems=True) + skip_keys=[], break_on_keynames_problems=True, + schema_loader=data_schema.default_schema_loader) root = data_schema.Context(None, settings=settings) self.assertRaises( ValueError, @@ -185,13 +189,15 @@ def test_root_context_init_exactly_one(self): settings = data_schema.ValidationSettings( - skip_keys=[], break_on_keynames_problems=True) + skip_keys=[], break_on_keynames_problems=True, + schema_loader=data_schema.default_schema_loader) root = data_schema.Context(None, settings=settings) self.assertRaises(TypeError, data_schema.Context, root) def test_nonroot_rootobj_schema(self): settings = data_schema.ValidationSettings( - skip_keys=[], break_on_keynames_problems=True) + skip_keys=[], break_on_keynames_problems=True, + schema_loader=data_schema.default_schema_loader) obj = object() schema = object() ctx = data_schema.Context( @@ -207,7 +213,8 @@ def test_str(self): settings = data_schema.ValidationSettings( - skip_keys=[], break_on_keynames_problems=True) + skip_keys=[], break_on_keynames_problems=True, + schema_loader=data_schema.default_schema_loader) root = data_schema.Context(None, settings=settings) ctx1 = data_schema.Context(root, key="key1") ctx2 = data_schema.Context(ctx1, index=2) @@ -216,7 +223,8 @@ def test_repr(self): settings = data_schema.ValidationSettings( - skip_keys=[], break_on_keynames_problems=True) + skip_keys=[], break_on_keynames_problems=True, + schema_loader=data_schema.default_schema_loader) root = data_schema.Context(None, settings=settings) ctx1 = data_schema.Context(root, key="key1") ctx2 = data_schema.Context(ctx1, index=2) @@ -225,7 +233,8 @@ def test_root(self): settings = data_schema.ValidationSettings( - skip_keys=[], break_on_keynames_problems=True) + skip_keys=[], break_on_keynames_problems=True, + schema_loader=data_schema.default_schema_loader) root = data_schema.Context(None, settings=settings) self.assertTrue(root.is_root) self.assertTrue(root is root.root) @@ -244,9 +253,11 @@ def test_extra_settings_in_between(self): settings = data_schema.ValidationSettings( - skip_keys=[], break_on_keynames_problems=True) + skip_keys=[], break_on_keynames_problems=True, + schema_loader=data_schema.default_schema_loader) settings2 = data_schema.ValidationSettings( - skip_keys=[], break_on_keynames_problems=True) + skip_keys=[], break_on_keynames_problems=True, + schema_loader=data_schema.default_schema_loader) root = data_schema.Context(None, settings=settings) self.assertTrue(root.is_root) self.assertTrue(root is root.root) @@ -265,7 +276,8 @@ def test_key_xor_index(self): settings = data_schema.ValidationSettings( - skip_keys=[], break_on_keynames_problems=True) + skip_keys=[], break_on_keynames_problems=True, + schema_loader=data_schema.default_schema_loader) root = data_schema.Context(None, settings=settings) self.assertRaises( ValueError, @@ -276,7 +288,8 @@ def test_keyindex_requires_key(self): settings = data_schema.ValidationSettings( - skip_keys=[], break_on_keynames_problems=True) + skip_keys=[], break_on_keynames_problems=True, + schema_loader=data_schema.default_schema_loader) self.assertRaises( ValueError, data_schema.Context, @@ -1234,6 +1247,34 @@ schema, self._ctx) + def test_raise_no_schema_loader_available(self): + settings = data_schema.ValidationSettings( + skip_keys=[], break_on_keynames_problems=True, + schema_loader=None) + schema = data_schema._Schema( + None, True, {"$ref": "schema:file:/tmp/xxx#/"}) + ctx = data_schema.Context( + None, root_schema=schema, settings=settings) + self.assertRaises( + data_schema.SchemaError, + data_schema.process_schema_references, + schema, + ctx) + + def test_raise_schema_loader_available_but_invalid_basedir(self): + settings = data_schema.ValidationSettings( + skip_keys=[], break_on_keynames_problems=True, + schema_loader=data_schema.default_schema_loader) + schema = data_schema._Schema( + None, True, {"$ref": "schema:file:/tmp/xxx#/"}) + ctx = data_schema.Context( + None, root_schema=schema, settings=settings) + self.assertRaises( + TypeError, # no basedir given + data_schema.process_schema_references, + schema, + ctx) + def test_raise_if_scheme_ref_is_not_the_single_key(self): schema = data_schema._Schema( None, True, {"$ref": "schema:#/",
