X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/d9666e975ff53ad8bd09ec54fa3200aa8490d668..60ee2fc214c9712b1db5ad82670eadc534279685:/services/fuse/tests/test_mount.py diff --git a/services/fuse/tests/test_mount.py b/services/fuse/tests/test_mount.py index 19a1f528d8..7ee20f024d 100644 --- a/services/fuse/tests/test_mount.py +++ b/services/fuse/tests/test_mount.py @@ -128,7 +128,8 @@ class FuseMagicTest(MountTestBase): self.testcollection = cw.finish() self.test_manifest = cw.manifest_text() - self.api.collections().create(body={"manifest_text":self.test_manifest}).execute() + coll = self.api.collections().create(body={"manifest_text":self.test_manifest}).execute() + self.test_manifest_pdh = coll['portable_data_hash'] def runTest(self): self.make_mount(fuse.MagicDirectory) @@ -727,6 +728,34 @@ class FuseUpdateFromEventTest(MountTestBase): attempt(self.assertEqual, ["file1.txt"], llfuse.listdir(os.path.join(self.mounttmp))) +class FuseDeleteProjectEventTest(MountTestBase): + def runTest(self): + + aproject = self.api.groups().create(body={ + "name": "aproject", + "group_class": "project" + }).execute() + + bproject = self.api.groups().create(body={ + "name": "bproject", + "group_class": "project", + "owner_uuid": aproject["uuid"] + }).execute() + + self.make_mount(fuse.ProjectDirectory, + project_object=self.api.users().current().execute()) + + self.operations.listen_for_events() + + d1 = llfuse.listdir(os.path.join(self.mounttmp, "aproject")) + self.assertEqual(["bproject"], sorted(d1)) + + self.api.groups().delete(uuid=bproject["uuid"]).execute() + + for attempt in AssertWithTimeout(10): + attempt(self.assertEqual, [], llfuse.listdir(os.path.join(self.mounttmp, "aproject"))) + + def fuseFileConflictTestHelper(mounttmp): class Test(unittest.TestCase): def runTest(self): @@ -1026,7 +1055,13 @@ class MagicDirApiError(FuseMagicTest): def setUp(self): api = mock.MagicMock() super(MagicDirApiError, self).setUp(api=api) - api.collections().get().execute.side_effect = iter([Exception('API fail'), {"manifest_text": self.test_manifest}]) + api.collections().get().execute.side_effect = iter([ + Exception('API fail'), + { + "manifest_text": self.test_manifest, + "portable_data_hash": self.test_manifest_pdh, + }, + ]) api.keep.get.side_effect = Exception('Keep fail') def runTest(self):