From 2e8d53c779ea2a115cc374db0af43ac1f68c6777 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Tue, 7 Jun 2022 21:59:05 +0200 Subject: [PATCH] Another schema test --- implementations/python/tests/test_schema.py | 41 +++++++++++++++------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/implementations/python/tests/test_schema.py b/implementations/python/tests/test_schema.py index 14a28aa..69e8688 100644 --- a/implementations/python/tests/test_schema.py +++ b/implementations/python/tests/test_schema.py @@ -12,17 +12,34 @@ class BasicSchemaTests(unittest.TestCase): def test_dictionary_literal(self): m = literal_schema( 's', - meta.Schema( - version = meta.Version(), - embeddedType = meta.EmbeddedTypeName.false(), - definitions = meta.Definitions({ - Symbol('C'): meta.Definition.Pattern( - meta.Pattern.CompoundPattern( - meta.CompoundPattern.dict( - meta.DictionaryEntries({ - "core": meta.NamedSimplePattern.anonymous( - meta.SimplePattern.lit(Symbol('true'))) - })))) - }))) + parse(''' +}> + } +}> +''')) self.assertEqual(m.s.C.decode({'core': Symbol('true')}), m.s.C()) self.assertEqual(preserve(m.s.C()), {'core': Symbol('true')}) + + def test_alternation_of_dictionary_literal(self): + m = literal_schema( + 's', + parse(''' +}>] + ["core" }>] + ]> + } +}> +''')) + self.assertEqual(m.s.C.decode({'core': Symbol('true')}), m.s.C.core()) + self.assertEqual(preserve(m.s.C.core()), {'core': Symbol('true')}) + self.assertEqual(m.s.C.decode({'notcore': Symbol('true')}), m.s.C.notcore()) + self.assertEqual(preserve(m.s.C.notcore()), {'notcore': Symbol('true')})