+# 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',
@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
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')