From 974144b5dee7de3d1467f02c98ff9df84e5d7d14 Mon Sep 17 00:00:00 2001 From: Kiuk Chung Date: Thu, 17 Apr 2025 13:21:29 -0700 Subject: [PATCH] Prevent //torchx/cli/test:cmd_run_test from picking up user's /home/kiuk/.torchxconfig when running test cases Summary: Fix flaky `//torchx/cli/test:cmd_run_test` when running on devserver where a user (`$HOME/.torchxconfig`) torchxconfig file exists and was being picked up by the test therefore failing assertions. Differential Revision: D73208636 --- torchx/cli/test/cmd_run_test.py | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/torchx/cli/test/cmd_run_test.py b/torchx/cli/test/cmd_run_test.py index dbbecca66..b9219dc29 100644 --- a/torchx/cli/test/cmd_run_test.py +++ b/torchx/cli/test/cmd_run_test.py @@ -21,7 +21,6 @@ from unittest.mock import MagicMock, patch from torchx.cli.argparse_util import ArgOnceAction, torchxconfig - from torchx.cli.cmd_run import _parse_component_name_and_args, CmdBuiltins, CmdRun from torchx.schedulers.local_scheduler import SignalException @@ -216,38 +215,41 @@ def test_store_experiment_id(self, mock_runner_run: MagicMock) -> None: self.assertEqual(call_kwargs["parent_run_id"], "experiment_1") def test_parse_component_name_and_args_no_default(self) -> None: + # set dirs to test tmpdir so tests don't accidentally pick up user's $HOME/.torchxconfig + dirs = [str(self.tmpdir)] + sp = argparse.ArgumentParser(prog="test") self.assertEqual( ("utils.echo", []), - _parse_component_name_and_args(["utils.echo"], sp), + _parse_component_name_and_args(["utils.echo"], sp, dirs), ) self.assertEqual( ("utils.echo", []), - _parse_component_name_and_args(["--", "utils.echo"], sp), + _parse_component_name_and_args(["--", "utils.echo"], sp, dirs), ) self.assertEqual( ("utils.echo", ["--msg", "hello"]), - _parse_component_name_and_args(["utils.echo", "--msg", "hello"], sp), + _parse_component_name_and_args(["utils.echo", "--msg", "hello"], sp, dirs), ) self.assertEqual( ("utils.echo", ["--msg", "hello", "--", "--"]), _parse_component_name_and_args( - ["utils.echo", "--msg", "hello", "--", "--"], sp + ["utils.echo", "--msg", "hello", "--", "--"], sp, dirs ), ) self.assertEqual( ("utils.echo", ["--msg", "hello", "-", "-"]), _parse_component_name_and_args( - ["utils.echo", "--msg", "hello", "-", "-"], sp + ["utils.echo", "--msg", "hello", "-", "-"], sp, dirs ), ) self.assertEqual( ("utils.echo", ["--msg", "hello", "- ", "- "]), _parse_component_name_and_args( - ["utils.echo", "--msg", "hello", "- ", "- "], sp + ["utils.echo", "--msg", "hello", "- ", "- "], sp, dirs ), ) @@ -274,32 +276,35 @@ def test_parse_component_name_and_args_no_default(self) -> None: "-m", ], sp, + dirs, ), ) with self.assertRaises(SystemExit): - _parse_component_name_and_args(["--"], sp) + _parse_component_name_and_args(["--"], sp, dirs) with self.assertRaises(SystemExit): - _parse_component_name_and_args(["--msg", "hello"], sp) + _parse_component_name_and_args(["--msg", "hello"], sp, dirs) with self.assertRaises(SystemExit): - _parse_component_name_and_args(["-m", "hello"], sp) + _parse_component_name_and_args(["-m", "hello"], sp, dirs) with self.assertRaises(SystemExit): - _parse_component_name_and_args(["-m", "hello", "-m", "repeate"], sp) + _parse_component_name_and_args(["-m", "hello", "-m", "repeate"], sp, dirs) with self.assertRaises(SystemExit): - _parse_component_name_and_args(["--msg", "hello", "--msg", "repeate"], sp) + _parse_component_name_and_args( + ["--msg", "hello", "--msg", "repeate"], sp, dirs + ) with self.assertRaises(SystemExit): _parse_component_name_and_args( - ["--msg ", "hello", "--msg ", "repeate"], sp + ["--msg ", "hello", "--msg ", "repeate"], sp, dirs ) with self.assertRaises(SystemExit): _parse_component_name_and_args( - ["--m", "hello", "--", "--msg", "msg", "--msg", "repeate"], sp + ["--m", "hello", "--", "--msg", "msg", "--msg", "repeate"], sp, dirs ) def test_parse_component_name_and_args_with_default(self) -> None: