def testInRootMap(self): p = Parser(''' -- first comment foo = 23 -- 23 means nothing -- all done ''') m = p.parse() self.assertEqual(m['foo'], 23)
class Basics(unittest.TestCase): def setUp(self): self.p = Parser("foo= 42@'bar' = 'ggg'") self.fdg = self.p.parse() def testIsMap(self): self.assertTrue(isinstance(self.fdg, fern.ast.Map)) def testKeys(self): self.assertEqual(self.fdg['foo'], 42) self.assertEqual(self.fdg['bar'], 'ggg')
def setUp(self): p = Parser(''' f = function() {urk = 42} end person = function(name age) { name = name age = age } end oop = f() p = person('Joe' 42) ''') self.root = p.parse()
def setUp(self): p = Parser( '''let a=4 b='hey' in root_var = [a b] end list = [1 let x=4 in {f = x} end 'arg'] var = let y='herp' in {saying=y} end ''') self.root = p.parse()
def testKVPairsIf(self): p = Parser(''' var = true var2 = 'f' if var then foo = 3 bar = 4 elif var2 then foo = 4 bar = 3 else ggg = 5 end ''') m = p.parse() self.assertEqual(m.eval(), {'var':True,'var2':'f','foo':3,'bar':4}) m.set_key('var', False) self.assertEqual(m.eval(), {'var':False,'var2':'f','foo':4,'bar':3}) m.set_key('var2', False) self.assertEqual(m.eval(), {'var':False,'var2':False,'ggg':5})
def testItemsIf(self): p = Parser(''' var = true var2 = true list = [ 'first' if var then 1 'foo' {} elif var2 then 14 [] var else 'ack' end 'last' ] ''') m = p.parse() self.assertEqual(m['list'], ['first', 1, 'foo', {}, 'last']) m.set_key('var', False) self.assertEqual(m['list'], ['first', 14, [], False, 'last']) m.set_key('var2', False) self.assertEqual(m['list'], ['first', 'ack', 'last'])
def testWithMaps(self): p=Parser('a={bar=42} b={foo=a}') m = p.parse() self.assertEqual(m.eval(), {'a':{'bar':42}, 'b':{'foo':{'bar':42}}})
def testBasic(self): p=Parser('a=3 b=a') m = p.parse() self.assertEqual(m['b'], 3) m.set_key('a', 5) self.assertEqual(m['b'], 5)
def testAcceptsFileLike(self): f = StringIO("foo=17 bar='ughu'") p = Parser(f) m = p.parse() self.assertEqual(m['foo'], 17) self.assertEqual(m['bar'], 'ughu')
def testItemIf(self): p = Parser('var = false foo = if var then 13 else 17 end') m = p.parse() self.assertEqual(m['foo'], 17) m.set_key('var', True) self.assertEqual(m['foo'], 13)