Another schema test

This commit is contained in:
Tony Garnock-Jones 2022-06-07 21:59:05 +02:00
parent 7ebe538c42
commit 2e8d53c779
1 changed files with 29 additions and 12 deletions

View File

@ -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('''
<schema {
version: 1,
embeddedType: #f,
definitions: {
C: <dict {"core": <lit true>}>
}
}>
'''))
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('''
<schema {
version: 1,
embeddedType: #f,
definitions: {
C: <or [
["notcore" <dict {"notcore": <lit true>}>]
["core" <dict {"core": <lit true>}>]
]>
}
}>
'''))
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')})