def test_identity(self): e = "( and (bookmark alpha) (parameter (key value) (key value) (key value)) )" self.assertEqual( sexpr.loads(e), sexpr.loads(sexpr.dumps(sexpr.loads(e)))) self.assertEqual( sexpr.loads(e), [ 'and', ['bookmark', 'alpha'], [ 'parameter', ['key', 'value'], ['key', 'value'], ['key', 'value'] ] ])
def test_parameter_collect_or(self): found = pathexpr.create_parameter_collect( sexpr.loads( "(or (parameters (key1 value1)) (parameters (key2 value2)))")) self.assertEqual(set(found['key1']), set(('value1', ))) self.assertEqual(set(found['key2']), set(('value2', ))) self.assertEqual(set(found.keys()), set(('key1', 'key2')))
def test_quote(self): e = '("(name) (value)\"\"" token2)' self.assertEqual(sexpr.loads(e), ['(name) (value)\"\"', 'token2'])
def test_bracket(self): e = r'(\(name\) in bracket)' self.assertEqual(sexpr.loads(e), ['\\', ['name\\'], 'in', 'bracket'])
def test_escape_bracket(self): e = r'("(name)" in bracket)' self.assertEqual(sexpr.loads(e), ['(name)', 'in', 'bracket'])
def test_parameter_collect_parameter(self): found = pathexpr.create_parameter_collect( sexpr.loads("(parameters (key1 value1) (key2 value2))")) expected = {'key2': ('value2', ), 'key1': ('value1', )} self.assertEqual(found, expected)