diff options
Diffstat (limited to 'tests/test_tidy.py')
-rw-r--r-- | tests/test_tidy.py | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/tests/test_tidy.py b/tests/test_tidy.py new file mode 100644 index 0000000..4990457 --- /dev/null +++ b/tests/test_tidy.py @@ -0,0 +1,135 @@ +import unittest +from textwrap import dedent +from StringIO import StringIO + +from iniparse.ini import INIConfig, EmptyLine, tidy +from iniparse.compat import ConfigParser + +class test_tidy(unittest.TestCase): + def setUp(self): + self.cfg = INIConfig() + + def test_empty_file(self): + self.assertEqual(str(self.cfg), '') + tidy(self.cfg) + self.assertEqual(str(self.cfg), '') + + def test_last_line(self): + self.cfg.newsection.newproperty = "Ok" + self.assertEqual(str(self.cfg), dedent("""\ + [newsection] + newproperty = Ok""")) + tidy(self.cfg) + self.assertEqual(str(self.cfg), dedent("""\ + [newsection] + newproperty = Ok + """)) + + def test_first_line(self): + s = dedent("""\ + + [newsection] + newproperty = Ok + """) + self.cfg._readfp(StringIO(s)) + tidy(self.cfg) + self.assertEqual(str(self.cfg), dedent("""\ + [newsection] + newproperty = Ok + """)) + + def test_remove_newlines(self): + s = dedent("""\ + + + [newsection] + newproperty = Ok + + + + + [newsection2] + + newproperty2 = Ok + + + newproperty3 = yup + + + [newsection4] + + + # remove blank lines, but leave continuation lines unharmed + + a = 1 + + b = l1 + l2 + + + # asdf + l5 + + c = 2 + + + """) + self.cfg._readfp(StringIO(s)) + tidy(self.cfg) + self.assertEqual(str(self.cfg), dedent("""\ + [newsection] + newproperty = Ok + + [newsection2] + newproperty2 = Ok + + newproperty3 = yup + + [newsection4] + # remove blank lines, but leave continuation lines unharmed + + a = 1 + + b = l1 + l2 + + + # asdf + l5 + + c = 2 + """)) + + def test_compat(self): + s = dedent(""" + [sec1] + a=1 + + + [sec2] + + b=2 + + c=3 + + + """) + cfg = ConfigParser() + cfg.readfp(StringIO(s)) + tidy(cfg) + self.assertEqual(str(cfg.data), dedent("""\ + [sec1] + a=1 + + [sec2] + b=2 + + c=3 + """)) + + +class suite(unittest.TestSuite): + def __init__(self): + unittest.TestSuite.__init__(self, [ + unittest.makeSuite(test_tidy, 'test'), + ]) |