Skip to content

Commit 2e5c1c0

Browse files
Merge pull request #147 from wfcommons/test_permissions
Update permissions to get tests passing on my local machine
2 parents 7633382 + 60a49c5 commit 2e5c1c0

3 files changed

Lines changed: 14 additions & 5 deletions

File tree

tests/test_helpers.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@
2020

2121
from wfcommons.common import Workflow
2222

23+
def _recursive_chmod(dirpath, permissions):
24+
for directory, directory_name, filenames in os.walk(dirpath):
25+
os.chmod(directory, permissions)
26+
for filename in filenames:
27+
os.chmod(os.path.join(directory, filename), permissions)
2328

2429
def _create_fresh_local_dir(path: str) -> pathlib.Path:
2530
dirpath = pathlib.Path(path)
@@ -89,6 +94,7 @@ def _start_docker_container(backend, mounted_dir, working_dir, bin_dir, command=
8994
volumes={mounted_dir: {'bind': mounted_dir, 'mode': 'rw'}},
9095
working_dir=working_dir,
9196
user="wfcommons",
97+
privileged=True,
9298
tty=True,
9399
detach=True
94100
)
@@ -165,4 +171,4 @@ def _compare_workflows(workflow_1: Workflow, workflow_2: Workflow):
165171
# sys.stderr.write(f"WORKFLOW2 OUTPUT FILE: {output_file.file_id} {output_file.size}\n")
166172
workflow2_output_bytes += output_file.size
167173
assert (workflow1_input_bytes == workflow2_input_bytes)
168-
assert (workflow1_output_bytes == workflow2_output_bytes)
174+
assert (workflow1_output_bytes == workflow2_output_bytes)

tests/translators_loggers/test_translators_loggers.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import re
1818
import os
1919

20+
from tests.test_helpers import _recursive_chmod
2021
from tests.test_helpers import _create_fresh_local_dir
2122
from tests.test_helpers import _remove_local_dir_if_it_exists
2223
from tests.test_helpers import _start_docker_container
@@ -304,10 +305,7 @@ def test_translator(self, backend) -> None:
304305

305306
# Make the directory that holds the translation world-writable,
306307
# so that we don't have any permission shenanigans
307-
for directory, directory_name, filenames in os.walk(dirpath):
308-
os.chmod(directory, 0o777)
309-
for filename in filenames:
310-
os.chmod(os.path.join(directory, filename), 0o777)
308+
_recursive_chmod(dirpath, 0o777)
311309

312310
# Start the Docker container
313311
container = _start_docker_container(backend if backend != "nextflow_subworkflow" else "nextflow", str_dirpath, str_dirpath, str_dirpath + "bin/")

tests/wfbench/test_wfbench.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import json
1616
import networkx
1717

18+
from tests.test_helpers import _recursive_chmod
1819
from tests.test_helpers import _create_fresh_local_dir
1920
from tests.test_helpers import _start_docker_container
2021
from tests.test_helpers import _shutdown_docker_container_and_remove_image
@@ -158,6 +159,10 @@ def test_create_from_recipe(self) -> None:
158159
translator = BashTranslator(benchmark.workflow)
159160
translator.translate(output_folder=dirpath)
160161

162+
# Make the directory world-writable so that
163+
# we don't have any permission shenanigans
164+
_recursive_chmod(dirpath, 0o777)
165+
161166
# Start the Docker container
162167
sys.stderr.write("Starting Docker container...\n")
163168
container = _start_docker_container("bash", str_dirpath, str_dirpath, str_dirpath + "bin/")

0 commit comments

Comments
 (0)