From a128fdc858fc2343d3dd923082fe3506139b1bcf Mon Sep 17 00:00:00 2001 From: Kevin Hunter Kesling Date: Tue, 25 Jun 2024 12:21:08 -0400 Subject: [PATCH] Rebase onto master (#3393) --- .../test_memoize_ignore_args.py | 22 ++++++------------- .../test_memoize_ignore_args_regr.py | 17 +++++--------- .../tests/test_error_handling/test_retries.py | 19 ++++------------ parsl/tests/test_staging/test_file.py | 12 +++++----- 4 files changed, 23 insertions(+), 47 deletions(-) diff --git a/parsl/tests/test_bash_apps/test_memoize_ignore_args.py b/parsl/tests/test_bash_apps/test_memoize_ignore_args.py index 0439bfb163..ee3917e561 100644 --- a/parsl/tests/test_bash_apps/test_memoize_ignore_args.py +++ b/parsl/tests/test_bash_apps/test_memoize_ignore_args.py @@ -1,7 +1,5 @@ import os -import pytest - import parsl from parsl.app.app import bash_app @@ -23,24 +21,18 @@ def no_checkpoint_stdout_app_ignore_args(stdout=None): return "echo X" -def test_memo_stdout(): +def test_memo_stdout(tmpd_cwd): + path_x = tmpd_cwd / "test.memo.stdout.x" # this should run and create a file named after path_x - path_x = "test.memo.stdout.x" - if os.path.exists(path_x): - os.remove(path_x) - - no_checkpoint_stdout_app_ignore_args(stdout=path_x).result() - assert os.path.exists(path_x) - - # this should be memoized, so not create benc.test.y - path_y = "test.memo.stdout.y" + no_checkpoint_stdout_app_ignore_args(stdout=str(path_x)).result() + assert path_x.exists() - if os.path.exists(path_y): - os.remove(path_y) + # this should be memoized, so should not get created + path_y = tmpd_cwd / "test.memo.stdout.y" no_checkpoint_stdout_app_ignore_args(stdout=path_y).result() - assert not os.path.exists(path_y) + assert not path_y.exists(), "For memoization, expected NO file written" # this should also be memoized, so not create an arbitrary name z_fut = no_checkpoint_stdout_app_ignore_args(stdout=parsl.AUTO_LOGNAME) diff --git a/parsl/tests/test_bash_apps/test_memoize_ignore_args_regr.py b/parsl/tests/test_bash_apps/test_memoize_ignore_args_regr.py index 3c9b51e980..8f03c055a1 100644 --- a/parsl/tests/test_bash_apps/test_memoize_ignore_args_regr.py +++ b/parsl/tests/test_bash_apps/test_memoize_ignore_args_regr.py @@ -1,5 +1,4 @@ import copy -import os from typing import List import pytest @@ -30,21 +29,17 @@ def no_checkpoint_stdout_app(stdout=None): return "echo X" -def test_memo_stdout(): - +def test_memo_stdout(tmpd_cwd): assert const_list_x == const_list_x_arg - path_x = "test.memo.stdout.x" - if os.path.exists(path_x): - os.remove(path_x) + path_x = tmpd_cwd / "test.memo.stdout.x" # this should run and create a file named after path_x - no_checkpoint_stdout_app(stdout=path_x).result() - assert os.path.exists(path_x) + no_checkpoint_stdout_app(stdout=str(path_x)).result() + path_x.unlink(missing_ok=False) - os.remove(path_x) - no_checkpoint_stdout_app(stdout=path_x).result() - assert not os.path.exists(path_x) + no_checkpoint_stdout_app(stdout=str(path_x)).result() + assert not path_x.exists(), "For memoization, expected NO file written" # this should also be memoized, so not create an arbitrary name z_fut = no_checkpoint_stdout_app(stdout=parsl.AUTO_LOGNAME) diff --git a/parsl/tests/test_error_handling/test_retries.py b/parsl/tests/test_error_handling/test_retries.py index c069ee7ba7..06ae81702e 100644 --- a/parsl/tests/test_error_handling/test_retries.py +++ b/parsl/tests/test_error_handling/test_retries.py @@ -1,9 +1,7 @@ -import argparse import os import pytest -import parsl from parsl import bash_app, python_app from parsl.tests.configs.local_threads import fresh_config @@ -68,8 +66,6 @@ def test_fail_nowait(numtasks=10): assert isinstance( e, TypeError), "Expected a TypeError, got {}".format(e) - print("Done") - @pytest.mark.local def test_fail_delayed(numtasks=10): @@ -94,19 +90,12 @@ def test_fail_delayed(numtasks=10): assert isinstance( e, TypeError), "Expected a TypeError, got {}".format(e) - print("Done") - @pytest.mark.local -def test_retry(): +def test_retry(tmpd_cwd): """Test retries via app that succeeds on the Nth retry. """ - fname = "retry.out" - try: - os.remove(fname) - except OSError: - pass - fu = succeed_on_retry(fname) - - fu.result() + fpath = tmpd_cwd / "retry.out" + sout = str(tmpd_cwd / "stdout") + succeed_on_retry(str(fpath), stdout=sout).result() diff --git a/parsl/tests/test_staging/test_file.py b/parsl/tests/test_staging/test_file.py index 4b57884a93..d7897da14a 100644 --- a/parsl/tests/test_staging/test_file.py +++ b/parsl/tests/test_staging/test_file.py @@ -22,11 +22,11 @@ def test_files(): @pytest.mark.local -def test_open(): - with open('test-open.txt', 'w') as tfile: - tfile.write('Hello') +def test_open(tmpd_cwd): + fpath = tmpd_cwd / 'test-open.txt' + fpath.write_text('Hello') - pfile = File('test-open.txt') + pfile = File(fpath) - with open(str(pfile), 'r') as opfile: - assert (opfile.readlines()[0] == 'Hello') + with open(pfile) as opfile: + assert (opfile.read() == 'Hello')