100% coverage in Utils

This commit is contained in:
2022-04-23 01:16:44 +02:00
parent 63f7d1b3aa
commit 5b6cb17edc
5 changed files with 69 additions and 29 deletions

View File

@@ -11,4 +11,5 @@ exclude_lines =
ignore_errors = True
omit =
benchmark/__init__.py
benchmark/_version.py
benchmark/_version.py
benchmark/tests/*

2
.gitignore vendored
View File

@@ -102,7 +102,7 @@ celerybeat.pid
*.sage.py
# Environments
.env
/.env
.venv
env/
venv/

View File

@@ -102,14 +102,13 @@ class Files:
return None
def get_all_results(self, hidden) -> list[str]:
first_path = "."
first_try = os.path.join(
first_path, Folders.hidden_results if hidden else Folders.results
result_path = os.path.join(
".", Folders.hidden_results if hidden else Folders.results
)
if os.path.isdir(first_try):
files_list = os.listdir(first_try)
if os.path.isdir(result_path):
files_list = os.listdir(result_path)
else:
raise ValueError(f"{first_try} does not exist")
raise ValueError(f"{result_path} does not exist")
result = []
prefix, suffix = self.results_suffixes()
for result_file in files_list:
@@ -143,17 +142,12 @@ class EnvDefault(argparse.Action):
# Thanks to https://stackoverflow.com/users/445507/russell-heilling
def __init__(self, envvar, required=True, default=None, **kwargs):
self._args = EnvData.load()
if not default and envvar in self._args:
default = self._args[envvar]
if required and default:
required = False
default = self._args[envvar]
required = False
super(EnvDefault, self).__init__(
default=default, required=required, **kwargs
)
def __call__(self, parser, namespace, values, option_string=None):
setattr(namespace, self.dest, values)
class TextColor:
BLUE = "\033[94m"

7
benchmark/tests/.env Normal file
View File

@@ -0,0 +1,7 @@
score=accuracy
platform=iMac27
n_folds=5
model=ODTE
stratified=0
# Source of data Tanveer/Surcov
source_data=Tanveer

View File

@@ -132,6 +132,29 @@ class UtilTest(unittest.TestCase):
["results_accuracy_STree_iMac27_2021-11-01_23:55:16_0.json"],
)
def test_Files_get_results_Error(self):
os.chdir(os.path.dirname(os.path.abspath(__file__)))
# check with results
os.rename(Folders.results, f"{Folders.results}.test")
try:
Files().get_all_results(hidden=False)
except ValueError:
pass
else:
self.fail("Files.get_all_results() should raise ValueError")
finally:
os.rename(f"{Folders.results}.test", Folders.results)
# check with hidden_results
os.rename(Folders.hidden_results, f"{Folders.hidden_results}.test")
try:
Files().get_all_results(hidden=True)
except ValueError:
pass
else:
self.fail("Files.get_all_results() should raise ValueError")
finally:
os.rename(f"{Folders.hidden_results}.test", Folders.hidden_results)
def test_Symbols(self):
self.assertEqual(Symbols.check_mark, "\N{heavy check mark}")
@@ -156,6 +179,13 @@ class UtilTest(unittest.TestCase):
self.assertDictEqual(computed, expected)
def test_EnvDefault(self):
expected = {
"score": "accuracy",
"platform": "iMac27",
"n_folds": 5,
"model": "ODTE",
"stratified": "0",
}
ap = argparse.ArgumentParser()
ap.add_argument(
"-s",
@@ -178,6 +208,8 @@ class UtilTest(unittest.TestCase):
ap.add_argument(
"-m",
"--model",
action=EnvDefault,
envvar="model",
type=str,
required=True,
help="model name",
@@ -200,20 +232,26 @@ class UtilTest(unittest.TestCase):
required=True,
help="Stratified",
)
# ap.add_argument(
# "--title",
# type=str,
# required=True,
# )
# args = ap.parse_args([
# "--title",
# "test",
# ])
# args = ap.parse_known_args(namespace=unittest)
# computed = args.__dict__
# for key, value in expected.items():
# self.assertEqual(computed[key], value)
# print(computed)
ap.add_argument(
"--title",
type=str,
required=True,
)
ap.add_argument(
"--test",
type=str,
required=False,
default=None,
)
args = ap.parse_args(
[
"--title",
"test",
],
)
computed = args.__dict__
for key, value in expected.items():
self.assertEqual(computed[key], value)
def test_TextColor(self):
self.assertEqual(TextColor.BLUE, "\033[94m")