if not hasattr(self, 'subOptions'):
raise usage.UsageError("must specify a command")
-def run():
+def runner(argv):
config = Options()
try:
- config.parseOptions()
+ config.parseOptions(argv)
except usage.error, e:
print "%s: %s" % (sys.argv[0], e)
print
c = getattr(config, 'subOptions', config)
print str(c)
- sys.exit(1)
+ return 1
command = config.subCommand
so = config.subOptions
elif command == "restart":
rc = restart(so)
rc = rc or 0
+ return rc
+
+def run():
+ rc = runner(sys.argv[1:])
sys.exit(rc)
def create_client(config):
--- /dev/null
+
+from twisted.trial import unittest
+
+import os.path
+from allmydata.scripts import runner
+from allmydata.util import fileutil
+
+class CreateNode(unittest.TestCase):
+ def workdir(self, name):
+ basedir = os.path.join("test_runner", name)
+ fileutil.make_dirs(basedir)
+ return basedir
+
+ def test_client(self):
+ basedir = self.workdir("test_client")
+ c1 = os.path.join(basedir, "c1")
+ argv = ["create-client", "--basedir", c1]
+ runner.runner(argv)
+ self.failUnless(os.path.exists(c1))
+ self.failUnless(os.path.exists(os.path.join(c1, "client.tac")))
+
+ def test_introducer(self):
+ basedir = self.workdir("test_introducer")
+ c1 = os.path.join(basedir, "c1")
+ argv = ["create-introducer", "--basedir", c1]
+ runner.runner(argv)
+ self.failUnless(os.path.exists(c1))
+ self.failUnless(os.path.exists(os.path.join(c1, "introducer.tac")))
+