mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-02-22 10:20:59 +00:00
Teach magic-folder cli tests to test join results
- test if the client's dmd's readonly cap is present in the collective readonly cap
This commit is contained in:
parent
e8de9c3299
commit
035f7cf55d
@ -1,6 +1,7 @@
|
||||
import os.path
|
||||
import urllib
|
||||
import re
|
||||
import json
|
||||
|
||||
from twisted.trial import unittest
|
||||
|
||||
@ -10,7 +11,7 @@ from allmydata.scripts import cli, runner
|
||||
from allmydata.test.no_network import GridTestMixin
|
||||
from allmydata.util.encodingutil import quote_output, get_io_encoding
|
||||
from .test_cli import CLITestMixin
|
||||
|
||||
from allmydata.scripts import magic_folder_cli
|
||||
|
||||
class CreateMagicFolder(GridTestMixin, CLITestMixin, unittest.TestCase):
|
||||
|
||||
@ -34,11 +35,42 @@ class CreateMagicFolder(GridTestMixin, CLITestMixin, unittest.TestCase):
|
||||
d.addCallback(_done)
|
||||
return d
|
||||
|
||||
def _diminish(self, write_cap):
|
||||
d = self.do_cli("ls", "--json", write_cap)
|
||||
def get_readonly_cap((rc,stdout,stderr)):
|
||||
self.failUnless(rc == 0)
|
||||
readonly_cap = json.loads(stdout)[1][u"ro_uri"]
|
||||
return readonly_cap
|
||||
d.addCallback(get_readonly_cap)
|
||||
return d
|
||||
|
||||
def _try_joined_config(self, result):
|
||||
collective_readonly_cap = fileutil.read(os.path.join(self.get_clientdir(), "private/collective_dircap"))
|
||||
d = self.do_cli("ls", "--json", collective_readonly_cap)
|
||||
def _done((rc,stdout,stderr)):
|
||||
self.failUnless(rc == 0)
|
||||
return (rc,stdout,stderr)
|
||||
d.addCallback(_done)
|
||||
def test_joined_magic_folder((rc,stdout,stderr)):
|
||||
d2 = self._diminish(self.dmd_write_cap)
|
||||
def fail_unless_dmd_readonly_exists(readonly_cap):
|
||||
s = re.search(readonly_cap, stdout)
|
||||
self.failUnless(s is not None)
|
||||
d2.addCallback(fail_unless_dmd_readonly_exists)
|
||||
return d2
|
||||
d.addCallback(test_joined_magic_folder)
|
||||
return d
|
||||
|
||||
def _get_caps_from_files(self, result):
|
||||
self.magic_readonly_cap = fileutil.read(os.path.join(self.get_clientdir(), "private/collective_dircap"))
|
||||
self.dmd_write_cap = fileutil.read(os.path.join(self.get_clientdir(), "private/magic_folder_dircap"))
|
||||
self.failIf(self.magic_readonly_cap is None or self.dmd_write_cap is None)
|
||||
|
||||
def _join(self, result):
|
||||
invite_code = result[1].strip()
|
||||
d = self.do_cli("magic-folder", "join", invite_code, u"Alice_local_magic")
|
||||
self.magic_readonly_cap, self.dmd_write_cap = invite_code.split(magic_folder_cli.INVITE_SEPERATOR)
|
||||
d = self.do_cli("magic-folder", "join", invite_code, self.magic_local_dir)
|
||||
def _done((rc,stdout,stderr)):
|
||||
print "_join rc %s" % (rc,)
|
||||
self.failUnless(rc == 0)
|
||||
return (rc,stdout,stderr)
|
||||
d.addCallback(_done)
|
||||
@ -46,25 +78,32 @@ class CreateMagicFolder(GridTestMixin, CLITestMixin, unittest.TestCase):
|
||||
|
||||
def _check_config(self, result):
|
||||
client_config = fileutil.read(os.path.join(self.get_clientdir(), "tahoe.cfg"))
|
||||
ret = re.search(r'\[magic_folder\]\nenabled = True\nlocal.directory = Alice_local_magic', client_config)
|
||||
ret = re.search("\[magic_folder\]\nenabled = True\nlocal.directory = %s" % (self.magic_local_dir,), client_config)
|
||||
self.failIf(ret is None)
|
||||
return result
|
||||
|
||||
def test_create_and_then_invite_join(self):
|
||||
self.basedir = "cli/MagicFolder/create-and-then-invite-join"
|
||||
self.set_up_grid()
|
||||
self.magic_local_dir = os.path.join(self.basedir, "magic")
|
||||
|
||||
d = self._create_magic_folder()
|
||||
d.addCallback(self._invite)
|
||||
d.addCallback(self._join)
|
||||
d.addCallback(self._try_joined_config)
|
||||
d.addCallback(self._check_config)
|
||||
return d
|
||||
|
||||
def test_create_invite_join(self):
|
||||
self.basedir = "cli/MagicFolder/create-invite-join"
|
||||
self.set_up_grid()
|
||||
magic_local_dir = os.path.join(self.basedir, "magic")
|
||||
d = self.do_cli("magic-folder", "create", u"magic", u"Alice", magic_local_dir)
|
||||
self.magic_local_dir = os.path.join(self.basedir, "magic")
|
||||
d = self.do_cli("magic-folder", "create", u"magic", u"Alice", self.magic_local_dir)
|
||||
def _done((rc,stdout,stderr)):
|
||||
self.failUnless(rc == 0)
|
||||
return (rc,stdout,stderr)
|
||||
d.addCallback(_done)
|
||||
d.addCallback(self._get_caps_from_files)
|
||||
d.addCallback(self._try_joined_config)
|
||||
d.addCallback(self._check_config)
|
||||
return d
|
||||
|
Loading…
x
Reference in New Issue
Block a user