Skip to content

Commit 98948dd

Browse files
authored
Merge pull request #577 from superannotateai/friday_fixes
Friday fixes
2 parents 7f28f6f + b86983f commit 98948dd

File tree

3 files changed

+32
-6
lines changed

3 files changed

+32
-6
lines changed

src/superannotate/lib/app/interface/base_interface.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def __init__(self, token: TokenStr = None, config_path: str = None):
3333
if token:
3434
config = ConfigEntity(SA_TOKEN=token)
3535
elif config_path:
36-
config_path = Path(config_path)
36+
config_path = Path(config_path).expanduser()
3737
if not Path(config_path).is_file() or not os.access(
3838
config_path, os.R_OK
3939
):

src/superannotate/lib/core/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ def setup_logging(level=DEFAULT_LOGGING_LEVEL, file_path=LOG_FILE_LOCATION):
4444
stream_handler.setFormatter(formatter)
4545
logger.addHandler(stream_handler)
4646
try:
47+
os.makedirs(file_path, exist_ok=True)
4748
log_file_path = os.path.join(file_path, "sa.log")
4849
open(log_file_path, "w").close()
4950
if os.access(log_file_path, os.W_OK):
@@ -59,7 +60,7 @@ def setup_logging(level=DEFAULT_LOGGING_LEVEL, file_path=LOG_FILE_LOCATION):
5960
file_handler.setFormatter(file_formatter)
6061
logger.addHandler(file_handler)
6162
except OSError as e:
62-
logging.error(e)
63+
logger.debug(e)
6364

6465

6566
DEFAULT_IMAGE_EXTENSIONS = ["jpg", "jpeg", "png", "tif", "tiff", "webp", "bmp"]

tests/unit/test_init.py

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import os
33
import tempfile
44
from configparser import ConfigParser
5+
from pathlib import Path
56
from unittest import TestCase
67
from unittest.mock import patch
78

@@ -30,7 +31,6 @@ def test_init_via_token(self, get_team_use_case):
3031
@patch("lib.core.usecases.GetTeamUseCase")
3132
def test_init_via_config_json(self, get_team_use_case):
3233
with tempfile.TemporaryDirectory() as config_dir:
33-
constants.HOME_PATH = config_dir
3434
config_ini_path = f"{config_dir}/config.ini"
3535
config_json_path = f"{config_dir}/config.json"
3636
with patch("lib.core.CONFIG_INI_FILE_LOCATION", config_ini_path), patch(
@@ -48,7 +48,6 @@ def test_init_via_config_json(self, get_team_use_case):
4848

4949
def test_init_via_config_json_invalid_json(self):
5050
with tempfile.TemporaryDirectory() as config_dir:
51-
constants.HOME_PATH = config_dir
5251
config_ini_path = f"{config_dir}/config.ini"
5352
config_json_path = f"{config_dir}/config.json"
5453
with patch("lib.core.CONFIG_INI_FILE_LOCATION", config_ini_path), patch(
@@ -65,7 +64,6 @@ def test_init_via_config_json_invalid_json(self):
6564
@patch("lib.core.usecases.GetTeamUseCase")
6665
def test_init_via_config_ini(self, get_team_use_case):
6766
with tempfile.TemporaryDirectory() as config_dir:
68-
constants.HOME_PATH = config_dir
6967
config_ini_path = f"{config_dir}/config.ini"
7068
config_json_path = f"{config_dir}/config.json"
7169
with patch("lib.core.CONFIG_INI_FILE_LOCATION", config_ini_path), patch(
@@ -88,6 +86,34 @@ def test_init_via_config_ini(self, get_team_use_case):
8886
self._token.split("=")[-1]
8987
)
9088

89+
@patch("lib.core.usecases.GetTeamUseCase")
90+
def test_init_via_config_relative_filepath(self, get_team_use_case):
91+
with tempfile.TemporaryDirectory(dir=Path("~").expanduser()) as config_dir:
92+
config_ini_path = f"{config_dir}/config.ini"
93+
config_json_path = f"{config_dir}/config.json"
94+
with patch("lib.core.CONFIG_INI_FILE_LOCATION", config_ini_path), patch(
95+
"lib.core.CONFIG_JSON_FILE_LOCATION", config_json_path
96+
):
97+
with open(f"{config_dir}/config.ini", "w") as config_ini:
98+
config_parser = ConfigParser()
99+
config_parser.optionxform = str
100+
config_parser["DEFAULT"] = {
101+
"SA_TOKEN": self._token,
102+
"LOGGING_LEVEL": "DEBUG",
103+
}
104+
config_parser.write(config_ini)
105+
for kwargs in (
106+
{},
107+
{"config_path": f"~/{Path(config_dir).name}/config.ini"},
108+
):
109+
sa = SAClient(**kwargs)
110+
assert sa.controller._config.API_TOKEN == self._token
111+
assert sa.controller._config.LOGGING_LEVEL == "DEBUG"
112+
assert sa.controller._config.API_URL == constants.BACKEND_URL
113+
assert get_team_use_case.call_args_list[0].kwargs["team_id"] == int(
114+
self._token.split("=")[-1]
115+
)
116+
91117
@patch("lib.core.usecases.GetTeamUseCase")
92118
@patch.dict(os.environ, {"SA_URL": "SOME_URL", "SA_TOKEN": "SOME_TOKEN=123"})
93119
def test_init_env(self, get_team_use_case):
@@ -103,7 +129,6 @@ def test_init_env_invalid_token(self):
103129

104130
def test_init_via_config_ini_invalid_token(self):
105131
with tempfile.TemporaryDirectory() as config_dir:
106-
constants.HOME_PATH = config_dir
107132
config_ini_path = f"{config_dir}/config.ini"
108133
config_json_path = f"{config_dir}/config.json"
109134
with patch("lib.core.CONFIG_INI_FILE_LOCATION", config_ini_path), patch(

0 commit comments

Comments
 (0)