Another schema test
This commit is contained in:
parent
7ebe538c42
commit
2e8d53c779
|
@ -12,17 +12,34 @@ class BasicSchemaTests(unittest.TestCase):
|
||||||
def test_dictionary_literal(self):
|
def test_dictionary_literal(self):
|
||||||
m = literal_schema(
|
m = literal_schema(
|
||||||
's',
|
's',
|
||||||
meta.Schema(
|
parse('''
|
||||||
version = meta.Version(),
|
<schema {
|
||||||
embeddedType = meta.EmbeddedTypeName.false(),
|
version: 1,
|
||||||
definitions = meta.Definitions({
|
embeddedType: #f,
|
||||||
Symbol('C'): meta.Definition.Pattern(
|
definitions: {
|
||||||
meta.Pattern.CompoundPattern(
|
C: <dict {"core": <lit true>}>
|
||||||
meta.CompoundPattern.dict(
|
}
|
||||||
meta.DictionaryEntries({
|
}>
|
||||||
"core": meta.NamedSimplePattern.anonymous(
|
'''))
|
||||||
meta.SimplePattern.lit(Symbol('true')))
|
|
||||||
}))))
|
|
||||||
})))
|
|
||||||
self.assertEqual(m.s.C.decode({'core': Symbol('true')}), m.s.C())
|
self.assertEqual(m.s.C.decode({'core': Symbol('true')}), m.s.C())
|
||||||
self.assertEqual(preserve(m.s.C()), {'core': Symbol('true')})
|
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')})
|
||||||
|
|
Loading…
Reference in New Issue