From 2cd665ff112c7dc5c03dbdfef4d15bf70e53a492 Mon Sep 17 00:00:00 2001 From: Mike Salvatore Date: Tue, 1 Jun 2021 03:46:28 -0400 Subject: [PATCH] island: Refactor duplicate code in IslandConfigOptions data_dir tests --- .../setup/test_island_config_options.py | 62 +++++++++++-------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/monkey/tests/unit_tests/monkey_island/setup/test_island_config_options.py b/monkey/tests/unit_tests/monkey_island/setup/test_island_config_options.py index fb2a1eb8c..e6d480611 100644 --- a/monkey/tests/unit_tests/monkey_island/setup/test_island_config_options.py +++ b/monkey/tests/unit_tests/monkey_island/setup/test_island_config_options.py @@ -18,11 +18,41 @@ TEST_CONFIG_FILE_CONTENTS_UNSPECIFIED = {} TEST_CONFIG_FILE_CONTENTS_NO_STARTMONGO = {"mongodb": {}} -def test_island_config_options__data_dir(): - options = IslandConfigOptions(TEST_CONFIG_FILE_CONTENTS_SPECIFIED) - assert options.data_dir == "/tmp" - options = IslandConfigOptions(TEST_CONFIG_FILE_CONTENTS_UNSPECIFIED) - assert options.data_dir == DEFAULT_DATA_DIR +def test_island_config_options__data_dir_specified(): + assert_island_config_options_data_dir_equals(TEST_CONFIG_FILE_CONTENTS_SPECIFIED, "/tmp") + + +def test_island_config_options__data_dir_uses_default(): + assert_island_config_options_data_dir_equals( + TEST_CONFIG_FILE_CONTENTS_UNSPECIFIED, DEFAULT_DATA_DIR + ) + + +def test_island_config_options__data_dir_expanduser(monkeypatch, tmpdir): + set_home_env(monkeypatch, tmpdir) + DATA_DIR_NAME = "test_data_dir" + + assert_island_config_options_data_dir_equals( + {"data_dir": f"~/{DATA_DIR_NAME}"}, os.path.join(tmpdir, DATA_DIR_NAME) + ) + + +def test_island_config_options__data_dir_expandvars(monkeypatch, tmpdir): + set_home_env(monkeypatch, tmpdir) + DATA_DIR_NAME = "test_data_dir" + + assert_island_config_options_data_dir_equals( + {"data_dir": f"$HOME/{DATA_DIR_NAME}"}, os.path.join(tmpdir, DATA_DIR_NAME) + ) + + +def set_home_env(monkeypatch, tmpdir): + monkeypatch.setenv("HOME", str(tmpdir)) + + +def assert_island_config_options_data_dir_equals(config_file_contents, expected_data_dir): + options = IslandConfigOptions(config_file_contents) + assert options.data_dir == expected_data_dir def test_island_config_options__log_level(): @@ -39,25 +69,3 @@ def test_island_config_options__mongodb(): assert options.start_mongodb == DEFAULT_START_MONGO_DB options = IslandConfigOptions(TEST_CONFIG_FILE_CONTENTS_NO_STARTMONGO) assert options.start_mongodb == DEFAULT_START_MONGO_DB - - -def set_home_env(monkeypatch, tmpdir): - monkeypatch.setenv("HOME", str(tmpdir)) - - -def test_island_config_options__data_dir_expanduser(monkeypatch, tmpdir): - set_home_env(monkeypatch, tmpdir) - DATA_DIR_NAME = "test_data_dir" - - options = IslandConfigOptions({"data_dir": f"~/{DATA_DIR_NAME}"}) - - assert options.data_dir == os.path.join(tmpdir, DATA_DIR_NAME) - - -def test_island_config_options__data_dir_expandvars(monkeypatch, tmpdir): - set_home_env(monkeypatch, tmpdir) - DATA_DIR_NAME = "test_data_dir" - - options = IslandConfigOptions({"data_dir": f"$HOME/{DATA_DIR_NAME}"}) - - assert options.data_dir == os.path.join(tmpdir, DATA_DIR_NAME)