nutools/pyulib/test/test_base/test_config.py

85 lines
2.9 KiB
Python
Executable File

#!/usr/bin/env python
# -*- coding: utf-8 mode: python -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
__all__ = ('suite',
)
import os
from os import path
from base import TC
from utools.base.config import ConfigFile, ShConfigFile #, PListFile
class ClassTest(TC):
def tf(self):
eq = self.failUnlessEqual
ist = self.failUnless
isf = self.failIf
ex = self.failUnlessRaises
return eq, ist, isf, ex
def get_file(self, name):
return path.join(path.split(__file__)[0], name)
def test_config(self):
eq, _, _, _ = self.tf()
cf = ConfigFile(self.get_file("test.config"))
eq("value0", cf.get("var0"))
eq("value1", cf.get("var1"))
eq("value2", cf.get("var2"))
eq("\\\nvalue30\nvalue31\n", cf.get("var3"))
eq("\nvalue40\nvalue41", cf.get("var4"))
eq("value50:value51", cf.get("var5"))
eq(" value60 : value61 ", cf.get("var6"))
eq("$X ${X} \\\" \\\\ \\$ \\`", cf.get("var7"))
eq(["\\", "value30", "value31", ""], cf.get_list("var3"))
eq(["", "value40", "value41"], cf.get_list("var4"))
eq(["value50", "value51"], cf.get_paths("var5"))
eq([" value60 ", " value61 "], cf.get_paths("var6"))
eq(["\\", "value30", "value31"], cf.get_list("var3", True))
eq(["value40", "value41"], cf.get_list("var4", True))
eq(["value50", "value51"], cf.get_paths("var5", True))
eq(["value60", "value61"], cf.get_paths("var6", True))
def test_sh_config(self):
eq, _, _, _ = self.tf()
if os.environ.has_key("X"): del os.environ["X"]
cf = ShConfigFile(self.get_file("test.sh_config"))
eq("value0", cf.get("var0"))
eq("value1", cf.get("var1"))
eq("value2", cf.get("var2"))
eq("value30\nvalue31\n", cf.get("var3"))
eq("\nvalue40\nvalue41", cf.get("var4"))
eq("value50:value51", cf.get("var5"))
eq(" value60 : value61 ", cf.get("var6"))
eq(" \" \\ $ \\`", cf.get("var7"))
eq(["value30", "value31", ""], cf.get_list("var3"))
eq(["", "value40", "value41"], cf.get_list("var4"))
eq(["value50", "value51"], cf.get_paths("var5"))
eq([" value60 ", " value61 "], cf.get_paths("var6"))
eq(["value30", "value31"], cf.get_list("var3", True))
eq(["value40", "value41"], cf.get_list("var4", True))
eq(["value50", "value51"], cf.get_paths("var5", True))
eq(["value60", "value61"], cf.get_paths("var6", True))
os.environ["X"] = "valueX"
cf = ShConfigFile(self.get_file("test.sh_config"))
eq("valueX valueX \" \\ $ \\`", cf.get("var7"))
def test_plist(self):
#XXX test PListFile
pass
def suite():
from base import TestLoader
return TestLoader().loadTestsFromTestCase(ClassTest)
if __name__ == '__main__':
from base import main
main()