]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commitdiff
test_runner.py: add some coverage for allmydata.scripts.runner, to create nodes
authorBrian Warner <warner@allmydata.com>
Fri, 20 Apr 2007 01:56:45 +0000 (18:56 -0700)
committerBrian Warner <warner@allmydata.com>
Fri, 20 Apr 2007 01:56:45 +0000 (18:56 -0700)
src/allmydata/scripts/runner.py
src/allmydata/test/test_runner.py [new file with mode: 0644]

index 92229c7f9e861107c18cc6299395e33d8b725c44..973ddedec11b21031370bf18be86f54a4635bfd1 100644 (file)
@@ -89,16 +89,16 @@ class Options(usage.Options):
         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
@@ -114,6 +114,10 @@ def run():
     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):
diff --git a/src/allmydata/test/test_runner.py b/src/allmydata/test/test_runner.py
new file mode 100644 (file)
index 0000000..852c7de
--- /dev/null
@@ -0,0 +1,29 @@
+
+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")))
+