Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
maldoinc committed Aug 20, 2024
2 parents 777535d + 8268073 commit ae181c2
Show file tree
Hide file tree
Showing 19 changed files with 471 additions and 425 deletions.
803 changes: 423 additions & 380 deletions poetry.lock

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,15 @@ python = "^3.8"
graphlib2 = { version = "^0.4.7", python = ">=3.8,<3.9" }

[tool.poetry.group.dev.dependencies]
ruff = "0.3.4"
ruff = "0.6.1"
setuptools = "^68.0.0"
mkdocs = "^1.5.2"
mkdocs-material = "^9.4.14"
mkdocstrings-python = "^1.6.2"
mkdocs-open-in-new-tab = "^1.0.2"
mike = "^1.1.2"
typing-extensions = "^4.7.1"
mypy = "1.9.0"
mypy = "1.11.1"
coverage = "^7.3.2"
tox = "^4.14.2"

Expand Down
4 changes: 2 additions & 2 deletions test/integration/django/factory/factories.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from test.integration.django.service.random_service import RandomService

from django.conf import settings
from wireup import service

from test.integration.django.service.random_service import RandomService


@service
def _make_random_service() -> RandomService:
Expand Down
4 changes: 2 additions & 2 deletions test/integration/django/service/greeter_impl.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from test.integration.django.service.greeter_interface import GreeterService

from wireup import service

from test.integration.django.service.greeter_interface import GreeterService


@service
class GreeterServiceImpl(GreeterService):
Expand Down
3 changes: 2 additions & 1 deletion test/integration/django/test_django_integration.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import os
import sys
import unittest
from test.integration.django import view

import django
from django.test import Client
from django.urls import path
from wireup.integration.django import WireupSettings

from test.integration.django import view

INSTALLED_APPS = ["wireup.integration.django"]
DEBUG = True
ROOT_URLCONF = sys.modules[__name__]
Expand Down
6 changes: 3 additions & 3 deletions test/integration/django/view.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from test.integration.django.service.greeter_interface import GreeterService
from test.integration.django.service.random_service import RandomService

from django.http import HttpRequest, HttpResponse
from django.views import View
from typing_extensions import Annotated
from wireup import Inject, container

from test.integration.django.service.greeter_interface import GreeterService
from test.integration.django.service.random_service import RandomService


@container.autowire
def index(
Expand Down
9 changes: 5 additions & 4 deletions test/integration/flask/test_flask_integration.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
import unittest
from dataclasses import dataclass
from test.fixtures import FooBar, FooBase
from test.integration.flask import services
from test.integration.flask.services.factories import FlaskG
from test.unit.services.no_annotations.random.random_service import RandomService

from flask import Flask, g
from typing_extensions import Annotated
from wireup import DependencyContainer, Inject, ParameterBag
from wireup.integration.flask_integration import wireup_init_flask_integration

from test.fixtures import FooBar, FooBase
from test.integration.flask import services
from test.integration.flask.services.factories import FlaskG
from test.unit.services.no_annotations.random.random_service import RandomService


class TestFlaskIntegration(unittest.TestCase):
def setUp(self):
Expand Down
3 changes: 2 additions & 1 deletion test/integration/test_fastapi_integration.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import unittest
from test.unit.services.no_annotations.random.random_service import RandomService

from fastapi import Depends, FastAPI
from fastapi.testclient import TestClient
Expand All @@ -8,6 +7,8 @@
from wireup.errors import UnknownServiceRequestedError
from wireup.integration.fastapi_integration import wireup_init_fastapi_integration

from test.unit.services.no_annotations.random.random_service import RandomService


class TestFastAPI(unittest.TestCase):
def setUp(self):
Expand Down
1 change: 1 addition & 0 deletions test/unit/services/no_annotations/foo/foo_service.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from dataclasses import dataclass

from test.unit.services.no_annotations.db_service import DbService


Expand Down
5 changes: 3 additions & 2 deletions test/unit/services/with_annotations/services.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import abc
from test.unit.services.no_annotations.random.random_service import RandomService
from test.unit.services.no_annotations.random.truly_random_service import TrulyRandomService

from typing_extensions import Annotated
from wireup import Inject, abstract, service

from test.unit.services.no_annotations.random.random_service import RandomService
from test.unit.services.no_annotations.random.truly_random_service import TrulyRandomService


@service(qualifier="foo")
def random_service_factory() -> RandomService:
Expand Down
9 changes: 5 additions & 4 deletions test/unit/test_container.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@
import functools
import unittest
from dataclasses import dataclass
from test.fixtures import Counter, FooBar, FooBase, FooBaz
from test.unit import services
from test.unit.services.no_annotations.random.random_service import RandomService
from test.unit.services.no_annotations.random.truly_random_service import TrulyRandomService
from typing import NewType, Optional
from unittest.mock import Mock, patch

Expand All @@ -23,6 +19,11 @@
from wireup.ioc.parameter import ParameterBag, TemplatedString
from wireup.ioc.types import AnnotatedParameter, ParameterWrapper

from test.fixtures import Counter, FooBar, FooBase, FooBaz
from test.unit import services
from test.unit.services.no_annotations.random.random_service import RandomService
from test.unit.services.no_annotations.random.truly_random_service import TrulyRandomService


class TestContainer(unittest.IsolatedAsyncioTestCase):
def setUp(self) -> None:
Expand Down
5 changes: 3 additions & 2 deletions test/unit/test_container_optimized.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import unittest
from dataclasses import dataclass
from test.fixtures import FooBar, FooBase, FooBaz
from test.unit.services.no_annotations.random.random_service import RandomService

from typing_extensions import Annotated
from wireup import DependencyContainer, Inject, ParameterBag, ServiceLifetime

from test.fixtures import FooBar, FooBase, FooBaz
from test.unit.services.no_annotations.random.random_service import RandomService


@dataclass
class SomeService:
Expand Down
5 changes: 3 additions & 2 deletions test/unit/test_container_override.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
import unittest
from test.fixtures import FooBar, FooBase, FooBaz
from test.unit.services.no_annotations.random.random_service import RandomService
from unittest.mock import MagicMock, patch

from typing_extensions import Annotated
Expand All @@ -9,6 +7,9 @@
from wireup.ioc.override_manager import OverrideManager
from wireup.ioc.types import ServiceOverride

from test.fixtures import FooBar, FooBase, FooBaz
from test.unit.services.no_annotations.random.random_service import RandomService


class TestContainerOverride(unittest.TestCase):
def setUp(self) -> None:
Expand Down
5 changes: 3 additions & 2 deletions test/unit/test_container_proxy.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import unittest
from test.unit.services.no_annotations.random.random_service import RandomService
from test.unit.services.no_annotations.random.truly_random_service import TrulyRandomService

from wireup.ioc.proxy import ContainerProxy

from test.unit.services.no_annotations.random.random_service import RandomService
from test.unit.services.no_annotations.random.truly_random_service import TrulyRandomService


class ContainerProxyTest(unittest.TestCase):
def test_getattr_proxies_call(self):
Expand Down
5 changes: 3 additions & 2 deletions test/unit/test_container_static_factory.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
from test.fixtures import Counter, FooBar, FooBase
from test.unit.services.no_annotations.random.random_service import RandomService
from unittest import TestCase

from wireup import DependencyContainer, Inject, ParameterBag, ServiceLifetime, warmup_container
Expand All @@ -9,6 +7,9 @@
FactoryReturnTypeIsEmptyError,
)

