mirror of
				https://github.com/ets-labs/python-dependency-injector.git
				synced 2025-11-04 18:07:44 +03:00 
			
		
		
		
	Add tests + refactoring
This commit is contained in:
		
							parent
							
								
									2d3aa72cbd
								
							
						
					
					
						commit
						1cd11e4af2
					
				
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| 
						 | 
					@ -2504,7 +2504,7 @@ cdef class Dict(Provider):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        :rtype: str
 | 
					        :rtype: str
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        return represent_provider(provider=self, provides=dict(self.kwargs))
 | 
					        return represent_provider(provider=self, provides=self.kwargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def kwargs(self):
 | 
					    def kwargs(self):
 | 
				
			||||||
| 
						 | 
					@ -2706,7 +2706,7 @@ cdef class Resource(Provider):
 | 
				
			||||||
        if self.__initialized:
 | 
					        if self.__initialized:
 | 
				
			||||||
            return self.__resource
 | 
					            return self.__resource
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if _is_resource_subclass(self.__initializer):
 | 
					        if self._is_resource_subclass(self.__initializer):
 | 
				
			||||||
            initializer = self.__initializer()
 | 
					            initializer = self.__initializer()
 | 
				
			||||||
            self.__resource = __call(
 | 
					            self.__resource = __call(
 | 
				
			||||||
                initializer.init,
 | 
					                initializer.init,
 | 
				
			||||||
| 
						 | 
					@ -2746,6 +2746,15 @@ cdef class Resource(Provider):
 | 
				
			||||||
        self.__initialized = True
 | 
					        self.__initialized = True
 | 
				
			||||||
        return self.__resource
 | 
					        return self.__resource
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @staticmethod
 | 
				
			||||||
 | 
					    def _is_resource_subclass(instance):
 | 
				
			||||||
 | 
					        if  sys.version_info < (3, 5):
 | 
				
			||||||
 | 
					            return False
 | 
				
			||||||
 | 
					        if not isinstance(instance, CLASS_TYPES):
 | 
				
			||||||
 | 
					            return
 | 
				
			||||||
 | 
					        from . import resources
 | 
				
			||||||
 | 
					        return issubclass(instance, resources.Resource)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cdef class Container(Provider):
 | 
					cdef class Container(Provider):
 | 
				
			||||||
    """Container provider provides an instance of declarative container.
 | 
					    """Container provider provides an instance of declarative container.
 | 
				
			||||||
| 
						 | 
					@ -3357,12 +3366,3 @@ def merge_dicts(dict1, dict2):
 | 
				
			||||||
    result = dict1.copy()
 | 
					    result = dict1.copy()
 | 
				
			||||||
    result.update(dict2)
 | 
					    result.update(dict2)
 | 
				
			||||||
    return result
 | 
					    return result
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def _is_resource_subclass(instance):
 | 
					 | 
				
			||||||
    if  sys.version_info < (3, 5):
 | 
					 | 
				
			||||||
        return False
 | 
					 | 
				
			||||||
    if not isinstance(instance, CLASS_TYPES):
 | 
					 | 
				
			||||||
        return
 | 
					 | 
				
			||||||
    from . import resources
 | 
					 | 
				
			||||||
    return issubclass(instance, resources.Resource)
 | 
					 | 
				
			||||||
| 
						 | 
					@ -25,7 +25,7 @@ class ResourceTests(unittest.TestCase):
 | 
				
			||||||
    # + Initializer: function
 | 
					    # + Initializer: function
 | 
				
			||||||
    # + Initializer: generator
 | 
					    # + Initializer: generator
 | 
				
			||||||
    # + Initializer: base class
 | 
					    # + Initializer: base class
 | 
				
			||||||
    # - Initializer: unknown type
 | 
					    # + Initializer: unknown type
 | 
				
			||||||
    # + Init() and shutdown() methods
 | 
					    # + Init() and shutdown() methods
 | 
				
			||||||
    # + Initialized
 | 
					    # + Initialized
 | 
				
			||||||
    # + Args
 | 
					    # + Args
 | 
				
			||||||
| 
						 | 
					@ -112,6 +112,11 @@ class ResourceTests(unittest.TestCase):
 | 
				
			||||||
        self.assertEqual(TestResource.init_counter, 2)
 | 
					        self.assertEqual(TestResource.init_counter, 2)
 | 
				
			||||||
        self.assertEqual(TestResource.shutdown_counter, 2)
 | 
					        self.assertEqual(TestResource.shutdown_counter, 2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_init_not_callable(self):
 | 
				
			||||||
 | 
					        provider = providers.Resource(1)
 | 
				
			||||||
 | 
					        with self.assertRaises(errors.Error):
 | 
				
			||||||
 | 
					            provider.init()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_init_and_shutdown(self):
 | 
					    def test_init_and_shutdown(self):
 | 
				
			||||||
        def _init():
 | 
					        def _init():
 | 
				
			||||||
            _init.init_counter += 1
 | 
					            _init.init_counter += 1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user