]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commitdiff
Teach magic-folder join to use argv_to_abspath
authorDavid Stainton <dstainton415@gmail.com>
Mon, 19 Oct 2015 14:02:28 +0000 (16:02 +0200)
committerDaira Hopwood <daira@jacaranda.org>
Mon, 28 Dec 2015 16:18:52 +0000 (16:18 +0000)
- also we modify argv_to_abspath to through a usage error
if the name starts with a '-'

- add a test
currently the tests fail

src/allmydata/scripts/magic_folder_cli.py
src/allmydata/test/test_cli_magic_folder.py
src/allmydata/util/encodingutil.py

index 5356ce8b35a36bf33e7652af54c79f0e4e7f48df..0f45b1ab0c571b573db2b22f6b47de42e06ecfba 100644 (file)
@@ -22,7 +22,7 @@ class CreateOptions(BasedirOptions):
             raise usage.UsageError("An alias must end with a ':' character.")
         self.alias = alias[:-1]
         self.nickname = nickname
-        self.localdir = localdir
+        self.localdir = argv_to_abspath(str(localdir))
         if self.nickname and not self.localdir:
             raise usage.UsageError("If NICKNAME is specified then LOCALDIR must also be specified.")
         node_url_file = os.path.join(self['node-directory'], "node.url")
index 01fa6c2c721be74bdd274a089654e5151aa982f5..cdd7df9c793be6e19df0e237c2c124b0561eb417 100644 (file)
@@ -215,3 +215,18 @@ class CreateMagicFolder(MagicFolderCLITestMixin, unittest.TestCase):
         d.addCallback(lambda x: self.check_joined_config(0, self.upload_dircap))
         d.addCallback(lambda x: self.check_config(0, self.local_dir))
         return d
+
+    def test_create_invite_join_failure(self):
+        self.basedir = "cli/MagicFolder/create-invite-join-failure"
+        self.set_up_grid()
+        self.local_dir = os.path.join(self.basedir, "magic")
+        self.local_dir = "-" + self.local_dir
+        d = self.do_cli("magic-folder", "create", u"magic:", u"Alice", self.local_dir)
+        def _done((rc,stdout,stderr)):
+            print "rc %s" % (rc,)
+            print "stdout %s" % (stdout,)
+            print "stderr %s" % (stderr,)
+            self.failUnless(rc == 1)
+            return (rc,stdout,stderr)
+        d.addCallback(_done)
+        return d
index a7a2bfef6ca2a8ff9bb89519b22021e36d7a96cf..14751205dd42c9129d521755aea6e011a55bec34 100644 (file)
@@ -95,6 +95,8 @@ def argv_to_unicode(s):
     except UnicodeDecodeError:
         raise usage.UsageError("Argument %s cannot be decoded as %s." %
                                (quote_output(s), io_encoding))
+    if local_dir.startswith('-'):
+        raise usage.UsageError("Argument %s cannot start with a -." % (quote_output(s),))
 
 def argv_to_abspath(s):
     """