if not hasattr(self, 'subOptions'):
raise usage.UsageError("must specify a command")
-def runner(argv):
+def runner(argv, run_by_human=True):
config = Options()
try:
config.parseOptions(argv)
except usage.error, e:
+ if not run_by_human:
+ raise
print "%s: %s" % (sys.argv[0], e)
print
c = getattr(config, 'subOptions', config)
from twisted.trial import unittest
+from twisted.python import usage
import os.path
from allmydata.scripts import runner
from allmydata.util import fileutil
self.failUnless(os.path.exists(c1))
self.failUnless(os.path.exists(os.path.join(c1, "client.tac")))
+ c2 = os.path.join(basedir, "c2")
+ argv = ["create-client", "--quiet", c2]
+ runner.runner(argv)
+ self.failUnless(os.path.exists(c2))
+ self.failUnless(os.path.exists(os.path.join(c2, "client.tac")))
+
+ self.failUnlessRaises(usage.UsageError,
+ runner.runner,
+ ["create-client", "basedir", "extraarg"],
+ run_by_human=False)
+
+ self.failUnlessRaises(usage.UsageError,
+ runner.runner,
+ ["create-client"],
+ run_by_human=False)
+
def test_introducer(self):
basedir = self.workdir("test_introducer")
c1 = os.path.join(basedir, "c1")
self.failUnless(os.path.exists(c1))
self.failUnless(os.path.exists(os.path.join(c1, "introducer.tac")))
+ c2 = os.path.join(basedir, "c2")
+ argv = ["create-introducer", "--quiet", c2]
+ runner.runner(argv)
+ self.failUnless(os.path.exists(c2))
+ self.failUnless(os.path.exists(os.path.join(c2, "introducer.tac")))
+
+ self.failUnlessRaises(usage.UsageError,
+ runner.runner,
+ ["create-introducer", "basedir", "extraarg"],
+ run_by_human=False)
+
+ self.failUnlessRaises(usage.UsageError,
+ runner.runner,
+ ["create-introducer"],
+ run_by_human=False)
+
+ def test_subcommands(self):
+ self.failUnlessRaises(usage.UsageError,
+ runner.runner,
+ [],
+ run_by_human=False)
+