class TestStreamInList(unittest.TestCase): def setUp(self): self.stream = ItemStream([ 'Fuzz', NameRef('var') ]) self.scope = Map() self.scope['var'] = True self.l = List() self.c = Conditional() self.c.put_cond(NameRef('var'), self.stream) self.l.put('first') self.l.put(self.c) self.scope['list'] = self.l def testItems(self): self.assertEqual(self.l.eval(), ['first', 'Fuzz', True])
class TestPairStream(unittest.TestCase): def setUp(self): self.scope = Map() self.scope['var'] = True self.c = Conditional() self.scope.put(self.c) def testStream(self): self.c.put_cond( NameRef('var'), ItemStream([ KVPair('ag', Map()), KVPair('ug', NameRef('var')) ]) ) self.assertEqual(self.scope['ag'], {}) self.assertEqual(self.scope['ug'], True) def testUndefinedHasNoEffect(self): self.scope.set_key('var', False) self.assertEqual(self.scope.eval(), {'var':False}) # and nothing else
def setUp(self): self.scope = Map() self.scope['var'] = True self.m = Map() self.scope['bar'] = self.m self.c = Conditional() self.scope['cond'] = self.c
class CondBuilder(Builder): def __init__(self): self.conditional = Conditional() self.curr_cond = None # if not None, expecting a value self.expecting_else = False def put(self, item): if self.expecting_else: self.conditional.else_val = item self.expecting_else = False elif self.curr_cond is None: self.curr_cond = item else: self.conditional.put_cond(self.curr_cond, item) self.curr_cond = None def else_coming(self): self.expecting_else = True def get(self): return self.conditional
def setUp(self): self.stream = ItemStream([ 'Fuzz', NameRef('var') ]) self.scope = Map() self.scope['var'] = True self.l = List() self.c = Conditional() self.c.put_cond(NameRef('var'), self.stream) self.l.put('first') self.l.put(self.c) self.scope['list'] = self.l
def __init__(self): self.conditional = Conditional() self.curr_cond = None # if not None, expecting a value self.expecting_else = False
def setUp(self): self.scope = Map() self.scope['var'] = True self.c = Conditional() self.scope.put(self.c)
class TestIfItem(unittest.TestCase): def setUp(self): self.scope = Map() self.scope['var'] = True self.m = Map() self.scope['bar'] = self.m self.c = Conditional() self.scope['cond'] = self.c def testOneCond(self): self.c.put_cond(NameRef('var'), 'foo') self.assertEqual(self.c.eval(), 'foo') self.scope.set_key('var', False) self.assertEqual(self.c.eval(), Undefined) def testTwoConds(self): # one self.c.put_cond(NameRef('var'), 'foo') self.c.put_cond(NameRef('bar'), 'fuzz') self.assertEqual(self.c.eval(), 'foo') # two self.scope.set_key('var', False) self.assertEqual(self.c.eval(), Undefined) # three self.m['nothing'] = 42 self.assertEqual(self.c.eval(), 'fuzz') def testElse(self): self.scope.set_key('var', False) self.c.refresh() # make sure setting else works after refresh self.c.else_val = 'guth' self.assertEqual(self.c.eval(), 'guth')