Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion tests/test_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@

from wfcommons.common import Workflow

def _recursive_chmod(dirpath, permissions):
for directory, directory_name, filenames in os.walk(dirpath):
os.chmod(directory, permissions)
for filename in filenames:
os.chmod(os.path.join(directory, filename), permissions)

def _create_fresh_local_dir(path: str) -> pathlib.Path:
dirpath = pathlib.Path(path)
Expand Down Expand Up @@ -89,6 +94,7 @@ def _start_docker_container(backend, mounted_dir, working_dir, bin_dir, command=
volumes={mounted_dir: {'bind': mounted_dir, 'mode': 'rw'}},
working_dir=working_dir,
user="wfcommons",
privileged=True,
tty=True,
detach=True
)
Expand Down Expand Up @@ -165,4 +171,4 @@ def _compare_workflows(workflow_1: Workflow, workflow_2: Workflow):
# sys.stderr.write(f"WORKFLOW2 OUTPUT FILE: {output_file.file_id} {output_file.size}\n")
workflow2_output_bytes += output_file.size
assert (workflow1_input_bytes == workflow2_input_bytes)
assert (workflow1_output_bytes == workflow2_output_bytes)
assert (workflow1_output_bytes == workflow2_output_bytes)
6 changes: 2 additions & 4 deletions tests/translators_loggers/test_translators_loggers.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import re
import os

from tests.test_helpers import _recursive_chmod
from tests.test_helpers import _create_fresh_local_dir
from tests.test_helpers import _remove_local_dir_if_it_exists
from tests.test_helpers import _start_docker_container
Expand Down Expand Up @@ -304,10 +305,7 @@ def test_translator(self, backend) -> None:

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

# Start the Docker container
container = _start_docker_container(backend if backend != "nextflow_subworkflow" else "nextflow", str_dirpath, str_dirpath, str_dirpath + "bin/")
Expand Down
5 changes: 5 additions & 0 deletions tests/wfbench/test_wfbench.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import json
import networkx

from tests.test_helpers import _recursive_chmod
from tests.test_helpers import _create_fresh_local_dir
from tests.test_helpers import _start_docker_container
from tests.test_helpers import _shutdown_docker_container_and_remove_image
Expand Down Expand Up @@ -158,6 +159,10 @@ def test_create_from_recipe(self) -> None:
translator = BashTranslator(benchmark.workflow)
translator.translate(output_folder=dirpath)

# Make the directory world-writable so that
# we don't have any permission shenanigans
_recursive_chmod(dirpath, 0o777)

# Start the Docker container
sys.stderr.write("Starting Docker container...\n")
container = _start_docker_container("bash", str_dirpath, str_dirpath, str_dirpath + "bin/")
Expand Down
Loading