From 3e8232e9db076e46a562a971bb9c9b517fc763a2 Mon Sep 17 00:00:00 2001 From: Roman Mogilatov Date: Sun, 11 Oct 2015 15:34:21 +0300 Subject: [PATCH] Add catalog subsets --- dependency_injector/__init__.py | 4 + dependency_injector/catalog.py | 90 ++++++-- dependency_injector/utils.py | 6 + docs/catalogs/index.rst | 78 +------ docs/catalogs/operating.rst | 29 +++ docs/catalogs/overriding.rst | 22 ++ docs/catalogs/subsets.rst | 19 ++ docs/catalogs/writing.rst | 25 +++ .../catalogs/operating_with_providers.png | Bin 0 -> 52664 bytes docs/images/catalogs/simple.png | Bin 31779 -> 0 bytes docs/images/catalogs/subsets.png | Bin 0 -> 98584 bytes docs/images/catalogs/writing_catalogs.png | Bin 0 -> 25277 bytes docs/main/changelog.rst | 3 + examples/catalogs/simple.py | 37 ---- examples/catalogs/subsets.py | 59 ++++++ examples/catalogs/writing_catalogs.py | 22 ++ tests/test_catalog.py | 198 ++++++++++++------ tests/test_utils.py | 32 ++- 18 files changed, 425 insertions(+), 199 deletions(-) create mode 100644 docs/catalogs/operating.rst create mode 100644 docs/catalogs/overriding.rst create mode 100644 docs/catalogs/subsets.rst create mode 100644 docs/catalogs/writing.rst create mode 100644 docs/images/catalogs/operating_with_providers.png delete mode 100644 docs/images/catalogs/simple.png create mode 100644 docs/images/catalogs/subsets.png create mode 100644 docs/images/catalogs/writing_catalogs.png delete mode 100644 examples/catalogs/simple.py create mode 100644 examples/catalogs/subsets.py create mode 100644 examples/catalogs/writing_catalogs.py diff --git a/dependency_injector/__init__.py b/dependency_injector/__init__.py index 8420bd47..d0cd6304 100644 --- a/dependency_injector/__init__.py +++ b/dependency_injector/__init__.py @@ -1,6 +1,7 @@ """Dependency injector.""" from .catalog import AbstractCatalog +from .catalog import CatalogSubset from .catalog import override from .providers import Provider @@ -30,6 +31,7 @@ from .utils import is_kwarg_injection from .utils import is_attribute_injection from .utils import is_method_injection from .utils import is_catalog +from .utils import is_catalog_subset from .errors import Error @@ -37,6 +39,7 @@ from .errors import Error __all__ = ( # Catalogs 'AbstractCatalog', + 'CatalogSubset', 'override', # Providers @@ -69,6 +72,7 @@ __all__ = ( 'is_attribute_injection', 'is_method_injection', 'is_catalog', + 'is_catalog_subset', # Errors 'Error', diff --git a/dependency_injector/catalog.py b/dependency_injector/catalog.py index 5d995317..544cb8c2 100644 --- a/dependency_injector/catalog.py +++ b/dependency_injector/catalog.py @@ -31,6 +31,10 @@ class CatalogMetaClass(type): attributes['providers'] = providers return type.__new__(mcs, class_name, bases, attributes) + def __repr__(cls): + """Return string representation of the catalog class.""" + return '' + @six.add_metaclass(CatalogMetaClass) class AbstractCatalog(object): @@ -53,22 +57,20 @@ class AbstractCatalog(object): inherited_providers = dict() __IS_CATALOG__ = True - __slots__ = ('used_providers',) - def __init__(self, *used_providers): - """Initializer.""" - self.used_providers = set(used_providers) + def __new__(cls, *providers): + """Catalog constructor. - def __getattribute__(self, item): - """Return providers.""" - attribute = super(AbstractCatalog, self).__getattribute__(item) - if item in ('providers', 'used_providers', '__class__'): - return attribute + Catalogs are declaratives entities that could not be instantiated. + Catalog constructor is designed to produce subsets of catalog + providers. + """ + return CatalogSubset(catalog=cls, providers=providers) - if attribute not in self.used_providers: - raise Error('Provider \'{0}\' '.format(item) + - 'is not listed in dependencies') - return attribute + @classmethod + def is_subset_owner(cls, subset): + """Check if catalog is subset owner.""" + return subset.catalog is cls @classmethod def filter(cls, provider_type): @@ -86,6 +88,68 @@ class AbstractCatalog(object): for name, provider in six.iteritems(overriding.cls_providers): cls.providers[name].override(provider) + @classmethod + def get(cls, name): + """Return provider with specified name or raises error.""" + try: + return cls.providers[name] + except KeyError: + raise Error('{0} has no provider with such name - {1}'.format( + cls, name)) + + @classmethod + def has(cls, name): + """Check if there is provider with certain name.""" + return name in cls.providers + + +class CatalogSubset(object): + """Subset of catalog providers.""" + + __IS_SUBSET__ = True + __slots__ = ('catalog', 'available_providers', 'providers', '__dict__') + + def __init__(self, catalog, providers): + """Initializer.""" + self.catalog = catalog + self.available_providers = set(providers) + self.providers = dict() + for provider_name in self.available_providers: + try: + provider = self.catalog.providers[provider_name] + except KeyError: + raise Error('Subset could not add "{0}" provider in scope, ' + 'because {1} has no provider with ' + 'such name'.format(provider_name, self.catalog)) + else: + self.providers[provider_name] = provider + self.__dict__.update(self.providers) + super(CatalogSubset, self).__init__() + + def get(self, name): + """Return provider with specified name or raises error.""" + try: + return self.providers[name] + except KeyError: + self._raise_undefined_provider_error(name) + + def has(self, name): + """Check if there is provider with certain name.""" + return name in self.providers + + def __getattr__(self, item): + """Raise an error on every attempt to get undefined provider.""" + self._raise_undefined_provider_error(item) + + def __repr__(self): + """Return string representation of subset.""" + return ''.format( + ', '.join(self.available_providers), self.catalog) + + def _raise_undefined_provider_error(self, name): + """Raise error for cases when there is no such provider in subset.""" + raise Error('Provider "{0}" is not a part of {1}'.format(name, self)) + def override(catalog): """Catalog overriding decorator.""" diff --git a/dependency_injector/utils.py b/dependency_injector/utils.py index 42a18202..426584cd 100644 --- a/dependency_injector/utils.py +++ b/dependency_injector/utils.py @@ -62,6 +62,12 @@ def is_catalog(instance): getattr(instance, '__IS_CATALOG__', False) is True) +def is_catalog_subset(instance): + """Check if instance is catalog subset instance.""" + return (not isinstance(instance, six.class_types) and + getattr(instance, '__IS_SUBSET__', False) is True) + + def get_injectable_kwargs(kwargs, injections): """Return dictionary of kwargs, patched with injections.""" init_kwargs = dict(((injection.name, injection.value) diff --git a/docs/catalogs/index.rst b/docs/catalogs/index.rst index a1a36705..3106ae5b 100644 --- a/docs/catalogs/index.rst +++ b/docs/catalogs/index.rst @@ -16,76 +16,10 @@ Also, for both of these and some other cases, it might be useful to attach some init / shutdown functionality or something else, that deals with group of providers. -Writing catalogs ----------------- +.. toctree:: + :maxdepth: 2 -Catalogs have to extend base catalog class ``di.AbstractCatalog``. - -Providers have to be defined like catalog's attributes. Every provider in -catalog has name. This name should follow ``some_provider`` convention, -that is standard naming convention for attribute names in Python. - -.. note:: - - It might be useful to add such ``""":type: (di.Provider) -> Object1"""`` - documentation blocks one line after provider definition for every provider. - It will help code analyzing tools and IDE's to understand that variable - above contains some callable object, that returns particular instance - in a result of call. - -Example: - -.. image:: /images/catalogs/simple.png - :width: 100% - :align: center - -.. literalinclude:: ../../examples/catalogs/simple.py - :language: python - -Operating with catalog providers --------------------------------- - -``di.AbstractCatalog`` has several features that could be useful for some kind -of operations on catalog's providers: - -- ``di.AbstractCatalog.providers`` is read-only attribute that contains - ``dict`` of all catalog providers, including providers that are inherited - from parent catalogs, where key is the name of provider and value is - provider itself. -- ``di.AbstractCatalog.cls_providers`` is read-only attribute contains ``dict`` - of current catalog providers, where key is the name of provider and value is - provider itself. -- ``di.AbstractCatalog.inherited_providers`` is read-only attribute contains - ``dict`` of all providers that are inherited from parent catalogs, where key - is the name of provider and value is provider itself. -- ``di.AbstractCatalog.filter(provider_type=di.Provider)`` is a class method - that could be used for filtering catalog providers by provider types - (for example, for getting all ``di.Factory`` providers). - ``di.AbstractCatalog.filter()`` method use ``di.AbstractCatalog.providers``. - -Example: - -.. literalinclude:: ../../examples/catalogs/operating_with_providers.py - :language: python - -Overriding of catalogs ----------------------- - -Catalogs can be overridden by other catalogs. This, actually, means that -all of the providers from overriding catalog will override providers with the -same names in overridden catalog. - -There are two ways to override catalog by another catalog: - -- Use ``di.AbstractCatalog.override(AnotherCatalog)`` method. -- Use ``@di.override(AnotherCatalog)`` class decorator. - -Example of overriding catalog using ``di.AbstractCatalog.override()`` method: - -.. literalinclude:: ../../examples/catalogs/override.py - :language: python - -Example of overriding catalog using ``@di.override()`` decorator: - -.. literalinclude:: ../../examples/catalogs/override_decorator.py - :language: python + writing + operating + subsets + overriding diff --git a/docs/catalogs/operating.rst b/docs/catalogs/operating.rst new file mode 100644 index 00000000..4b344b4e --- /dev/null +++ b/docs/catalogs/operating.rst @@ -0,0 +1,29 @@ +Operating with catalogs +----------------------- + +``di.AbstractCatalog`` has several features that could be useful for some kind +of operations on catalog's providers: + +- ``di.AbstractCatalog.providers`` is read-only attribute that contains + ``dict`` of all catalog providers, including providers that are inherited + from parent catalogs, where key is the name of provider and value is + provider itself. +- ``di.AbstractCatalog.cls_providers`` is read-only attribute contains ``dict`` + of current catalog providers, where key is the name of provider and value is + provider itself. +- ``di.AbstractCatalog.inherited_providers`` is read-only attribute contains + ``dict`` of all providers that are inherited from parent catalogs, where key + is the name of provider and value is provider itself. +- ``di.AbstractCatalog.filter(provider_type=di.Provider)`` is a class method + that could be used for filtering catalog providers by provider types + (for example, for getting all ``di.Factory`` providers). + ``di.AbstractCatalog.filter()`` method use ``di.AbstractCatalog.providers``. + +Example: + +.. image:: /images/catalogs/operating_with_providers.png + :width: 100% + :align: center + +.. literalinclude:: ../../examples/catalogs/operating_with_providers.py + :language: python diff --git a/docs/catalogs/overriding.rst b/docs/catalogs/overriding.rst new file mode 100644 index 00000000..4cd3a949 --- /dev/null +++ b/docs/catalogs/overriding.rst @@ -0,0 +1,22 @@ +Overriding of catalogs +---------------------- + +Catalogs can be overridden by other catalogs. This, actually, means that +all of the providers from overriding catalog will override providers with the +same names in overridden catalog. + +There are two ways to override catalog by another catalog: + +- Use ``di.AbstractCatalog.override(AnotherCatalog)`` method. +- Use ``@di.override(AnotherCatalog)`` class decorator. + +Example of overriding catalog using ``di.AbstractCatalog.override()`` method: + +.. literalinclude:: ../../examples/catalogs/override.py + :language: python + +Example of overriding catalog using ``@di.override()`` decorator: + +.. literalinclude:: ../../examples/catalogs/override_decorator.py + :language: python + diff --git a/docs/catalogs/subsets.rst b/docs/catalogs/subsets.rst new file mode 100644 index 00000000..be27061a --- /dev/null +++ b/docs/catalogs/subsets.rst @@ -0,0 +1,19 @@ +Creating catalog subsets +------------------------ + +``di.AbstractCatalog`` subset is a limited collection of catalog providers. +While catalog could be used as a centralized place for particular providers +group, such subsets of catalog providers can be used for creating several +limited scopes that could be passed to different subsystems. + +``di.AbstractCatalog`` subsets could be created by instantiating of particular +catalog with passing provider names to the constructor. + +Example: + +.. image:: /images/catalogs/subsets.png + :width: 100% + :align: center + +.. literalinclude:: ../../examples/catalogs/subsets.py + :language: python diff --git a/docs/catalogs/writing.rst b/docs/catalogs/writing.rst new file mode 100644 index 00000000..054dc094 --- /dev/null +++ b/docs/catalogs/writing.rst @@ -0,0 +1,25 @@ +Writing catalogs +---------------- + +Catalogs have to extend base catalog class ``di.AbstractCatalog``. + +Providers have to be defined like catalog's attributes. Every provider in +catalog has name. This name should follow ``some_provider`` convention, +that is standard naming convention for attribute names in Python. + +.. note:: + + It might be useful to add such ``""":type: (di.Provider) -> Object1"""`` + docstrings just on the next line after provider's definition. It will + help code analyzing tools and IDE's to understand that variable above + contains some callable object, that returns particular instance as a + result of its call. + +Here is an simple example of catalog with several factories: + +.. image:: /images/catalogs/writing_catalogs.png + :width: 85% + :align: center + +.. literalinclude:: ../../examples/catalogs/writing_catalogs.py + :language: python diff --git a/docs/images/catalogs/operating_with_providers.png b/docs/images/catalogs/operating_with_providers.png new file mode 100644 index 0000000000000000000000000000000000000000..7c1a9ac7361d676be3afa107a845e6db7f35e443 GIT binary patch literal 52664 zcmd?Q1yJ0<7bb`dF!*4>VQ`m(;5xXw2MHm;g1gH=uwV%ig1c*Qhk@W4G`I!V;J!ot zyIXa4dskPtS65fHQ!~{y{p;>u%X{B@{q^ezbyYcR3^EJ^1O#jad1*}q1ON#BO9LXq zb5I7N%-{*Y5~2b@K&Xzzyf;IE|3`Gul#@iL7^T>S{{frJYpNh1crzj(1co3W+`_X0 zcMuTVxDgQc-Xb6fB_kjZJEk>jh`=8_sVi&CJUuj{{Fc?f!Rpqv~mzJMz-_rvDr8ybyZN zWHHt^7N8Q;|6^cdZu9!$+F95�pyLe2ihe)QXz`@8#JoxlDb{%y-`Ul>^^2q{8D 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

Sm|TP_Q&VmX4TTPGT{tTiDrCl1$8npj7$L{Nl{ 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 literal 0 HcmV?d00001 diff --git a/docs/images/catalogs/writing_catalogs.png b/docs/images/catalogs/writing_catalogs.png new file mode 100644 index 0000000000000000000000000000000000000000..a2bc679199fb116fe0f7680477d2d571a9e90962 GIT binary patch literal 25277 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 DB_O{| literal 0 HcmV?d00001 diff --git a/docs/main/changelog.rst b/docs/main/changelog.rst index 7b09e3db..51108acf 100644 --- a/docs/main/changelog.rst +++ b/docs/main/changelog.rst @@ -12,7 +12,10 @@ Development version ------------------- - Add functionality for decorating classes with ``@di.inject``. +- Add functionality for creating ``di.AbstractCatalog`` subsets. - Add enhancement for ``di.AbstractCatalog`` inheritance. +- Add images for catalog "Writing catalogs" and "Operating with catalogs" + examples. - Add minor refactorings and code style fixes. 0.9.5 diff --git a/examples/catalogs/simple.py b/examples/catalogs/simple.py deleted file mode 100644 index 1d63eafa..00000000 --- a/examples/catalogs/simple.py +++ /dev/null @@ -1,37 +0,0 @@ -"""Catalog example.""" - -import collections -import dependency_injector as di - - -# Creating some example classes: -Object1 = collections.namedtuple('Object1', ['arg1', 'arg2']) -Object2 = collections.namedtuple('Object2', ['object1']) - - -class Catalog(di.AbstractCatalog): - """Providers catalog.""" - - object1_factory = di.Factory(Object1, - arg1=1, - arg2=2) - """:type: (di.Provider) -> Object1""" - - object2_factory = di.Factory(Object2, - object1=object1_factory) - """:type: (di.Provider) -> Object2""" - -# Creating some objects: -object2_1 = Catalog.object2_factory() -object2_2 = Catalog.object2_factory() - -# Making some asserts: -assert object2_1 is not object2_2 - -assert isinstance(object2_1, Object2) -assert object2_1.object1.arg1 == 1 -assert object2_1.object1.arg2 == 2 - -assert isinstance(object2_2, Object2) -assert object2_2.object1.arg1 == 1 -assert object2_2.object1.arg2 == 2 diff --git a/examples/catalogs/subsets.py b/examples/catalogs/subsets.py new file mode 100644 index 00000000..814af380 --- /dev/null +++ b/examples/catalogs/subsets.py @@ -0,0 +1,59 @@ +"""Catalog subsets example.""" + +import dependency_injector as di + + +# Declaring example services catalog: +class Services(di.AbstractCatalog): + """Example catalog of service providers.""" + + users = di.Provider() + + auth = di.Provider() + + photos = di.Provider() + + +# Declaring example base class for some web views: +class BaseWebView(object): + """Example base class of web view.""" + + def __init__(self, services): + """Initializer. + + :type services: Services + :param services: Subset of service providers + """ + self.services = services + + +# Declaring several example web views: +class AuthView(BaseWebView): + """Example auth web view.""" + + +class PhotosView(BaseWebView): + """Example photo processing web view.""" + +# Creating example views with appropriate service provider subsets: +auth_view = AuthView(Services('users', 'auth')) +photos_view = PhotosView(Services('users', 'photos')) + +# Making some asserts: +assert auth_view.services.users is Services.users +assert auth_view.services.auth is Services.auth +try: + auth_view.services.photos +except di.Error: + # `photos` service provider is not in scope of `auth_view` services subset, + # so `di.Error` will be raised. + pass + +assert photos_view.services.users is Services.users +assert photos_view.services.photos is Services.photos +try: + photos_view.services.auth +except di.Error as exception: + # `auth` service provider is not in scope of `photo_processing_view` + # services subset, so `di.Error` will be raised. + pass diff --git a/examples/catalogs/writing_catalogs.py b/examples/catalogs/writing_catalogs.py new file mode 100644 index 00000000..bc49bac2 --- /dev/null +++ b/examples/catalogs/writing_catalogs.py @@ -0,0 +1,22 @@ +"""Catalog example.""" + +import dependency_injector as di + + +class Catalog(di.AbstractCatalog): + """Providers catalog.""" + + factory1 = di.Factory(object) + """:type: (di.Provider) -> object""" + + factory2 = di.Factory(object) + """:type: (di.Provider) -> object""" + +# Creating some objects: +object1 = Catalog.factory1() +object2 = Catalog.factory2() + +# Making some asserts: +assert object1 is not object2 +assert isinstance(object1, object) +assert isinstance(object2, object) diff --git a/tests/test_catalog.py b/tests/test_catalog.py index fd3946f1..26f1ec9b 100644 --- a/tests/test_catalog.py +++ b/tests/test_catalog.py @@ -4,93 +4,159 @@ import unittest2 as unittest import dependency_injector as di +class CatalogA(di.AbstractCatalog): + """Test catalog A.""" + + p11 = di.Provider() + p12 = di.Provider() + + +class CatalogB(CatalogA): + """Test catalog B.""" + + p21 = di.Provider() + p22 = di.Provider() + + +class CatalogC(CatalogB): + """Test catalog C.""" + + p31 = di.Provider() + p32 = di.Provider() + + class CatalogsInheritanceTests(unittest.TestCase): """Catalogs inheritance tests.""" - class CatalogA(di.AbstractCatalog): - """Test catalog A.""" - - p11 = di.Provider() - p12 = di.Provider() - - class CatalogB(CatalogA): - """Test catalog B.""" - - p21 = di.Provider() - p22 = di.Provider() - - class CatalogC(CatalogB): - """Test catalog C.""" - - p31 = di.Provider() - p32 = di.Provider() - def test_cls_providers(self): """Test `di.AbstractCatalog.cls_providers` contents.""" - self.assertDictEqual(self.CatalogA.cls_providers, - dict(p11=self.CatalogA.p11, - p12=self.CatalogA.p12)) - self.assertDictEqual(self.CatalogB.cls_providers, - dict(p21=self.CatalogB.p21, - p22=self.CatalogB.p22)) - self.assertDictEqual(self.CatalogC.cls_providers, - dict(p31=self.CatalogC.p31, - p32=self.CatalogC.p32)) + self.assertDictEqual(CatalogA.cls_providers, + dict(p11=CatalogA.p11, + p12=CatalogA.p12)) + self.assertDictEqual(CatalogB.cls_providers, + dict(p21=CatalogB.p21, + p22=CatalogB.p22)) + self.assertDictEqual(CatalogC.cls_providers, + dict(p31=CatalogC.p31, + p32=CatalogC.p32)) def test_inherited_providers(self): """Test `di.AbstractCatalog.inherited_providers` contents.""" - self.assertDictEqual(self.CatalogA.inherited_providers, dict()) - self.assertDictEqual(self.CatalogB.inherited_providers, - dict(p11=self.CatalogA.p11, - p12=self.CatalogA.p12)) - self.assertDictEqual(self.CatalogC.inherited_providers, - dict(p11=self.CatalogA.p11, - p12=self.CatalogA.p12, - p21=self.CatalogB.p21, - p22=self.CatalogB.p22)) + self.assertDictEqual(CatalogA.inherited_providers, dict()) + self.assertDictEqual(CatalogB.inherited_providers, + dict(p11=CatalogA.p11, + p12=CatalogA.p12)) + self.assertDictEqual(CatalogC.inherited_providers, + dict(p11=CatalogA.p11, + p12=CatalogA.p12, + p21=CatalogB.p21, + p22=CatalogB.p22)) def test_providers(self): """Test `di.AbstractCatalog.inherited_providers` contents.""" - self.assertDictEqual(self.CatalogA.providers, - dict(p11=self.CatalogA.p11, - p12=self.CatalogA.p12)) - self.assertDictEqual(self.CatalogB.providers, - dict(p11=self.CatalogA.p11, - p12=self.CatalogA.p12, - p21=self.CatalogB.p21, - p22=self.CatalogB.p22)) - self.assertDictEqual(self.CatalogC.providers, - dict(p11=self.CatalogA.p11, - p12=self.CatalogA.p12, - p21=self.CatalogB.p21, - p22=self.CatalogB.p22, - p31=self.CatalogC.p31, - p32=self.CatalogC.p32)) + self.assertDictEqual(CatalogA.providers, + dict(p11=CatalogA.p11, + p12=CatalogA.p12)) + self.assertDictEqual(CatalogB.providers, + dict(p11=CatalogA.p11, + p12=CatalogA.p12, + p21=CatalogB.p21, + p22=CatalogB.p22)) + self.assertDictEqual(CatalogC.providers, + dict(p11=CatalogA.p11, + p12=CatalogA.p12, + p21=CatalogB.p21, + p22=CatalogB.p22, + p31=CatalogC.p31, + p32=CatalogC.p32)) + + +class CatalogSubsetTests(unittest.TestCase): + """Catalog subset test cases.""" + + catalog = None + + def setUp(self): + """Set test environment up.""" + self.subset = CatalogC('p11', 'p12') + + def test_get_attr_from_subset(self): + """Test get providers (attribute) from subset.""" + self.assertIs(self.subset.p11, CatalogC.p11) + self.assertIs(self.subset.p12, CatalogC.p12) + + def test_get_attr_not_from_subset(self): + """Test get providers (attribute) that are not in subset.""" + self.assertRaises(di.Error, getattr, self.subset, 'p21') + self.assertRaises(di.Error, getattr, self.subset, 'p22') + self.assertRaises(di.Error, getattr, self.subset, 'p31') + self.assertRaises(di.Error, getattr, self.subset, 'p32') + + def test_get_method_from_subset(self): + """Test get providers (get() method) from subset.""" + self.assertIs(self.subset.get('p11'), CatalogC.p11) + self.assertIs(self.subset.get('p12'), CatalogC.p12) + + def test_get_method_not_from_subset(self): + """Test get providers (get() method) that are not in subset.""" + self.assertRaises(di.Error, self.subset.get, 'p21') + self.assertRaises(di.Error, self.subset.get, 'p22') + self.assertRaises(di.Error, self.subset.get, 'p31') + self.assertRaises(di.Error, self.subset.get, 'p32') + + def test_has(self): + """Test checks of providers availability in subsets.""" + self.assertTrue(self.subset.has('p11')) + self.assertTrue(self.subset.has('p12')) + + self.assertFalse(self.subset.has('p21')) + self.assertFalse(self.subset.has('p22')) + self.assertFalse(self.subset.has('p31')) + self.assertFalse(self.subset.has('p32')) + + def test_creating_with_undefined_provider(self): + """Test subset creation with provider that is not in catalog.""" + self.assertRaises(di.Error, CatalogC, 'undefined_provider') class CatalogTests(unittest.TestCase): """Catalog test cases.""" - class Catalog(di.AbstractCatalog): - """Test catalog.""" + def test_get(self): + """Test getting of providers using get() method.""" + self.assertIs(CatalogC.get('p11'), CatalogC.p11) + self.assertIs(CatalogC.get('p12'), CatalogC.p12) + self.assertIs(CatalogC.get('p22'), CatalogC.p22) + self.assertIs(CatalogC.get('p22'), CatalogC.p22) + self.assertIs(CatalogC.get('p32'), CatalogC.p32) + self.assertIs(CatalogC.get('p32'), CatalogC.p32) - obj = di.Object(object()) - another_obj = di.Object(object()) + def test_get_undefined(self): + """Test getting of undefined providers using get() method.""" + self.assertRaises(di.Error, CatalogC.get, 'undefined') - def test_get_used(self): - """Test retrieving used provider.""" - catalog = self.Catalog(self.Catalog.obj) - self.assertIsInstance(catalog.obj(), object) + def test_has(self): + """Test checks of providers availability in subsets.""" + self.assertTrue(CatalogC.has('p11')) + self.assertTrue(CatalogC.has('p12')) + self.assertTrue(CatalogC.has('p21')) + self.assertTrue(CatalogC.has('p22')) + self.assertTrue(CatalogC.has('p31')) + self.assertTrue(CatalogC.has('p32')) + self.assertFalse(CatalogC.has('undefined')) - def test_get_unused(self): - """Test retrieving unused provider.""" - catalog = self.Catalog() - self.assertRaises(di.Error, getattr, catalog, 'obj') + def test_is_subset_owner(self): + """Test that catalog is subset owner.""" + subset = CatalogA() - def test_all_providers_by_type(self): + self.assertTrue(CatalogA.is_subset_owner(subset)) + self.assertFalse(CatalogB.is_subset_owner(subset)) + self.assertFalse(CatalogC.is_subset_owner(subset)) + + def test_filter_all_providers_by_type(self): """Test getting of all catalog providers of specific type.""" - self.assertTrue(len(self.Catalog.filter(di.Object)) == 2) - self.assertTrue(len(self.Catalog.filter(di.Value)) == 0) + self.assertTrue(len(CatalogC.filter(di.Provider)) == 6) + self.assertTrue(len(CatalogC.filter(di.Value)) == 0) class OverrideTests(unittest.TestCase): diff --git a/tests/test_utils.py b/tests/test_utils.py index 2943aa3d..3d86b04d 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -5,7 +5,6 @@ import dependency_injector as di class IsProviderTests(unittest.TestCase): - """`is_provider()` test cases.""" def test_with_instance(self): @@ -27,7 +26,6 @@ class IsProviderTests(unittest.TestCase): def test_with_subclass_instance(self): """Test with subclass of provider instance.""" class SomeProvider(di.Provider): - """Some provider for test.""" self.assertTrue(di.is_provider(SomeProvider())) @@ -35,7 +33,6 @@ class IsProviderTests(unittest.TestCase): def test_with_class_with_getattr(self): """Test with class that has __getattr__() method implementation.""" class SomeClass(object): - """Some test class with __getattr__() method implementation.""" def __getattr__(self, _): @@ -46,7 +43,6 @@ class IsProviderTests(unittest.TestCase): class EnsureIsProviderTests(unittest.TestCase): - """`ensure_is_provider` test cases.""" def test_with_instance(self): @@ -68,7 +64,6 @@ class EnsureIsProviderTests(unittest.TestCase): class IsInjectionTests(unittest.TestCase): - """`is_injection()` test cases.""" def test_with_instance(self): @@ -95,7 +90,6 @@ class IsInjectionTests(unittest.TestCase): class EnsureIsInjectionTests(unittest.TestCase): - """`ensure_is_injection` test cases.""" def test_with_instance(self): @@ -117,7 +111,6 @@ class EnsureIsInjectionTests(unittest.TestCase): class IsKwArgInjectionTests(unittest.TestCase): - """`is_kwarg_injection()` test cases.""" def test_with_instance(self): @@ -142,7 +135,6 @@ class IsKwArgInjectionTests(unittest.TestCase): class IsAttributeInjectionTests(unittest.TestCase): - """`is_attribute_injection()` test cases.""" def test_with_instance(self): @@ -168,7 +160,6 @@ class IsAttributeInjectionTests(unittest.TestCase): class IsMethodInjectionTests(unittest.TestCase): - """`is_method_injection()` test cases.""" def test_with_instance(self): @@ -193,7 +184,6 @@ class IsMethodInjectionTests(unittest.TestCase): class IsCatalogTests(unittest.TestCase): - """`is_catalog()` test cases.""" def test_with_cls(self): @@ -207,7 +197,6 @@ class IsCatalogTests(unittest.TestCase): def test_with_child_class(self): """Test with parent class.""" class Catalog(di.AbstractCatalog): - """Example catalog child class.""" self.assertTrue(di.is_catalog(Catalog)) @@ -219,3 +208,24 @@ class IsCatalogTests(unittest.TestCase): def test_with_object(self): """Test with object.""" self.assertFalse(di.is_catalog(object())) + + +class IsCatalogSubsetTests(unittest.TestCase): + """`is_catalog_subset()` test cases.""" + + def test_with_cls(self): + """Test with class.""" + self.assertFalse(di.is_catalog_subset(di.CatalogSubset)) + + def test_with_instance(self): + """Test with class.""" + self.assertTrue(di.is_catalog_subset( + di.CatalogSubset(catalog=di.AbstractCatalog, providers=tuple()))) + + def test_with_string(self): + """Test with string.""" + self.assertFalse(di.is_catalog_subset('some_string')) + + def test_with_object(self): + """Test with object.""" + self.assertFalse(di.is_catalog_subset(object()))