Skip to content

Commit

Permalink
execute test on WLM system only
Browse files Browse the repository at this point in the history
  • Loading branch information
ankona committed Apr 22, 2024
1 parent 781a004 commit b8611bb
Showing 1 changed file with 22 additions and 28 deletions.
50 changes: 22 additions & 28 deletions tests/on_wlm/test_dragon_entrypoint.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,14 @@

import pytest

import smartsim._core.entrypoints.dragon as drg
from smartsim._core.entrypoints.dragon import (
cleanup,
get_log_path,
handle_signal,
main,
parse_arguments,
print_summary,
register_signal_handlers,
remove_config_log,
)
# retrieved from pytest fixtures
if pytest.test_launcher != "dragon":
pytestmark = pytest.mark.skip(reason="Test is only for Dragon WLM systems")

try:
import smartsim._core.entrypoints.dragon as drg
except:
pytest.skip("Unable to import Dragon library", allow_module_level=True)


@pytest.fixture
Expand All @@ -60,7 +57,7 @@ def test_file_removal(test_dir: str, monkeypatch: pytest.MonkeyPatch):
"smartsim._core.entrypoints.dragon.get_log_path", lambda: str(expected_path)
)

remove_config_log()
drg.remove_config_log()
assert not expected_path.exists(), "Dragon config file was not removed"


Expand All @@ -80,7 +77,7 @@ def test_file_removal_on_bad_path(test_dir: str, monkeypatch: pytest.MonkeyPatch

try:
# ensure we don't blow up
remove_config_log()
drg.remove_config_log()
except:
assert False

Expand All @@ -106,7 +103,7 @@ def raiser(args_) -> int:
# we don't need to execute the entrypoint...
ctx.setattr("smartsim._core.entrypoints.dragon.execute_entrypoint", raiser)

return_code = main(mock_argv)
return_code = drg.main(mock_argv)

# ensure our exception error code is returned
assert return_code == -1
Expand All @@ -131,7 +128,7 @@ def test_dragon_main(
"smartsim._core.entrypoints.dragon.execute_entrypoint", lambda args_: 0
)

return_code = main(mock_argv)
return_code = drg.main(mock_argv)

# execute_entrypoint should return 0 from our mock
assert return_code == 0
Expand Down Expand Up @@ -161,7 +158,7 @@ def increment_counter(*args, **kwargs):
ctx.setattr("smartsim._core.entrypoints.dragon.cleanup", increment_counter)
ctx.setattr("smartsim._core.entrypoints.dragon.logger.info", increment_counter)

handle_signal(signal_num, None)
drg.handle_signal(signal_num, None)

# show that we log informational message & do cleanup (take 2 actions)
assert counter == 2
Expand All @@ -176,7 +173,7 @@ def test_log_path(monkeypatch: pytest.MonkeyPatch):
"smartsim._core.config.config.Config.dragon_log_filename", expected_filename
)

log_path = get_log_path()
log_path = drg.get_log_path()

assert expected_filename in log_path

Expand All @@ -199,7 +196,7 @@ def test_summary(test_dir: str, monkeypatch: pytest.MonkeyPatch):
lambda: expected_hostname,
)

print_summary(expected_interface, expected_ip)
drg.print_summary(expected_interface, expected_ip)

summary = summary_file.read_text()

Expand All @@ -220,11 +217,8 @@ def increment_counter(*args, **kwargs):
ctx.setattr(
"smartsim._core.entrypoints.dragon.remove_config_log", increment_counter
)

# ensure shutdown isn't initially true
assert not drg.SHUTDOWN_INITIATED

cleanup()
drg.SHUTDOWN_INITIATED = False
drg.cleanup()

# show that cleanup removes config
assert counter == 1
Expand All @@ -246,7 +240,7 @@ def track_args(*args, **kwargs):
# ensure valid start point
assert not sig_nums

register_signal_handlers()
drg.register_signal_handlers()

# ensure all expected handlers are registered
assert set(sig_nums) == set(drg.SIGNALS)
Expand All @@ -258,7 +252,7 @@ def test_arg_parser__no_args():

with pytest.raises(SystemExit) as ex:
# ensure that parser complains about missing required arguments
parse_arguments(args_list)
drg.parse_arguments(args_list)


def test_arg_parser__invalid_launch_addr():
Expand All @@ -269,7 +263,7 @@ def test_arg_parser__invalid_launch_addr():
args_list = [addr_flag, addr_value]

with pytest.raises(ValueError) as ex:
args = parse_arguments(args_list)
args = drg.parse_arguments(args_list)


def test_arg_parser__required_only():
Expand All @@ -279,7 +273,7 @@ def test_arg_parser__required_only():

args_list = [addr_flag, addr_value]

args = parse_arguments(args_list)
args = drg.parse_arguments(args_list)

assert args.launching_address == addr_value
assert not args.interface
Expand All @@ -295,7 +289,7 @@ def test_arg_parser__with_optionals():

args_list = [interface_flag, interface_value, addr_flag, addr_value]

args = parse_arguments(args_list)
args = drg.parse_arguments(args_list)

assert args.launching_address == addr_value
assert args.interface == interface_value

0 comments on commit b8611bb

Please sign in to comment.