| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import importlib.util
- import pathlib
- import sys
- import types
- import pytest
- CURRENT_DIR = pathlib.Path(__file__).resolve().parent
- PROJECT_ROOT = CURRENT_DIR.parent.parent
- MODULE_PATH = PROJECT_ROOT / "core" / "construction_review" / "component" / "reviewers" / "timeliness_basis_reviewer.py"
- @pytest.fixture
- def basis_module(monkeypatch):
- logger_module = types.ModuleType("foundation.observability.logger.loggering")
- logger_module.review_logger = types.SimpleNamespace(
- info=lambda *args, **kwargs: None,
- warning=lambda *args, **kwargs: None,
- error=lambda *args, **kwargs: None,
- )
- inter_tool_module = types.ModuleType("core.construction_review.component.reviewers.utils.inter_tool")
- inter_tool_module.InterTool = type("InterTool", (), {})
- directory_module = types.ModuleType("core.construction_review.component.reviewers.utils.directory_extraction")
- directory_module.BasisItems = type("BasisItems", (), {})
- directory_module.BasisItem = type("BasisItem", (), {})
- reviewer_module = types.ModuleType("core.construction_review.component.reviewers.standard_timeliness_reviewer")
- reviewer_module.StandardTimelinessReviewer = type("StandardTimelinessReviewer", (), {})
- reviewer_module.review_standard_timeliness_with_standardized_output = lambda *args, **kwargs: None
- monkeypatch.setitem(sys.modules, "foundation", types.ModuleType("foundation"))
- monkeypatch.setitem(sys.modules, "foundation.observability", types.ModuleType("foundation.observability"))
- monkeypatch.setitem(sys.modules, "foundation.observability.logger", types.ModuleType("foundation.observability.logger"))
- monkeypatch.setitem(sys.modules, "foundation.observability.logger.loggering", logger_module)
- monkeypatch.setitem(sys.modules, "core", types.ModuleType("core"))
- monkeypatch.setitem(sys.modules, "core.construction_review", types.ModuleType("core.construction_review"))
- monkeypatch.setitem(sys.modules, "core.construction_review.component", types.ModuleType("core.construction_review.component"))
- monkeypatch.setitem(sys.modules, "core.construction_review.component.reviewers", types.ModuleType("core.construction_review.component.reviewers"))
- monkeypatch.setitem(sys.modules, "core.construction_review.component.reviewers.utils", types.ModuleType("core.construction_review.component.reviewers.utils"))
- monkeypatch.setitem(sys.modules, "core.construction_review.component.reviewers.utils.inter_tool", inter_tool_module)
- monkeypatch.setitem(sys.modules, "core.construction_review.component.reviewers.utils.directory_extraction", directory_module)
- monkeypatch.setitem(sys.modules, "core.construction_review.component.reviewers.standard_timeliness_reviewer", reviewer_module)
- spec = importlib.util.spec_from_file_location("test_timeliness_basis_reviewer_module", MODULE_PATH)
- module = importlib.util.module_from_spec(spec)
- assert spec.loader is not None
- spec.loader.exec_module(module)
- return module
- @pytest.fixture
- def basis_service(basis_module):
- return basis_module.BasisReviewService()
- def test_debug_single_input(basis_service):
- text = "《okk》(主席令第29号)"
- result = basis_service._extract_standard_from_basis(text)
- assert result == {
- "standard_name": "okk",
- "standard_number": "主席令第29号",
- }
- print(result)
|