Mercurial > hgrepos > Python > libs > data-schema
changeset 41:d2b43423fa4c
Some new test cases with ref-false, when-ref-false, ref-not-existss, when-ref-not-exists
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Thu, 20 Jul 2023 02:04:17 +0200 |
| parents | 2376224a9717 |
| children | 0e7acd426e3a |
| files | tests/test_schema.py |
| diffstat | 1 files changed, 121 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test_schema.py Wed Jul 19 15:19:23 2023 +0200 +++ b/tests/test_schema.py Thu Jul 20 02:04:17 2023 +0200 @@ -807,6 +807,24 @@ self.assertIsNone(r["new-key"]) self.assertFalse("cond" in r) + def test_simple_replace_when_ref_false(self): + schema = data_schema._Schema( + None, True, {"$type": None, + "require": ["huhu", "haha"], + "cond": [ + {"when-ref-false": '#foo2', + "then": { + "require": ["r1", "r2", "r3"], + "new-key": None, + }} + ]}) + r = data_schema.process_schema_conditionals(schema, self._ctx) + self.assertIsNot(r, schema) + self.assertEqual(["r1", "r2", "r3"], r["require"]) + self.assertTrue("new-key" in r) + self.assertIsNone(r["new-key"]) + self.assertFalse("cond" in r) + def test_simple_replace_when_ref_true_2(self): schema = data_schema._Schema( None, True, {"$type": None, @@ -881,6 +899,28 @@ self.assertFalse("new-key3" in r) self.assertFalse("cond" in r) + def test_simple_replace_when_ref_not_exists(self): + schema = data_schema._Schema( + None, True, {"$type": None, + "require": ["huhu", "haha"], + "cond": [ + {"when-ref-not-exists": '#foo3-non-existing', + "then": { + "require": ["r1", "r2", "r3"], + "new-key": None, + }}, + {"when": True, + "then": { + "new-key3": "val"}} + ]}) + r = data_schema.process_schema_conditionals(schema, self._ctx) + self.assertIsNot(r, schema) + self.assertEqual(["r1", "r2", "r3"], r["require"]) + self.assertTrue("new-key" in r) + self.assertIsNone(r["new-key"]) + self.assertFalse("new-key3" in r) + self.assertFalse("cond" in r) + def test_simple_replace_when_ref_exists_2(self): schema = data_schema._Schema( None, True, {"$type": None, @@ -903,6 +943,28 @@ self.assertFalse("new-key3" in r) self.assertFalse("cond" in r) + def test_simple_replace_when_ref_not_exists_2(self): + schema = data_schema._Schema( + None, True, {"$type": None, + "require": ["huhu", "haha"], + "cond": [ + {"when": {"ref-not-exists": '#foo3-non-existing'}, + "then": { + "require": ["r1", "r2", "r3"], + "new-key": None, + }}, + {"when": True, + "then": { + "new-key3": "val"}} + ]}) + r = data_schema.process_schema_conditionals(schema, self._ctx) + self.assertIsNot(r, schema) + self.assertEqual(["r1", "r2", "r3"], r["require"]) + self.assertTrue("new-key" in r) + self.assertIsNone(r["new-key"]) + self.assertFalse("new-key3" in r) + self.assertFalse("cond" in r) + def test_simple_replace_when_ref_exists_is_false(self): schema = data_schema._Schema( None, True, {"$type": None, @@ -958,6 +1020,21 @@ self.assertIsNot(r, schema) self.assertEqual("string", r["$type"]) + def test_allOf_true_2(self): + schema = data_schema._Schema( + None, True, {"cond": [ + {"when": {"all-of": [ + True, + {"ref-not-exists": '#foo3-not-existing'}, + {"ref-true": '#foo'}]}, + "then": {"$type": "string"}}, + {"when": True, + "then": {"$type": None}} + ]}) + r = data_schema.process_schema_conditionals(schema, self._ctx) + self.assertIsNot(r, schema) + self.assertEqual("string", r["$type"]) + def test_allOf_false(self): schema = data_schema._Schema( None, True, {"cond": [ @@ -973,6 +1050,21 @@ self.assertIsNot(r, schema) self.assertIsNone(r["$type"]) + def test_allOf_false_2(self): + schema = data_schema._Schema( + None, True, {"cond": [ + {"when": {"all-of": [ + True, + {"ref-not-exists": '#foo2'}, + {"ref-true": '#foo'}]}, + "then": {"$type": "string"}}, + {"when": True, + "then": {"$type": None}} + ]}) + r = data_schema.process_schema_conditionals(schema, self._ctx) + self.assertIsNot(r, schema) + self.assertIsNone(r["$type"]) + def test_short_allOf_true(self): schema = data_schema._Schema( None, True, {"cond": [ @@ -1018,6 +1110,21 @@ self.assertIsNot(r, schema) self.assertEqual("string", r["$type"]) + def test_anyOf_true_2(self): + schema = data_schema._Schema( + None, True, {"cond": [ + {"when": {"any-of": [ + False, + {"ref-not-exists": '#foo3-non'}, + {"ref-false": '#foo2'}]}, + "then": {"$type": "string"}}, + {"when": True, + "then": {"$type": None}} + ]}) + r = data_schema.process_schema_conditionals(schema, self._ctx) + self.assertIsNot(r, schema) + self.assertEqual("string", r["$type"]) + def test_anyOf_false(self): schema = data_schema._Schema( None, True, {"cond": [ @@ -1048,6 +1155,20 @@ self.assertIsNot(r, schema) self.assertEqual("string", r["$type"]) + def test_oneOf_true_2(self): + schema = data_schema._Schema( + None, True, {"cond": [ + {"when": {"one-of": [ + False, + {"not": {"ref-false": '#foo'}}]}, + "then": {"$type": "string"}}, + {"when": True, + "then": {"$type": None}} + ]}) + r = data_schema.process_schema_conditionals(schema, self._ctx) + self.assertIsNot(r, schema) + self.assertEqual("string", r["$type"]) + def test_oneOf_false(self): schema = data_schema._Schema( None, True, {"cond": [
