preserves/implementations/python/tests/test_schema.py

29 lines
1.1 KiB
Python

import unittest
from preserves import *
from preserves.schema import meta, Compiler
def literal_schema(modname, s):
c = Compiler()
c.load_schema((Symbol(modname),), preserve(s))
return c.root
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')))
}))))
})))
self.assertEqual(m.s.C.decode({'core': Symbol('true')}), m.s.C())
self.assertEqual(preserve(m.s.C()), {'core': Symbol('true')})