from test.fixtures import Counter, FooBar, FooBase
from test.unit.services.no_annotations.random.random_service import RandomService


class ThingToBeCreated:
def __init__(self, val: str):
Expand Down
3 changes: 2 additions & 1 deletion test/unit/test_initialization_context.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import unittest
from test.unit.services.no_annotations.db_service import DbService

from wireup.ioc.initialization_context import InitializationContext
from wireup.ioc.types import AnnotatedParameter

from test.unit.services.no_annotations.db_service import DbService


class InitializationContextTest(unittest.TestCase):
def setUp(self):
Expand Down
16 changes: 3 additions & 13 deletions test/unit/test_module_loading.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import unittest

from wireup import DependencyContainer, ParameterBag, initialize_container, register_all_in_module, warmup_container

from test.unit.services import no_annotations, with_annotations
from test.unit.services.no_annotations.random.random_service import RandomService
from test.unit.services.no_annotations.random.truly_random_service import TrulyRandomService
from test.unit.services.with_annotations import services
from test.unit.services.with_annotations.env import EnvService
from test.unit.services.with_annotations.services import IFoo

import wireup
from wireup import DependencyContainer, ParameterBag, initialize_container, register_all_in_module, warmup_container


class ModuleLoadingTest(unittest.TestCase):
def test_register_all_in_module_is_recursive(self):
Expand Down Expand Up @@ -39,13 +39,3 @@ def test_loads_module_is_file(self):
self.assertEqual("foo", container.get(services.IFoo).get_foo())
self.assertEqual(4, container.get(RandomService, qualifier="foo").get_random())
self.assertEqual(5, container.get(TrulyRandomService, qualifier="foo").get_truly_random())

def test_initialize_is_idempotent_recreates_container(self):
id_start = id(wireup.container)
initialize_container(service_modules=[services])
id1 = id(wireup.container)
initialize_container(service_modules=[services])
id2 = id(wireup.container)

self.assertNotEqual(id_start, id1)
self.assertNotEqual(id1, id2)
3 changes: 2 additions & 1 deletion test/unit/test_recursive_module_loading.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import re
import unittest
from test.unit import services

from wireup import DependencyContainer, ParameterBag, register_all_in_module

from test.unit import services


class RecursiveModuleLoadingTest(unittest.TestCase):
def test_register_all_in_module_is_recursive(self):
Expand Down
3 changes: 2 additions & 1 deletion test/unit/test_service_registry.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import unittest
from test.unit.services.no_annotations.random.random_service import RandomService

from typing_extensions import Annotated
from wireup import Inject, ServiceLifetime, Wire
Expand All @@ -11,6 +10,8 @@
from wireup.ioc.service_registry import ServiceRegistry
from wireup.ioc.types import AnnotatedParameter, ParameterWrapper

from test.unit.services.no_annotations.random.random_service import RandomService


class TestServiceRegistry(unittest.TestCase):
def setUp(self):
Expand Down

0 comments on commit ae181c2

Please sign in to comment.