Merge pull request #1191 from guardicore/test-data-dir-expand-user-env

Test data dir expand user env
This commit is contained in:
Mike Salvatore 2021-06-01 04:22:43 -04:00 committed by GitHub
commit 4e6bb21942
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 40 additions and 7 deletions

View File

@ -11,8 +11,9 @@ from monkey_island.cc.server_utils.consts import (
class IslandConfigOptions:
def __init__(self, config_contents: dict):
self.data_dir = os.path.expanduser(config_contents.get("data_dir", DEFAULT_DATA_DIR))
self.data_dir = os.path.expandvars(
os.path.expanduser(config_contents.get("data_dir", DEFAULT_DATA_DIR))
)
self.log_level = config_contents.get("log_level", DEFAULT_LOG_LEVEL)
self.start_mongodb = config_contents.get(

View File

@ -1,3 +1,5 @@
import os
from monkey_island.cc.server_utils.consts import (
DEFAULT_DATA_DIR,
DEFAULT_LOG_LEVEL,
@ -16,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": os.path.join("~", 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": os.path.join("$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():