]> mj.ucw.cz Git - moe.git/blob - t/moe/conf.test.py
Config parser complete, but completely untested.
[moe.git] / t / moe / conf.test.py
1 import conf, confparser
2 import logging as log
3 import unittest
4
5 #log.getLogger().setLevel(log.DEBUG)
6
7 vcnt = 3
8
9 def cs(s):
10   return conf.ConfigExpression([s], s)
11
12 # WIP
13 class Test(unittest.TestCase):
14   def setUp(self):
15     self.t = conf.ConfigTree()    
16   def parse(self, s, level=0, fname='test'):
17     c=confparser.ConfigParser(s, self.t, fname, level)
18     c.parse()
19     c.p_WS()
20     assert c.eof()
21   s1 = r"""a="1";b='2';c.d='\n';e="{a}{b}";e+='{c.d}';a+="\"\n\{\}";f+='Z{a.b}'#comment"""
22   def test_parser_nows(self):
23     self.parse(s1)
24     
25 root = conf.ConfigTree()
26
27 for i in range(vcnt):
28   root.lookup('a.v%d'%i).add_operation(conf.Operation('SET', None, cs('A%d'%i)))
29   b = root.lookup('b.v%d'%i)
30   b.add_operation(conf.Operation('APPEND', None, cs(' <FOO>')))
31   b.add_operation(conf.Operation('SET', None, conf.ConfigExpression([root.lookup('a.v%d'%i)], '{a.v%d}'%i)))
32   b.add_operation(conf.Operation('APPEND', None, cs(' <BAR>')))
33   if i<vcnt-1: 
34     b.add_operation(conf.Operation('APPEND', None, conf.ConfigExpression([' [', root.lookup('b.v%d'%(i+1)), ']'], ' [{b.v%d}]'%(i+1))))
35 print '\n'.join(root.dump())
36
37 b0 = root.lookup('b.v0')
38 b0.remove_operation(b0.operations[1])
39 b0.add_operation(conf.Operation('SET', None, cs('NEW-B0')))
40 root.lookup('b.v2').add_operation(conf.Operation('APPEND', None, cs(' <NEW-B3>')))
41 root.lookup('a.v1').add_operation(conf.Operation('APPEND', None, cs(' <NEW-A1>')))
42 print '\n'.join(root.dump())
43
44 root.lookup('a.v0').add_operation(conf.Operation('SET', None, cs('<OVERRIDE-A0>')))
45 print '\n'.join(root.dump())
46 print 'maxdepth: %d'%conf.debug_maxdepth