def __init__(self, extension_manager): self.extension_manager = extension_manager self.hooks = set() self.settings = Settings(self) self.admin_site = None self.middleware_instances = [] for middleware_cls in self.middleware: # We may be loading in traditional middleware (which doesn't take # any parameters in the constructor), or special Extension-aware # middleware (which takes an extension parameter). We need to # try to introspect and figure out what it is. try: arg_spec = inspect.getargspec(middleware_cls.__init__) except (AttributeError, TypeError): # There's no custom __init__ here. It may not exist # in the case of an old-style object, in which case we'll # get an AttributeError. Or, it may be a new-style object # with no custom __init__, in which case we'll get a TypeError. arg_spec = None if arg_spec and len(arg_spec) >= 2 and arg_spec[1] == 'extension': middleware_instance = middleware_cls(self) else: middleware_instance = middleware_cls() self.middleware_instances.append(middleware_instance) self.initialize()
def setUp(self): # Build up a mocked extension self.extension = Mock() self.extension.registration = Mock() self.test_dict = { 'test_key1': 'test_value1', 'test_key2': 'test_value2', } self.extension.registration.settings = self.test_dict self.settings = Settings(self.extension)