X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=t%2Fmoe%2Fconfig_test.py;h=f1c836d33c204021ce1dfd32dff3ff38f80e9979;hb=f1197017785dc3b28835cad97de45db673304eb3;hp=2a0325b8b57e923b9ce76ccad47683e72eb1451e;hpb=1ed60150aa8d007acd895d0ab7274ba9eb8b0f2a;p=moe.git diff --git a/t/moe/config_test.py b/t/moe/config_test.py index 2a0325b..f1c836d 100644 --- a/t/moe/config_test.py +++ b/t/moe/config_test.py @@ -12,11 +12,7 @@ class TestConfig(unittest.TestCase): s.t = cf.ConfigTree() def parse(s, string, level=0, fname='test'): - cp = ConfigParser(string, s.t, fname, level) - ops = cp.parse() - cp.p_WS() - assert cp.eof() - return ops + return s.t.parse(string, source=fname, level=level) def var(s, varname, create=True): return s.t.lookup(varname, create=create) @@ -83,21 +79,32 @@ class TestParser(TestConfig): s.assertRaises(ConfigSyntaxError, s.parse, "if 'a'<>'b' {}") def test_parse_remove(s): - s.parse('a="000"') + def raise_UserWarning(): + with s.parse("b='F'", level=99): + assert s.val('b') == 'F' + raise UserWarning + d0 = s.parse('a="000"') d1 = s.parse("a='A'; b='B'; c='C'", level=10) d2 = s.parse('c="{a}{a}"; b="XX" ', level=20) d3 = s.parse('b+=c ', level=30) assert s.val('b') == "XXAA" s.t.remove(d2) assert s.val('b') == "BC" - s.assertRaises(ValueError, s.t.remove, [('d', d1[1][0])]) - s.assertRaises(ValueError, s.t.remove, [('b', d1[1][0])]) + s.assertRaises(ValueError, s.t.remove, [('d', d1[0][1])]) + s.assertRaises(ValueError, s.t.remove, [('b', d1[0][1])]) + # Try exception in "with parse():" + s.assertRaises(UserWarning, raise_UserWarning) + assert s.val('b') == "BC" # partially remove d1 s.t.remove([('c', d1[2][1])]) # try to remove rest - 'a' and 'b' should get removed s.assertRaises(ValueError, s.t.remove, d1) assert s.val('a') == "000" + # cleanup s.t.remove(d3) + s.t.remove(d0) + for v in 'abcd': + assert len(s.var(v).operations) == 0 class TestConfigEval(TestConfig):