Teach magic-folder join to use argv_to_abspath

- also we modify argv_to_abspath to through a usage error
if the name starts with a '-'

- add a test
currently the tests fail
This commit is contained in:
David Stainton 2015-10-19 16:02:28 +02:00 committed by Daira Hopwood
parent f28a161f11
commit 7025dd6a26
3 changed files with 18 additions and 1 deletions

View 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")

View 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

View 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, **kwargs):
"""