Skip to content

Commit

Permalink
♻️ Refactor some tests, use injection in more fascinating way
Browse files Browse the repository at this point in the history
  • Loading branch information
AlTosterino committed Jun 10, 2024
1 parent a992bb2 commit a75f6fa
Show file tree
Hide file tree
Showing 8 changed files with 26 additions and 17 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ lint-ci:
poetry run mypy $(LINT_PATHS)

test:
poetry run pytest -p no:warnings
poetry run pytest -s
7 changes: 6 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,9 @@ ignore_missing_imports = true
[tool.ruff]
select = ["E", "F", "I", "PL"]
line-length = 100
target-version = "py311"
target-version = "py311"

[tool.pytest.ini_options]
addopts = ["--verbose"]
pythonpath = ["src", "tests"]
testpaths = ["tests"]
12 changes: 6 additions & 6 deletions src/adrpy/injection/modules.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from adrpy.repositories.adr.base import BaseADRRepository
from adrpy.repositories.adr.repository import ADRFileRepository
from adrpy.services.template.base import BaseTemplateService
from adrpy.services.template.service import MakoTemplateService
from adrpy.shared_kernel.settings import Settings
from lidipy import Lidi


def bind_modules(lidi: Lidi) -> None:
lidi.bind(BaseADRRepository, ADRFileRepository(settings=lidi.resolve(Settings)))
from adrpy.repositories.adr.base import BaseADRRepository
from adrpy.repositories.adr.repository import ADRFileRepository
from adrpy.services.template.base import BaseTemplateService
from adrpy.services.template.service import MakoTemplateService

lidi.bind(BaseADRRepository, ADRFileRepository())
lidi.bind(BaseTemplateService, MakoTemplateService())
3 changes: 2 additions & 1 deletion src/adrpy/injection/settings.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from adrpy.shared_kernel.settings import Settings
from lidipy import Lidi


def bind_settings(lidi: Lidi) -> None:
from adrpy.shared_kernel.settings import Settings

lidi.bind(Settings, Settings(), singleton=True)
4 changes: 2 additions & 2 deletions src/adrpy/repositories/adr/repository.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import re

from adrpy.injection import lidi
from adrpy.repositories.adr.base import BaseADRRepository
from adrpy.shared_kernel.settings import Settings
from adrpy.shared_kernel.value_objects.template import RenderedTemplate, Template


class ADRFileRepository(BaseADRRepository):
def __init__(self, settings: Settings) -> None:
self.settings = settings
settings = lidi.resolve_defer(Settings)

def get_template(self, name: str) -> Template:
template_path = self.settings.APP_TEMPLATES_DIR / name
Expand Down
4 changes: 2 additions & 2 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

from tests.fixtures.repository import TEST_DIRECTORY

pytest_plugins = ["tests.fixtures"]
pytest_plugins = ["fixtures.repository"]


@pytest.fixture
Expand All @@ -19,6 +19,6 @@ def lidi() -> Lidi:


@pytest.fixture(autouse=True)
def remove_test_file() -> Iterator[None]:
def remove_test_files() -> Iterator[None]:
yield
shutil.rmtree(TEST_DIRECTORY, ignore_errors=True)
3 changes: 2 additions & 1 deletion tests/fixtures/repository.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import dataclasses
from pathlib import Path
from typing import Iterator

Expand All @@ -16,7 +17,7 @@
def repo_service(lidi: Lidi) -> Iterator[BaseADRRepository]:
original_repo = lidi.resolve(BaseADRRepository)
original_settings = lidi.resolve(Settings)
new_settings = Settings(initial_adr_dir=TEST_DIRECTORY)
new_settings = dataclasses.replace(original_settings, initial_adr_dir=TEST_DIRECTORY)
lidi.bind(BaseADRRepository, ADRFileRepository(settings=new_settings))
yield lidi.resolve(BaseADRRepository)
lidi.bind(BaseADRRepository, original_repo)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
from adrpy.repositories.adr.repository import ADRFileRepository, BaseADRRepository
import dataclasses

from adrpy.repositories.adr.repository import BaseADRRepository
from adrpy.shared_kernel.constants import AppTemplates
from adrpy.shared_kernel.settings import Settings
from adrpy.shared_kernel.value_objects.template import RenderedTemplate
Expand Down Expand Up @@ -33,8 +35,8 @@ def test_should_get_template_file(repo_service: BaseADRRepository) -> None:
def test_should_create_file_in_nested_directories(lidi: Lidi) -> None:
# Given
nested_dir = TEST_DIRECTORY / "nested1" / "nested2"
new_settings = Settings(initial_adr_dir=nested_dir)
lidi.bind(BaseADRRepository, ADRFileRepository(settings=new_settings))
new_settings = dataclasses.replace(lidi.resolve(Settings), initial_adr_dir=nested_dir)
lidi.bind(Settings, new_settings)
rendered_template = RenderedTemplate(name=TEST_FILENAME, content="TEST_CONTENT")

# When
Expand Down

0 comments on commit a75f6fa

Please sign in to comment.