def test_empty_registry(): EmptyModuleRegistry = create_registry_metaclass( # NOSONAR "EmptyModuleRegistry", __package__, decorate_as_module=True) if EmptyModuleRegistry._registry is not None: return "Registry was supposed to be None" if EmptyModuleRegistry._initialized is not False: return "Registry initialized flag should be false"
def test_create_base_class(): RegistryWithBaseClass = create_registry_metaclass( # NOSONAR 'RegistryWithBaseClass', __package__, decorate_as_module=False) @six.add_metaclass(RegistryWithBaseClass) class TestBase(object): pass registry = RegistryWithBaseClass._registry if registry is None or len(registry) != 0: return "Registry was not supposed to be None, and empty" if RegistryWithBaseClass._initialized is False: return "Registry initialized flag should not be true"
####################################################################### # # pgAdmin 4 - PostgreSQL Tools # # Copyright (C) 2013 - 2021, The pgAdmin Development Team # This software is released under the PostgreSQL Licence # ########################################################################## import six from pgadmin.utils.dynamic_registry import create_registry_metaclass TestModuleRegistry = create_registry_metaclass( 'TestModuleRegistry', __package__, decorate_as_module=True ) TestNamedRegistry = create_registry_metaclass( 'TestRegistry', __package__, decorate_as_module=False ) @six.add_metaclass(TestModuleRegistry) class TestModuleBase(object): pass @six.add_metaclass(TestNamedRegistry) class TestNameBase(object): pass
########################################################################## # # pgAdmin 4 - PostgreSQL Tools # # Copyright (C) 2013 - 2021, The pgAdmin Development Team # This software is released under the PostgreSQL Licence # ########################################################################## from abc import ABCMeta from pgadmin.utils.dynamic_registry import create_registry_metaclass DriverRegistry = create_registry_metaclass("DriverRegistry", __package__, decorate_as_module=True)
@classmethod def load_modules(cls, app=None): submodules = [] from . import internal as module submodules.append(module) from . import kerberos as module submodules.append(module) from . import ldap as module submodules.append(module) from . import mfa as module submodules.append(module) from . import oauth2 as module submodules.append(module) from . import webserver as module submodules.append(module) for module in submodules: if "init_app" in module.__dict__.keys(): module.__dict__["init_app"](app) AuthSourceRegistry = create_registry_metaclass("AuthSourceRegistry", __package__, load_modules=load_modules, decorate_as_module=True)
from . import email as module submodules.append(module) from . import utils as module submodules.append(module) from . import views as module submodules.append(module) for module in submodules: if "init_app" in module.__dict__.keys(): module.__dict__["init_app"](app) MultiFactorAuthRegistry = create_registry_metaclass('MultiFactorAuthRegistry', __package__, load_modules=load_modules, decorate_as_module=True) @six.add_metaclass(MultiFactorAuthRegistry) class BaseMFAuth(): """ Base Multi-Factor Authentication (MFA) class A Class implements this class will be registered with the registry class 'MultiFactorAuthRegistry', and it will be automatically available as a MFA method. """ @abstractproperty def name(self) -> str: """