X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/fbd54468b13466839c24d880a3d041d0a49371af..01ca27ba0a1ef84c53e223004249505435a788b6:/services/fuse/tests/test_exec.py diff --git a/services/fuse/tests/test_exec.py b/services/fuse/tests/test_exec.py index 66013a4bf2..f977990026 100644 --- a/services/fuse/tests/test_exec.py +++ b/services/fuse/tests/test_exec.py @@ -1,18 +1,23 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + +from __future__ import absolute_import +from six import assertRegex import arvados_fuse.command import json import multiprocessing import os -import run_test_server +from . import run_test_server +import shlex import tempfile import unittest -try: - from shlex import quote -except: - from pipes import quote +from .integration_test import workerPool def try_exec(mnt, cmd): try: + os.environ['KEEP_LOCAL_STORE'] = tempfile.mkdtemp() arvados_fuse.command.Mount( arvados_fuse.command.ArgumentParser().parse_args([ '--read-write', @@ -30,7 +35,7 @@ class ExecMode(unittest.TestCase): @classmethod def setUpClass(cls): run_test_server.run() - run_test_server.run_keep(enforce_permissions=True, num_servers=2) + run_test_server.run_keep(blob_signing=True, num_servers=2) run_test_server.authorize_with('active') @classmethod @@ -40,21 +45,20 @@ class ExecMode(unittest.TestCase): def setUp(self): self.mnt = tempfile.mkdtemp() _, self.okfile = tempfile.mkstemp() - self.pool = multiprocessing.Pool(1) def tearDown(self): - self.pool.terminate() - self.pool.join() os.rmdir(self.mnt) os.unlink(self.okfile) def test_exec(self): - self.pool.apply(try_exec, (self.mnt, [ - 'sh', '-c', - 'echo -n foo >{}; cp {} {}'.format( - quote(os.path.join(self.mnt, 'zzz', 'foo.txt')), - quote(os.path.join(self.mnt, 'zzz', '.arvados#collection')), - quote(os.path.join(self.okfile)))])) - self.assertRegexpMatches( - json.load(open(self.okfile))['manifest_text'], - r' 0:3:foo.txt\n') + workerPool().apply(try_exec, (self.mnt, [ + 'sh', '-c', 'echo -n foo >{}; cp {} {}'.format( + shlex.quote(os.path.join(self.mnt, 'zzz', 'foo.txt')), + shlex.quote(os.path.join(self.mnt, 'zzz', '.arvados#collection')), + shlex.quote(os.path.join(self.okfile)), + )])) + with open(self.okfile) as f: + assertRegex( + self, + json.load(f)['manifest_text'], + r' 0:3:foo.txt\n')