96 lines
3.2 KiB
Python
96 lines
3.2 KiB
Python
"""ASV benchmarks for legacy plan removal overhead regression guard.
|
|
|
|
Ensures that deprecation warnings in legacy plan classes introduce
|
|
negligible overhead to instantiation paths.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import warnings
|
|
from unittest.mock import MagicMock
|
|
|
|
|
|
class LegacyPlanServiceSuite:
|
|
"""Benchmark suite for deprecated PlanService instantiation."""
|
|
|
|
timeout = 30
|
|
|
|
def setup(self) -> None:
|
|
"""Prepare mock dependencies for PlanService."""
|
|
self.mock_settings = MagicMock()
|
|
self.mock_settings.database_url = "sqlite:///:memory:"
|
|
self.mock_uow = MagicMock()
|
|
|
|
def time_plan_service_instantiation(self) -> None:
|
|
"""Time PlanService instantiation (includes deprecation warning)."""
|
|
with warnings.catch_warnings():
|
|
warnings.simplefilter("ignore", DeprecationWarning)
|
|
from cleveragents.application.services.plan_service import PlanService
|
|
|
|
PlanService(
|
|
settings=self.mock_settings,
|
|
unit_of_work=self.mock_uow,
|
|
)
|
|
|
|
def time_lifecycle_service_instantiation(self) -> None:
|
|
"""Time PlanLifecycleService instantiation (no deprecation)."""
|
|
from cleveragents.application.services.plan_lifecycle_service import (
|
|
PlanLifecycleService,
|
|
)
|
|
|
|
PlanLifecycleService(settings=self.mock_settings)
|
|
|
|
|
|
class LegacyRepositorySuite:
|
|
"""Benchmark suite for deprecated repository instantiation."""
|
|
|
|
timeout = 30
|
|
|
|
def setup(self) -> None:
|
|
"""Prepare mock session."""
|
|
self.mock_session = MagicMock()
|
|
|
|
def time_plan_repository_instantiation(self) -> None:
|
|
"""Time PlanRepository instantiation (includes deprecation)."""
|
|
with warnings.catch_warnings():
|
|
warnings.simplefilter("ignore", DeprecationWarning)
|
|
from cleveragents.infrastructure.database.repositories import (
|
|
PlanRepository,
|
|
)
|
|
|
|
PlanRepository(self.mock_session)
|
|
|
|
def time_change_repository_instantiation(self) -> None:
|
|
"""Time ChangeRepository instantiation (includes deprecation)."""
|
|
with warnings.catch_warnings():
|
|
warnings.simplefilter("ignore", DeprecationWarning)
|
|
from cleveragents.infrastructure.database.repositories import (
|
|
ChangeRepository,
|
|
)
|
|
|
|
ChangeRepository(self.mock_session)
|
|
|
|
def time_lifecycle_plan_repository_instantiation(self) -> None:
|
|
"""Time LifecyclePlanRepository instantiation (no deprecation)."""
|
|
from cleveragents.infrastructure.database.repositories import (
|
|
LifecyclePlanRepository,
|
|
)
|
|
|
|
LifecyclePlanRepository(session_factory=lambda: self.mock_session)
|
|
|
|
|
|
class LegacyCLIWrapperSuite:
|
|
"""Benchmark suite for deprecated CLI wrapper overhead."""
|
|
|
|
timeout = 30
|
|
|
|
def time_deprecation_warning_overhead(self) -> None:
|
|
"""Time the overhead of issuing a single DeprecationWarning."""
|
|
with warnings.catch_warnings():
|
|
warnings.simplefilter("ignore", DeprecationWarning)
|
|
warnings.warn(
|
|
"benchmark deprecation test",
|
|
DeprecationWarning,
|
|
stacklevel=1,
|
|
)
|