From d3b1bf79f100087accba5528e258e7a24411a674 Mon Sep 17 00:00:00 2001 From: Dan King Date: Fri, 12 Jan 2024 10:36:50 -0500 Subject: [PATCH 1/3] [batch] provide sufficient information to debug transient errors This provides useful feedback we can use to understand why `test_file_in_current_dir` keeps failing. --- .../test/hailtop/hailctl/batch/test_submit.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/hail/python/test/hailtop/hailctl/batch/test_submit.py b/hail/python/test/hailtop/hailctl/batch/test_submit.py index aa56da2652a..4142d81db56 100644 --- a/hail/python/test/hailtop/hailctl/batch/test_submit.py +++ b/hail/python/test/hailtop/hailctl/batch/test_submit.py @@ -38,7 +38,7 @@ def test_file_with_no_dest(runner: CliRunner): write_hello(f'{dir}/hello.txt') write_script(dir, f'{dir}/hello.txt') res = runner.invoke(cli.app, ['submit', '--files', 'hello.txt', 'test_job.py']) - assert res.exit_code == 0 + assert res.exit_code == 0, (res.output, res.stdout, res.stderr, res.exception) def test_file_in_current_dir(runner: CliRunner): @@ -47,7 +47,7 @@ def test_file_in_current_dir(runner: CliRunner): write_hello(f'{dir}/hello.txt') write_script(dir, f'/hello.txt') res = runner.invoke(cli.app, ['submit', '--files', 'hello.txt:/', 'test_job.py']) - assert res.exit_code == 0 + assert res.exit_code == 0, (res.output, res.stdout, res.stderr, res.exception) def test_file_mount_in_child_dir(runner: CliRunner): @@ -56,7 +56,7 @@ def test_file_mount_in_child_dir(runner: CliRunner): write_hello(f'{dir}/hello.txt') write_script(dir, '/child/hello.txt') res = runner.invoke(cli.app, ['submit', '--files', 'hello.txt:/child/', 'test_job.py']) - assert res.exit_code == 0 + assert res.exit_code == 0, (res.output, res.stdout, res.stderr, res.exception) def test_file_mount_in_child_dir_to_root_dir(runner: CliRunner): @@ -65,7 +65,7 @@ def test_file_mount_in_child_dir_to_root_dir(runner: CliRunner): write_hello(f'{dir}/child/hello.txt') write_script(dir, '/hello.txt') res = runner.invoke(cli.app, ['submit', '--files', 'child/hello.txt:/', 'test_job.py']) - assert res.exit_code == 0 + assert res.exit_code == 0, (res.output, res.stdout, res.stderr, res.exception) def test_mount_multiple_files(runner: CliRunner): @@ -77,7 +77,7 @@ def test_mount_multiple_files(runner: CliRunner): res = runner.invoke( cli.app, ['submit', '--files', 'child/hello1.txt:/', '--files', 'child/hello2.txt:/', 'test_job.py'] ) - assert res.exit_code == 0 + assert res.exit_code == 0, (res.output, res.stdout, res.stderr, res.exception) def test_dir_mount_in_child_dir_to_child_dir(runner: CliRunner): @@ -87,7 +87,7 @@ def test_dir_mount_in_child_dir_to_child_dir(runner: CliRunner): write_hello(f'{dir}/child/hello2.txt') write_script(dir, '/child/hello1.txt') res = runner.invoke(cli.app, ['submit', '--files', 'child/:/child/', 'test_job.py']) - assert res.exit_code == 0 + assert res.exit_code == 0, (res.output, res.stdout, res.stderr, res.exception) def test_file_outside_curdir(runner: CliRunner): @@ -97,7 +97,7 @@ def test_file_outside_curdir(runner: CliRunner): write_hello(f'{dir}/hello.txt') write_script(dir, '/hello.txt') res = runner.invoke(cli.app, ['submit', '--files', f'{dir}/hello.txt:/', '../test_job.py']) - assert res.exit_code == 0 + assert res.exit_code == 0, (res.output, res.stdout, res.stderr, res.exception) def test_dir_outside_curdir(runner: CliRunner): @@ -108,4 +108,4 @@ def test_dir_outside_curdir(runner: CliRunner): write_hello(f'{dir}/hello2.txt') write_script(dir, '/hello1.txt') res = runner.invoke(cli.app, ['submit', '--files', f'{dir}/:/', '../test_job.py']) - assert res.exit_code == 0, (res.exit_code, res.stdout, res.stderr) + assert res.exit_code == 0, (res.exit_code, res.stdout, res.stderr, res.exception) From 5140dfea1ec6633a425744facb5b45aca91239e7 Mon Sep 17 00:00:00 2001 From: Dan King Date: Fri, 12 Jan 2024 13:56:31 -0500 Subject: [PATCH 2/3] defeat pytest shortening --- .../test/hailtop/hailctl/batch/test_submit.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/hail/python/test/hailtop/hailctl/batch/test_submit.py b/hail/python/test/hailtop/hailctl/batch/test_submit.py index 4142d81db56..42f00a46c3c 100644 --- a/hail/python/test/hailtop/hailctl/batch/test_submit.py +++ b/hail/python/test/hailtop/hailctl/batch/test_submit.py @@ -38,7 +38,7 @@ def test_file_with_no_dest(runner: CliRunner): write_hello(f'{dir}/hello.txt') write_script(dir, f'{dir}/hello.txt') res = runner.invoke(cli.app, ['submit', '--files', 'hello.txt', 'test_job.py']) - assert res.exit_code == 0, (res.output, res.stdout, res.stderr, res.exception) + assert res.exit_code == 0, repr((res.output, res.stdout, res.stderr, res.exception)) def test_file_in_current_dir(runner: CliRunner): @@ -47,7 +47,7 @@ def test_file_in_current_dir(runner: CliRunner): write_hello(f'{dir}/hello.txt') write_script(dir, f'/hello.txt') res = runner.invoke(cli.app, ['submit', '--files', 'hello.txt:/', 'test_job.py']) - assert res.exit_code == 0, (res.output, res.stdout, res.stderr, res.exception) + assert res.exit_code == 0, repr((res.output, res.stdout, res.stderr, res.exception)) def test_file_mount_in_child_dir(runner: CliRunner): @@ -56,7 +56,7 @@ def test_file_mount_in_child_dir(runner: CliRunner): write_hello(f'{dir}/hello.txt') write_script(dir, '/child/hello.txt') res = runner.invoke(cli.app, ['submit', '--files', 'hello.txt:/child/', 'test_job.py']) - assert res.exit_code == 0, (res.output, res.stdout, res.stderr, res.exception) + assert res.exit_code == 0, repr((res.output, res.stdout, res.stderr, res.exception)) def test_file_mount_in_child_dir_to_root_dir(runner: CliRunner): @@ -65,7 +65,7 @@ def test_file_mount_in_child_dir_to_root_dir(runner: CliRunner): write_hello(f'{dir}/child/hello.txt') write_script(dir, '/hello.txt') res = runner.invoke(cli.app, ['submit', '--files', 'child/hello.txt:/', 'test_job.py']) - assert res.exit_code == 0, (res.output, res.stdout, res.stderr, res.exception) + assert res.exit_code == 0, repr((res.output, res.stdout, res.stderr, res.exception)) def test_mount_multiple_files(runner: CliRunner): @@ -77,7 +77,7 @@ def test_mount_multiple_files(runner: CliRunner): res = runner.invoke( cli.app, ['submit', '--files', 'child/hello1.txt:/', '--files', 'child/hello2.txt:/', 'test_job.py'] ) - assert res.exit_code == 0, (res.output, res.stdout, res.stderr, res.exception) + assert res.exit_code == 0, repr((res.output, res.stdout, res.stderr, res.exception)) def test_dir_mount_in_child_dir_to_child_dir(runner: CliRunner): @@ -87,7 +87,7 @@ def test_dir_mount_in_child_dir_to_child_dir(runner: CliRunner): write_hello(f'{dir}/child/hello2.txt') write_script(dir, '/child/hello1.txt') res = runner.invoke(cli.app, ['submit', '--files', 'child/:/child/', 'test_job.py']) - assert res.exit_code == 0, (res.output, res.stdout, res.stderr, res.exception) + assert res.exit_code == 0, repr((res.output, res.stdout, res.stderr, res.exception)) def test_file_outside_curdir(runner: CliRunner): @@ -97,7 +97,7 @@ def test_file_outside_curdir(runner: CliRunner): write_hello(f'{dir}/hello.txt') write_script(dir, '/hello.txt') res = runner.invoke(cli.app, ['submit', '--files', f'{dir}/hello.txt:/', '../test_job.py']) - assert res.exit_code == 0, (res.output, res.stdout, res.stderr, res.exception) + assert res.exit_code == 0, repr((res.output, res.stdout, res.stderr, res.exception)) def test_dir_outside_curdir(runner: CliRunner): @@ -108,4 +108,4 @@ def test_dir_outside_curdir(runner: CliRunner): write_hello(f'{dir}/hello2.txt') write_script(dir, '/hello1.txt') res = runner.invoke(cli.app, ['submit', '--files', f'{dir}/:/', '../test_job.py']) - assert res.exit_code == 0, (res.exit_code, res.stdout, res.stderr, res.exception) + assert res.exit_code == 0, repr((res.exit_code, res.stdout, res.stderr, res.exception)) From d1fd41ca3f7f13227fdb528f1eb419bb0db3d5b5 Mon Sep 17 00:00:00 2001 From: Dan King Date: Fri, 12 Jan 2024 15:09:47 -0500 Subject: [PATCH 3/3] do not catch exceptions --- .../test/hailtop/hailctl/batch/test_submit.py | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/hail/python/test/hailtop/hailctl/batch/test_submit.py b/hail/python/test/hailtop/hailctl/batch/test_submit.py index 42f00a46c3c..f1f10cc10b9 100644 --- a/hail/python/test/hailtop/hailctl/batch/test_submit.py +++ b/hail/python/test/hailtop/hailctl/batch/test_submit.py @@ -37,7 +37,7 @@ def test_file_with_no_dest(runner: CliRunner): os.chdir(dir) write_hello(f'{dir}/hello.txt') write_script(dir, f'{dir}/hello.txt') - res = runner.invoke(cli.app, ['submit', '--files', 'hello.txt', 'test_job.py']) + res = runner.invoke(cli.app, ['submit', '--files', 'hello.txt', 'test_job.py'], catch_exceptions=False) assert res.exit_code == 0, repr((res.output, res.stdout, res.stderr, res.exception)) @@ -46,7 +46,7 @@ def test_file_in_current_dir(runner: CliRunner): os.chdir(dir) write_hello(f'{dir}/hello.txt') write_script(dir, f'/hello.txt') - res = runner.invoke(cli.app, ['submit', '--files', 'hello.txt:/', 'test_job.py']) + res = runner.invoke(cli.app, ['submit', '--files', 'hello.txt:/', 'test_job.py'], catch_exceptions=False) assert res.exit_code == 0, repr((res.output, res.stdout, res.stderr, res.exception)) @@ -55,7 +55,7 @@ def test_file_mount_in_child_dir(runner: CliRunner): os.chdir(dir) write_hello(f'{dir}/hello.txt') write_script(dir, '/child/hello.txt') - res = runner.invoke(cli.app, ['submit', '--files', 'hello.txt:/child/', 'test_job.py']) + res = runner.invoke(cli.app, ['submit', '--files', 'hello.txt:/child/', 'test_job.py'], catch_exceptions=False) assert res.exit_code == 0, repr((res.output, res.stdout, res.stderr, res.exception)) @@ -64,7 +64,7 @@ def test_file_mount_in_child_dir_to_root_dir(runner: CliRunner): os.chdir(dir) write_hello(f'{dir}/child/hello.txt') write_script(dir, '/hello.txt') - res = runner.invoke(cli.app, ['submit', '--files', 'child/hello.txt:/', 'test_job.py']) + res = runner.invoke(cli.app, ['submit', '--files', 'child/hello.txt:/', 'test_job.py'], catch_exceptions=False) assert res.exit_code == 0, repr((res.output, res.stdout, res.stderr, res.exception)) @@ -75,7 +75,9 @@ def test_mount_multiple_files(runner: CliRunner): write_hello(f'{dir}/child/hello2.txt') write_script(dir, '/hello1.txt') res = runner.invoke( - cli.app, ['submit', '--files', 'child/hello1.txt:/', '--files', 'child/hello2.txt:/', 'test_job.py'] + cli.app, + ['submit', '--files', 'child/hello1.txt:/', '--files', 'child/hello2.txt:/', 'test_job.py'], + catch_exceptions=False, ) assert res.exit_code == 0, repr((res.output, res.stdout, res.stderr, res.exception)) @@ -86,7 +88,7 @@ def test_dir_mount_in_child_dir_to_child_dir(runner: CliRunner): write_hello(f'{dir}/child/hello1.txt') write_hello(f'{dir}/child/hello2.txt') write_script(dir, '/child/hello1.txt') - res = runner.invoke(cli.app, ['submit', '--files', 'child/:/child/', 'test_job.py']) + res = runner.invoke(cli.app, ['submit', '--files', 'child/:/child/', 'test_job.py'], catch_exceptions=False) assert res.exit_code == 0, repr((res.output, res.stdout, res.stderr, res.exception)) @@ -96,7 +98,9 @@ def test_file_outside_curdir(runner: CliRunner): os.chdir(f'{dir}/working_dir') write_hello(f'{dir}/hello.txt') write_script(dir, '/hello.txt') - res = runner.invoke(cli.app, ['submit', '--files', f'{dir}/hello.txt:/', '../test_job.py']) + res = runner.invoke( + cli.app, ['submit', '--files', f'{dir}/hello.txt:/', '../test_job.py'], catch_exceptions=False + ) assert res.exit_code == 0, repr((res.output, res.stdout, res.stderr, res.exception)) @@ -107,5 +111,5 @@ def test_dir_outside_curdir(runner: CliRunner): write_hello(f'{dir}/hello1.txt') write_hello(f'{dir}/hello2.txt') write_script(dir, '/hello1.txt') - res = runner.invoke(cli.app, ['submit', '--files', f'{dir}/:/', '../test_job.py']) + res = runner.invoke(cli.app, ['submit', '--files', f'{dir}/:/', '../test_job.py'], catch_exceptions=False) assert res.exit_code == 0, repr((res.exit_code, res.stdout, res.stderr, res.exception))