Commit ee962c04 authored by Jan Reimes's avatar Jan Reimes
Browse files

fix(tests): replace Decimal with Version for agenda_item_nbr

* Updated agenda_item_nbr from Decimal to Version in multiple test files.
* Adjusted test assertions to reflect the change in data type.
* Ensured consistency across all relevant test cases.
* Refactored related imports to include packaging.version.
parent e33d8cfa
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -3,12 +3,12 @@
from __future__ import annotations

from datetime import UTC, date, datetime
from decimal import Decimal
from pathlib import Path

import pytest
from packaging.version import Version

from tdoc_crawler.config import CacheManager, register_cache_manager
from tdoc_crawler.config import CacheManager, register_cache_manager, resolve_cache_manager
from tdoc_crawler.database import MeetingDatabase, TDocDatabase
from tdoc_crawler.meetings.models import MeetingMetadata
from tdoc_crawler.tdocs.models import TDocMetadata
@@ -50,7 +50,7 @@ def test_db_path(test_cache_dir: Path) -> Path:
    Returns:
        Path to test database
    """
    return test_cache_dir / "tdoc_crawler.db"
    return resolve_cache_manager().db_file


@pytest.fixture
@@ -71,7 +71,7 @@ def sample_tdocs() -> list[TDocMetadata]:
            contact="Test Contact",
            tdoc_type="Discussion",
            for_purpose="Discussion",
            agenda_item_nbr=Decimal("7.1"),
            agenda_item_nbr=Version("7.1"),
            agenda_item_text="Test agenda item",
            status="approved",
            is_revision_of=None,
@@ -90,7 +90,7 @@ def sample_tdocs() -> list[TDocMetadata]:
            contact="Test Contact",
            tdoc_type="Discussion",
            for_purpose="Discussion",
            agenda_item_nbr=Decimal("8.1"),
            agenda_item_nbr=Version("8.1"),
            agenda_item_text="Test agenda item",
            status="approved",
            is_revision_of=None,
@@ -109,7 +109,7 @@ def sample_tdocs() -> list[TDocMetadata]:
            contact="Test Contact",
            tdoc_type="Discussion",
            for_purpose="Discussion",
            agenda_item_nbr=Decimal("9.1"),
            agenda_item_nbr=Version("9.1"),
            agenda_item_text="Test agenda item",
            status="approved",
            is_revision_of=None,
+5 −5
Original line number Diff line number Diff line
@@ -2,11 +2,11 @@

import io
import zipfile
from decimal import Decimal
from pathlib import Path
from unittest.mock import Mock, patch

import pytest
from packaging.version import Version

from tdoc_crawler.tdocs.models import TDocMetadata
from tdoc_crawler.tdocs.operations.checkout import checkout_tdoc, get_checked_out_tdocs, get_checkout_path
@@ -24,7 +24,7 @@ def sample_tdoc_metadata() -> TDocMetadata:
        contact="test@example.com",
        tdoc_type="Test Type",
        for_purpose="Test Purpose",
        agenda_item_nbr=Decimal("1.0"),
        agenda_item_nbr=Version("1.0"),
        agenda_item_text="Test Agenda Item",
        status="available",
        meeting_name="Test Meeting",
@@ -62,7 +62,7 @@ class TestGetCheckoutPath:
            contact="test@example.com",
            tdoc_type="Test Type",
            for_purpose="Test Purpose",
            agenda_item_nbr=Decimal("1.0"),
            agenda_item_nbr=Version("1.0"),
            agenda_item_text="Test Agenda Item",
            status="available",
            meeting_name="Test Meeting",
@@ -87,7 +87,7 @@ class TestGetCheckoutPath:
            contact="test@example.com",
            tdoc_type="Test Type",
            for_purpose="Test Purpose",
            agenda_item_nbr=Decimal("1.0"),
            agenda_item_nbr=Version("1.0"),
            agenda_item_text="Test Agenda Item",
            status="available",
            meeting_name="Test Meeting",
@@ -183,7 +183,7 @@ class TestCheckoutTDoc:
            contact="test@example.com",
            tdoc_type="Test Type",
            for_purpose="Test Purpose",
            agenda_item_nbr=Decimal("1.0"),
            agenda_item_nbr=Version("1.0"),
            agenda_item_text="Test Agenda Item",
            status="available",
            meeting_name="Test Meeting",
+27 −26
Original line number Diff line number Diff line
@@ -2,14 +2,15 @@

from __future__ import annotations

from decimal import Decimal
from pathlib import Path
from unittest.mock import MagicMock, patch

import pytest
from packaging.version import Version
from typer.testing import CliRunner

from tdoc_crawler.cli import app
from tdoc_crawler.config import CacheManager
from tdoc_crawler.database import TDocDatabase
from tdoc_crawler.models.working_groups import WorkingGroup
from tdoc_crawler.tdocs.models import TDocMetadata
@@ -385,10 +386,10 @@ class TestStatsCommand:
class TestOpenCommand:
    """Tests for open command."""

    @patch("tdoc_crawler.cli.app.launch_file")
    @patch("tdoc_crawler.cli.app.prepare_tdoc_file")
    @patch("tdoc_crawler.cli.app.fetch_missing_tdocs")
    @patch("tdoc_crawler.cli.query.TDocDatabase")
    @patch("tdoc_crawler.cli.tdoc_app.launch_file")
    @patch("tdoc_crawler.cli.tdoc_app.prepare_tdoc_file")
    @patch("tdoc_crawler.cli.tdoc_app.fetch_missing_tdocs")
    @patch("tdoc_crawler.cli.tdoc_app.TDocDatabase")
    def test_open_existing_tdoc(
        self,
        mock_db_class: MagicMock,
@@ -435,10 +436,10 @@ class TestOpenCommand:
        assert result.exit_code == 1
        assert "not found" in result.stdout

    @patch("tdoc_crawler.cli.app.launch_file")
    @patch("tdoc_crawler.cli.app.prepare_tdoc_file")
    @patch("tdoc_crawler.cli.app.fetch_missing_tdocs")
    @patch("tdoc_crawler.cli.query.TDocDatabase")
    @patch("tdoc_crawler.cli.tdoc_app.launch_file")
    @patch("tdoc_crawler.cli.tdoc_app.prepare_tdoc_file")
    @patch("tdoc_crawler.cli.tdoc_app.fetch_missing_tdocs")
    @patch("tdoc_crawler.cli.tdoc_app.TDocDatabase")
    def test_open_with_whatthespec_fallback(
        self,
        mock_db_class: MagicMock,
@@ -472,7 +473,7 @@ class TestOpenCommand:
            contact="Test Contact",
            tdoc_type="agenda",
            for_purpose="Approval",
            agenda_item_nbr=Decimal("2"),
            agenda_item_nbr=Version("2"),
            agenda_item_text="Agenda item text",
            status="available",
            validated=False,
@@ -505,10 +506,10 @@ class TestOpenCommand:
        mock_prepare.assert_called_once()
        mock_launch.assert_called_once()

    @patch("tdoc_crawler.cli.app.launch_file")
    @patch("tdoc_crawler.cli.app.prepare_tdoc_file")
    @patch("tdoc_crawler.cli.app.fetch_missing_tdocs")
    @patch("tdoc_crawler.cli.query.TDocDatabase")
    @patch("tdoc_crawler.cli.tdoc_app.launch_file")
    @patch("tdoc_crawler.cli.tdoc_app.prepare_tdoc_file")
    @patch("tdoc_crawler.cli.tdoc_app.fetch_missing_tdocs")
    @patch("tdoc_crawler.cli.tdoc_app.TDocDatabase")
    def test_open_with_whatthespec_no_credentials_required(
        self,
        mock_db_class: MagicMock,
@@ -540,7 +541,7 @@ class TestOpenCommand:
            tdoc_type="discussion",
            agenda_item_text="Test agenda item text",
            for_purpose="Discussion",
            agenda_item_nbr=Decimal("3.1"),
            agenda_item_nbr=Version("3.1"),
            status="available",
            validated=False,
            validation_failed=False,
@@ -577,9 +578,9 @@ class TestOpenCommand:
class TestCheckoutCommand:
    """Tests for checkout command with whatthespec fallback."""

    @patch("tdoc_crawler.cli.app.checkout_tdoc")
    @patch("tdoc_crawler.cli.app.fetch_missing_tdocs")
    @patch("tdoc_crawler.cli.query.TDocDatabase")
    @patch("tdoc_crawler.cli.tdoc_app.checkout_tdoc")
    @patch("tdoc_crawler.cli.tdoc_app.fetch_missing_tdocs")
    @patch("tdoc_crawler.cli.tdoc_app.TDocDatabase")
    def test_checkout_with_whatthespec_fallback(
        self,
        mock_db_class: MagicMock,
@@ -613,7 +614,7 @@ class TestCheckoutCommand:
            tdoc_type="agenda",
            agenda_item_text="Test agenda item text",
            for_purpose="Approval",
            agenda_item_nbr=Decimal("2"),
            agenda_item_nbr=Version("2"),
            status="available",
            validated=False,
            validation_failed=False,
@@ -631,7 +632,7 @@ class TestCheckoutCommand:
            tdoc_type="discussion",
            agenda_item_text="Test agenda item text",
            for_purpose="Discussion",
            agenda_item_nbr=Decimal("3"),
            agenda_item_nbr=Version("3"),
            status="available",
            validated=False,
            validation_failed=False,
@@ -660,9 +661,9 @@ class TestCheckoutCommand:
        # checkout_tdoc should have been called for both TDocs
        assert mock_checkout.call_count == 2

    @patch("tdoc_crawler.cli.app.checkout_tdoc")
    @patch("tdoc_crawler.cli.app.fetch_missing_tdocs")
    @patch("tdoc_crawler.cli.query.TDocDatabase")
    @patch("tdoc_crawler.cli.tdoc_app.checkout_tdoc")
    @patch("tdoc_crawler.cli.tdoc_app.fetch_missing_tdocs")
    @patch("tdoc_crawler.cli.tdoc_app.TDocDatabase")
    def test_checkout_with_whatthespec_graceful_failure(
        self,
        mock_db_class: MagicMock,
@@ -844,7 +845,7 @@ class TestEnvironmentVariables:
        mock_resolve.return_value = None

        # Create minimal database file for stats command
        db_file = test_cache_dir / "tdoc_crawler.db"
        db_file = CacheManager(test_cache_dir, ensure_paths=True).db_file
        db_file.touch()

        result = runner.invoke(app, ["stats", "--cache-dir", str(test_cache_dir)])
@@ -867,7 +868,7 @@ class TestEnvironmentVariables:
        mock_resolve.return_value = None

        # Create minimal database file for stats command
        db_file = test_cache_dir / "tdoc_crawler.db"
        db_file = CacheManager(test_cache_dir, ensure_paths=True).db_file
        db_file.touch()

        result = runner.invoke(app, ["stats", "--cache-dir", str(test_cache_dir)])
@@ -910,7 +911,7 @@ class TestEnvironmentVariables:
        mock_resolve.return_value = None

        # Create minimal database file for stats command
        db_file = test_cache_dir / "tdoc_crawler.db"
        db_file = CacheManager(test_cache_dir, ensure_paths=True).db_file
        db_file.touch()

        result = runner.invoke(app, ["stats", "--cache-dir", str(test_cache_dir)])
+4 −4
Original line number Diff line number Diff line
@@ -4,11 +4,11 @@ from __future__ import annotations

import json
from datetime import date
from decimal import Decimal
from pathlib import Path
from unittest.mock import MagicMock, patch

from bs4 import BeautifulSoup
from packaging.version import Version

from tdoc_crawler.constants.patterns import EXCLUDED_DIRS, TDOC_PATTERN
from tdoc_crawler.database import TDocDatabase
@@ -92,7 +92,7 @@ class TestTDocCrawler:
            title="Test Contribution",
            source="Test Corp",
            contact="J. Doe",
            agenda_item_nbr=Decimal("1.0"),
            agenda_item_nbr=Version("1.0"),
            url=None,
            tdoc_type="unknown",
            for_purpose="unknown",
@@ -149,7 +149,7 @@ class TestTDocCrawler:
            title="Wanted Contribution",
            source="Test Corp",
            contact="J. Doe",
            agenda_item_nbr=Decimal("1.0"),
            agenda_item_nbr=Version("1.0"),
            url=None,
            tdoc_type="unknown",
            for_purpose="unknown",
@@ -167,7 +167,7 @@ class TestTDocCrawler:
            title="Unwanted Contribution",
            source="Other Corp",
            contact="A. Smith",
            agenda_item_nbr=Decimal("2.0"),
            agenda_item_nbr=Version("2.0"),
            url=None,
            tdoc_type="unknown",
            for_purpose="unknown",
+2 −2
Original line number Diff line number Diff line
@@ -3,10 +3,10 @@
from __future__ import annotations

from datetime import UTC, date, datetime
from decimal import Decimal
from pathlib import Path

import pytest
from packaging.version import Version

from tdoc_crawler.database import DatabaseError, TDocDatabase
from tdoc_crawler.meetings.models import MeetingMetadata, MeetingQueryConfig
@@ -166,7 +166,7 @@ class TestTDocDatabase:
                contact="Updated Contact",
                tdoc_type="Updated Type",
                for_purpose="Updated Purpose",
                agenda_item_nbr=Decimal("7.2"),
                agenda_item_nbr=Version("7.2"),
                agenda_item_text="Updated agenda",
                status="revised",
                is_revision_of=None,
Loading