diff options
Diffstat (limited to 'tests/test_core_context.py')
-rw-r--r-- | tests/test_core_context.py | 63 |
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 |