+###--------------------------------------------------------------------------
+class TestMdwOpt (U.TestCase):
+
+ def test_argv_default(me):
+ old_argv = SYS.argv
+ try:
+ SYS.argv = ["just", "another", "Python", "hacker"]
+ mo = M.MdwOpt()
+ me.assertEqual(mo.argv, SYS.argv)
+ finally:
+ SYS.argv = old_argv
+
+ def test_basic(me):
+ mo = M.MdwOpt(argv = ["example",
+ "one",
+ "-abcarg",
+ "--opt",
+ "+de",
+ "two",
+ "--no-thing",
+ "-f", "alpha",
+ "--foo", "beta",
+ "--switch", "--frob", "--toggle", "--no-frob",
+ "three"],
+ shortopt = "abc:d+e+f:",
+ longopt = [("opt", "o"),
+ ("thing", "t", M.OPTF_NEGATE),
+ ("foo", None, M.OPTF_ARGREQ, "foo"),
+ ("switch", 1, M.OPTF_SWITCH, "flags"),
+ ("frob", 2, M.OPTF_SWITCH | M.OPTF_NEGATE,
+ "flags"),
+ ("toggle", 4, M.OPTF_SWITCH, "flags")],
+ flags = M.OPTF_NEGATION)
+ me.assertEqual(list(mo), [("a", None, 0),
+ ("b", None, 0),
+ ("c", "arg", 0),
+ ("o", None, 0),
+ ("d", None, M.OPTF_NEGATED),
+ ("e", None, M.OPTF_NEGATED),
+ ("t", None, M.OPTF_NEGATED),
+ ("f", "alpha", 0)])
+ me.assertEqual(mo.argv[mo.ind:], ["one", "two", "three"])
+ me.assertEqual(mo.state.foo, "beta")
+ me.assertEqual(mo.state.flags, 5)