mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-07-04 20:33:13 +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