diff options
author | Guido van Rossum <guido@python.org> | 2000-10-09 22:14:43 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2000-10-09 22:14:43 (GMT) |
commit | e8d2f5589bdbe8988c97b2f8bb265f1aca2b4193 (patch) | |
tree | 8b8ae34d003bfe1c40c79f7676a698c1d7823005 /Lib/dos-8x3/test_cfg.py | |
parent | eebb1c6cd1a1fe895305ca0f88ec949df9708773 (diff) | |
download | cpython-e8d2f5589bdbe8988c97b2f8bb265f1aca2b4193.zip cpython-e8d2f5589bdbe8988c97b2f8bb265f1aca2b4193.tar.gz cpython-e8d2f5589bdbe8988c97b2f8bb265f1aca2b4193.tar.bz2 |
The usual.
Diffstat (limited to 'Lib/dos-8x3/test_cfg.py')
-rw-r--r-- | Lib/dos-8x3/test_cfg.py | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/Lib/dos-8x3/test_cfg.py b/Lib/dos-8x3/test_cfg.py new file mode 100644 index 0000000..4bdbc69 --- /dev/null +++ b/Lib/dos-8x3/test_cfg.py @@ -0,0 +1,141 @@ +import ConfigParser +import StringIO + +def basic(src): + print + print "Testing basic accessors..." + cf = ConfigParser.ConfigParser() + sio = StringIO.StringIO(src) + cf.readfp(sio) + L = cf.sections() + L.sort() + print L + for s in L: + print "%s: %s" % (s, cf.options(s)) + + # The use of spaces in the section names serves as a regression test for + # SourceForge bug #115357. + # http://sourceforge.net/bugs/?func=detailbug&group_id=5470&bug_id=115357 + print `cf.get('Foo Bar', 'foo', raw=1)` + print `cf.get('Spacey Bar', 'foo', raw=1)` + print `cf.get('Commented Bar', 'foo', raw=1)` + + if '__name__' in cf.options("Foo Bar"): + print '__name__ "option" should not be exposed by the API!' + else: + print '__name__ "option" properly hidden by the API.' + +def interpolation(src): + print + print "Testing value interpolation..." + cf = ConfigParser.ConfigParser({"getname": "%(__name__)s"}) + sio = StringIO.StringIO(src) + cf.readfp(sio) + print `cf.get("Foo", "getname")` + print `cf.get("Foo", "bar")` + print `cf.get("Foo", "bar9")` + print `cf.get("Foo", "bar10")` + expect_get_error(cf, ConfigParser.InterpolationDepthError, "Foo", "bar11") + +def parse_errors(): + print + print "Testing for parsing errors..." + expect_parse_error(ConfigParser.ParsingError, + """[Foo]\n extra-spaces: splat\n""") + expect_parse_error(ConfigParser.ParsingError, + """[Foo]\n extra-spaces= splat\n""") + expect_parse_error(ConfigParser.ParsingError, + """[Foo]\noption-without-value\n""") + expect_parse_error(ConfigParser.ParsingError, + """[Foo]\n:value-without-option-name\n""") + expect_parse_error(ConfigParser.ParsingError, + """[Foo]\n=value-without-option-name\n""") + expect_parse_error(ConfigParser.MissingSectionHeaderError, + """No Section!\n""") + +def query_errors(): + print + print "Testing query interface..." + cf = ConfigParser.ConfigParser() + print cf.sections() + print "Has section 'Foo'?", cf.has_section("Foo") + try: + cf.options("Foo") + except ConfigParser.NoSectionError, e: + print "Caught expected NoSectionError:", e + else: + print "Failed to catch expected NoSectionError from options()" + try: + cf.set("foo", "bar", "value") + except ConfigParser.NoSectionError, e: + print "Caught expected NoSectionError:", e + else: + print "Failed to catch expected NoSectionError from set()" + expect_get_error(cf, ConfigParser.NoSectionError, "foo", "bar") + cf.add_section("foo") + expect_get_error(cf, ConfigParser.NoOptionError, "foo", "bar") + +def weird_errors(): + print + print "Testing miscellaneous error conditions..." + cf = ConfigParser.ConfigParser() + cf.add_section("Foo") + try: + cf.add_section("Foo") + except ConfigParser.DuplicateSectionError, e: + print "Caught expected DuplicateSectionError:", e + else: + print "Failed to catch expected DuplicateSectionError" + +def expect_get_error(cf, exctype, section, option, raw=0): + try: + cf.get(section, option, raw=raw) + except exctype, e: + print "Caught expected", exctype.__name__, ":" + print e + else: + print "Failed to catch expected", exctype.__name__ + +def expect_parse_error(exctype, src): + cf = ConfigParser.ConfigParser() + sio = StringIO.StringIO(src) + try: + cf.readfp(sio) + except exctype, e: + print "Caught expected exception:", e + else: + print "Failed to catch expected", exctype.__name__ + +basic(r""" +[Foo Bar] +foo=bar +[Spacey Bar] +foo = bar +[Commented Bar] +foo: bar ; comment +""") +interpolation(r""" +[Foo] +bar=something %(with1)s interpolation (1 step) +bar9=something %(with9)s lots of interpolation (9 steps) +bar10=something %(with10)s lots of interpolation (10 steps) +bar11=something %(with11)s lots of interpolation (11 steps) +with11=%(with10)s +with10=%(with9)s +with9=%(with8)s +with8=%(with7)s +with7=%(with6)s +with6=%(with5)s +with5=%(with4)s +with4=%(with3)s +with3=%(with2)s +with2=%(with1)s +with1=with + +[Mutual Recursion] +foo=%(bar)s +bar=%(foo)s +""") +parse_errors() +query_errors() +weird_errors() |