mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-07-05 21:03:14 +03:00
Migrate container custom string attribute name tests
This commit is contained in:
parent
c48e150912
commit
f62015a083
|
@ -0,0 +1,47 @@
|
||||||
|
"""Tests for container with custom string classes as attribute names.
|
||||||
|
|
||||||
|
See: https://github.com/ets-labs/python-dependency-injector/issues/479
|
||||||
|
"""
|
||||||
|
|
||||||
|
from dependency_injector import containers, providers
|
||||||
|
from pytest import fixture, raises
|
||||||
|
|
||||||
|
|
||||||
|
class CustomString(str):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class CustomClass:
|
||||||
|
thing = None
|
||||||
|
|
||||||
|
|
||||||
|
@fixture
|
||||||
|
def container():
|
||||||
|
return containers.DynamicContainer()
|
||||||
|
|
||||||
|
|
||||||
|
@fixture
|
||||||
|
def provider():
|
||||||
|
return providers.Provider()
|
||||||
|
|
||||||
|
|
||||||
|
def test_setattr(container: containers.DynamicContainer, provider: providers.Provider):
|
||||||
|
setattr(container, CustomString("test_attr"), provider)
|
||||||
|
assert container.test_attr is provider
|
||||||
|
|
||||||
|
|
||||||
|
def test_delattr(container: containers.DynamicContainer, provider: providers.Provider):
|
||||||
|
setattr(container, CustomString("test_attr"), provider)
|
||||||
|
delattr(container, CustomString("test_attr"))
|
||||||
|
with raises(AttributeError):
|
||||||
|
container.test_attr
|
||||||
|
|
||||||
|
|
||||||
|
def test_set_provider(container: containers.DynamicContainer, provider: providers.Provider):
|
||||||
|
container.set_provider(CustomString("test_attr"), provider)
|
||||||
|
assert container.test_attr is provider
|
||||||
|
|
||||||
|
|
||||||
|
def test_set_providers(container: containers.DynamicContainer, provider: providers.Provider):
|
||||||
|
container.set_providers(**{CustomString("test_attr"): provider})
|
||||||
|
assert container.test_attr is provider
|
|
@ -1,40 +0,0 @@
|
||||||
"""Dependency injector dynamic container unit tests."""
|
|
||||||
|
|
||||||
import unittest
|
|
||||||
|
|
||||||
from dependency_injector import (
|
|
||||||
containers,
|
|
||||||
providers,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class DynamicContainerWithCustomStringTests(unittest.TestCase):
|
|
||||||
# See: https://github.com/ets-labs/python-dependency-injector/issues/479
|
|
||||||
|
|
||||||
class CustomString(str):
|
|
||||||
pass
|
|
||||||
|
|
||||||
class CustomClass:
|
|
||||||
thing = None
|
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
self.container = containers.DynamicContainer()
|
|
||||||
self.provider = providers.Provider()
|
|
||||||
|
|
||||||
def test_setattr(self):
|
|
||||||
setattr(self.container, self.CustomString("test_attr"), self.provider)
|
|
||||||
self.assertIs(self.container.test_attr, self.provider)
|
|
||||||
|
|
||||||
def test_delattr(self):
|
|
||||||
setattr(self.container, self.CustomString("test_attr"), self.provider)
|
|
||||||
delattr(self.container, self.CustomString("test_attr"))
|
|
||||||
with self.assertRaises(AttributeError):
|
|
||||||
self.container.test_attr
|
|
||||||
|
|
||||||
def test_set_provider(self):
|
|
||||||
self.container.set_provider(self.CustomString("test_attr"), self.provider)
|
|
||||||
self.assertIs(self.container.test_attr, self.provider)
|
|
||||||
|
|
||||||
def test_set_providers(self):
|
|
||||||
self.container.set_providers(**{self.CustomString("test_attr"): self.provider})
|
|
||||||
self.assertIs(self.container.test_attr, self.provider)
|
|
Loading…
Reference in New Issue
Block a user