From eff4632df9d8f94f5d8b67588a6ceb57cff7152e Mon Sep 17 00:00:00 2001 From: Om Gupta <85685255+soggyomelette@users.noreply.github.com> Date: Wed, 7 Sep 2022 12:14:17 +0100 Subject: [PATCH] New path for logs (#2502) * add log path * add test to check if log file is in correct dir * small change * Adding paths * change to paths.py * black Co-authored-by: Chavithra Parana --- openbb_terminal/core/config/constants.py | 5 ++++- openbb_terminal/core/config/paths.py | 11 +++++++++++ .../core/log/generation/directories.py | 4 ++-- openbb_terminal/loggers.py | 2 +- .../core/log/generation/test_directories.py | 18 +++++++++++++----- 5 files changed, 31 insertions(+), 9 deletions(-) create mode 100644 openbb_terminal/core/config/paths.py diff --git a/openbb_terminal/core/config/constants.py b/openbb_terminal/core/config/constants.py index d94b4da01f2..1996492919e 100644 --- a/openbb_terminal/core/config/constants.py +++ b/openbb_terminal/core/config/constants.py @@ -1,7 +1,10 @@ # IMPORTATION STANDARD -import os from pathlib import Path +import os REPO_DIR = Path(__file__).parent.parent.parent.parent +USER_DATA_DIR = Path.home() / "OpenBBUserData" USER_HOME = Path(os.path.expanduser("~")) +if not os.path.exists(USER_DATA_DIR): + os.mkdir(USER_DATA_DIR) ENV_FILE = REPO_DIR.joinpath(".env") diff --git a/openbb_terminal/core/config/paths.py b/openbb_terminal/core/config/paths.py new file mode 100644 index 00000000000..507a3439521 --- /dev/null +++ b/openbb_terminal/core/config/paths.py @@ -0,0 +1,11 @@ +# IMPORTATION STANDARD +from pathlib import Path + + +HOME_DIRECTORY = Path.home() +REPOSITORY_DIRECTORY = Path(__file__).parent.parent.parent.parent +USER_DATA_DIRECTORY = HOME_DIRECTORY / "OpenBBUserData" +SETTINGS_DIRECTORY = HOME_DIRECTORY / ".openbb_terminal" + +REPOSITORY_ENV_FILE = REPOSITORY_DIRECTORY / ".env" +USER_ENV_FILE = SETTINGS_DIRECTORY / ".env" diff --git a/openbb_terminal/core/log/generation/directories.py b/openbb_terminal/core/log/generation/directories.py index d03b18672a2..2fc8cb6a16d 100644 --- a/openbb_terminal/core/log/generation/directories.py +++ b/openbb_terminal/core/log/generation/directories.py @@ -2,6 +2,7 @@ import os import uuid from pathlib import Path +from openbb_terminal.core.config.paths import USER_DATA_DIRECTORY # IMPORTATION THIRDPARTY @@ -12,8 +13,7 @@ from pathlib import Path def get_log_dir() -> Path: """Retrieve application's log directory.""" - file_path = Path(__file__) - log_dir = file_path.parent.parent.parent.parent.absolute().joinpath("logs") + log_dir = USER_DATA_DIRECTORY.joinpath("logs") if not os.path.isdir(log_dir.absolute()): os.mkdir(log_dir.absolute()) diff --git a/openbb_terminal/loggers.py b/openbb_terminal/loggers.py index 49aaa780a43..dbcb899ad48 100644 --- a/openbb_terminal/loggers.py +++ b/openbb_terminal/loggers.py @@ -58,7 +58,7 @@ def get_app_id() -> str: if e.errno == 30: print("Please move the application into a writable location.") print( - "Note for macOS users: copy `Gamestonk Terminal` folder outside the DMG." + "Note for macOS users: copy `OpenBB Terminal` folder outside the DMG." ) else: raise e diff --git a/tests/openbb_terminal/core/log/generation/test_directories.py b/tests/openbb_terminal/core/log/generation/test_directories.py index e0963ea4cb2..5a56e8d988f 100644 --- a/tests/openbb_terminal/core/log/generation/test_directories.py +++ b/tests/openbb_terminal/core/log/generation/test_directories.py @@ -1,24 +1,32 @@ -from openbb_terminal.core.log.generation.directories import get_log_dir, get_log_sub_dir from pathlib import Path +import logging + +from openbb_terminal.core.log.generation.directories import get_log_dir, get_log_sub_dir +from openbb_terminal.loggers import setup_logging + +logger = logging.getLogger(__name__) +setup_logging() -def test_get_log_dir(mocker, tmp_path): +def test_get_log_dir(mocker): mock_file_path = mocker.Mock() - mock_file_path.parent.parent.parent.parent = tmp_path mocker.patch( "openbb_terminal.core.log.generation.directories.Path", return_value=mock_file_path, ) log_dir = get_log_dir() + logger.info("Testing log") assert isinstance(log_dir, Path) - assert log_dir.parent.parent == tmp_path + + log_file = Path(logging.getLoggerClass().root.handlers[0].baseFilename) + + assert log_file.parent == log_dir log_dir_bis = get_log_dir() assert isinstance(log_dir, Path) - assert log_dir.parent.parent == tmp_path assert log_dir_bis == log_dir