aboutsummaryrefslogtreecommitdiff
path: root/tests/test_core_context.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_core_context.py')
-rw-r--r--tests/test_core_context.py63
1 files changed, 25 insertions, 38 deletions
diff --git a/tests/test_core_context.py b/tests/test_core_context.py
index 09b34e9..0810ad0 100644
--- a/tests/test_core_context.py
+++ b/tests/test_core_context.py
@@ -3,16 +3,16 @@
"""Tests for the module context."""
from __future__ import annotations
-import re
from pathlib import Path
import pytest
from mlia.core.common import AdviceCategory
-from mlia.core.context import create_output_dir_with_timestamp
from mlia.core.context import ExecutionContext
from mlia.core.events import DefaultEventPublisher
+from mlia.utils.filesystem import USER_ONLY_PERM_MASK
from mlia.utils.filesystem import working_directory
+from tests.utils.common import check_expected_permissions
@pytest.mark.parametrize(
@@ -46,7 +46,7 @@ def test_execution_context_category_enabled(
assert ctx.category_enabled(category)
-def test_execution_context(tmpdir: str) -> None:
+def test_execution_context(tmp_path: Path) -> None:
"""Test execution context."""
publisher = DefaultEventPublisher()
category = {AdviceCategory.COMPATIBILITY}
@@ -54,7 +54,7 @@ def test_execution_context(tmpdir: str) -> None:
context = ExecutionContext(
advice_category=category,
config_parameters={"param": "value"},
- output_dir=tmpdir,
+ output_dir=tmp_path / "output",
event_handlers=[],
event_publisher=publisher,
verbose=True,
@@ -63,18 +63,24 @@ def test_execution_context(tmpdir: str) -> None:
output_format="json",
)
+ output_dir = context.output_dir
+ assert output_dir == tmp_path.joinpath("output", "mlia-output")
+ assert output_dir.is_dir()
+ check_expected_permissions(output_dir, USER_ONLY_PERM_MASK)
+ check_expected_permissions(tmp_path.joinpath("output"), USER_ONLY_PERM_MASK)
+
assert context.advice_category == category
assert context.config_parameters == {"param": "value"}
assert context.event_handlers == []
assert context.event_publisher == publisher
- assert context.logs_path == Path(tmpdir) / "logs_directory"
- expected_model_path = Path(tmpdir) / "models_directory/sample.model"
+ assert context.logs_path == output_dir / "logs_directory"
+ expected_model_path = output_dir / "models_directory/sample.model"
assert context.get_model_path("sample.model") == expected_model_path
assert context.verbose is True
assert context.output_format == "json"
assert str(context) == (
f"ExecutionContext: "
- f"output_dir={tmpdir}, "
+ f"output_dir={output_dir}, "
"advice_category={'COMPATIBILITY'}, "
"config_parameters={'param': 'value'}, "
"verbose=True, "
@@ -82,53 +88,34 @@ def test_execution_context(tmpdir: str) -> None:
)
-def test_execution_context_with_default_params(tmpdir: str) -> None:
+def test_execution_context_with_default_params(tmp_path: Path) -> None:
"""Test execution context with the default parameters."""
- context_with_default_params = ExecutionContext(output_dir=tmpdir)
+ working_dir = tmp_path / "sample"
+ with working_directory(working_dir, create_dir=True):
+ context_with_default_params = ExecutionContext()
+
assert context_with_default_params.advice_category == {AdviceCategory.COMPATIBILITY}
assert context_with_default_params.config_parameters is None
assert context_with_default_params.event_handlers is None
assert isinstance(
context_with_default_params.event_publisher, DefaultEventPublisher
)
- assert context_with_default_params.logs_path == Path(tmpdir) / "logs"
+
+ output_dir = context_with_default_params.output_dir
+ assert output_dir == working_dir.joinpath("mlia-output")
+
+ assert context_with_default_params.logs_path == output_dir / "logs"
default_model_path = context_with_default_params.get_model_path("sample.model")
- expected_default_model_path = Path(tmpdir) / "models/sample.model"
+ expected_default_model_path = output_dir / "models/sample.model"
assert default_model_path == expected_default_model_path
assert context_with_default_params.output_format == "plain_text"
expected_str = (
- f"ExecutionContext: output_dir={tmpdir}, "
+ f"ExecutionContext: output_dir={output_dir}, "
"advice_category={'COMPATIBILITY'}, "
"config_parameters=None, "
"verbose=False, "
"output_format=plain_text"
)
assert str(context_with_default_params) == expected_str
-
-
-def test_create_output_dir_with_timestamp(tmp_path: Path) -> None:
- """Test function generate_output_dir_with_timestamp."""
- working_dir = tmp_path / "sample"
- with working_directory(working_dir, create_dir=True):
- create_output_dir_with_timestamp()
-
- working_dir_content = list(working_dir.iterdir())
- assert len(working_dir_content) == 1
-
- parent_dir = working_dir_content[0]
- assert parent_dir.is_dir()
- assert parent_dir.name == "mlia-output"
-
- parent_dir_content = list(parent_dir.iterdir())
- assert len(parent_dir_content) == 1
-
- output_dir = parent_dir_content[0]
- assert output_dir.is_dir()
-
- pattern = re.compile(r"mlia-output-\d{4}-\d{2}-\d{2}T\d+[.]\d+")
- assert pattern.match(output_dir.name)
-
- output_dir_content = list(output_dir.iterdir())
- assert not output_dir_content