diff --git a/canaille/__init__.py b/canaille/__init__.py index 476037a8..132e4744 100644 --- a/canaille/__init__.py +++ b/canaille/__init__.py @@ -128,8 +128,6 @@ def create_app(config=None, validate=True, backend=None): try: setup_logging(app) backend = setup_backend(app, backend) - if app.debug: - backend.install(app.config, True) setup_flask_converters(app) setup_blueprints(app) setup_jinja(app) diff --git a/canaille/app/installation.py b/canaille/app/installation.py index e0f8fb69..e2879f49 100644 --- a/canaille/app/installation.py +++ b/canaille/app/installation.py @@ -8,4 +8,4 @@ class InstallationException(Exception): def install(config, debug=False): install_oidc(config, debug=debug) - BaseBackend.get().install(config, debug=debug) + BaseBackend.get().install(config) diff --git a/canaille/backends/__init__.py b/canaille/backends/__init__.py index 29f5d330..3301816b 100644 --- a/canaille/backends/__init__.py +++ b/canaille/backends/__init__.py @@ -33,7 +33,7 @@ class BaseBackend: self.teardown() @classmethod - def install(self, config, debug=False): + def install(self, config): """ This methods prepares the database to host canaille data. """ diff --git a/canaille/backends/ldap/backend.py b/canaille/backends/ldap/backend.py index ec649f47..ea840172 100644 --- a/canaille/backends/ldap/backend.py +++ b/canaille/backends/ldap/backend.py @@ -54,7 +54,7 @@ class Backend(BaseBackend): setup_ldap_models(config) @classmethod - def install(cls, config, debug=False): + def install(cls, config): cls.setup_schemas(config) with cls(config).session(): models.Token.install() diff --git a/canaille/backends/memory/backend.py b/canaille/backends/memory/backend.py index d8e7f100..5ed1fb9a 100644 --- a/canaille/backends/memory/backend.py +++ b/canaille/backends/memory/backend.py @@ -3,7 +3,7 @@ from canaille.backends import BaseBackend class Backend(BaseBackend): @classmethod - def install(cls, config, debug=False): + def install(cls, config): pass def setup(self): diff --git a/canaille/backends/sql/backend.py b/canaille/backends/sql/backend.py index 4c314da6..23b4d5f4 100644 --- a/canaille/backends/sql/backend.py +++ b/canaille/backends/sql/backend.py @@ -19,7 +19,7 @@ class Backend(BaseBackend): db_session = None @classmethod - def install(cls, config, debug=False): # pragma: no cover + def install(cls, config): # pragma: no cover engine = create_engine( config["BACKENDS"]["SQL"]["SQL_DATABASE_URI"], echo=False, diff --git a/demo/ldap-server.py b/demo/ldap-server.py index f1b5ec6c..7bda0dc3 100644 --- a/demo/ldap-server.py +++ b/demo/ldap-server.py @@ -17,6 +17,7 @@ schemas = [ "ldif/memberof-config.ldif", "ldif/refint-config.ldif", "ldif/ppolicy-config.ldif", + "../canaille/backends/ldap/schemas/oauth2-openldap.ldif", ] slapd = slapd.Slapd( @@ -30,35 +31,18 @@ slapd = slapd.Slapd( slapd.start() try: - suffix_dc = slapd.suffix.split(",")[0][3:] - slapd.ldapadd( - "\n".join( - [ - "dn: " + slapd.suffix, - "objectClass: dcObject", - "objectClass: organization", - "dc: " + suffix_dc, - "o: " + suffix_dc, - "", - "dn: " + slapd.root_dn, - "objectClass: applicationProcess", - "cn: " + slapd.root_cn, - ] - ) - + "\n" - ) - + slapd.init_tree() for ldif in ( "ldif/ppolicy.ldif", "ldif/bootstrap-users-tree.ldif", "ldif/bootstrap-oidc-tree.ldif", ): - with open(ldif) as fd: - try: - slapd.ldapadd(fd.read()) - except RuntimeError: - pass + try: + slapd.ldapadd(None, ["-f", ldif]) + except RuntimeError: + pass + slapd.logger.info("slapd initialized: all ldif files loaded") slapd.wait() finally: slapd.stop() diff --git a/tests/backends/ldap/fixtures.py b/tests/backends/ldap/fixtures.py index 0b057813..105db04a 100644 --- a/tests/backends/ldap/fixtures.py +++ b/tests/backends/ldap/fixtures.py @@ -18,8 +18,7 @@ def slapd_server(): "demo/ldif/bootstrap-users-tree.ldif", "demo/ldif/bootstrap-oidc-tree.ldif", ): - with open(ldif) as fd: - slapd.ldapadd(fd.read()) + slapd.ldapadd(None, ["-f", ldif]) yield slapd finally: slapd.stop() diff --git a/tests/backends/ldap/test_install.py b/tests/backends/ldap/test_install.py index e14e7701..90afeb70 100644 --- a/tests/backends/ldap/test_install.py +++ b/tests/backends/ldap/test_install.py @@ -25,8 +25,7 @@ def slapd_server(): "demo/ldif/bootstrap-users-tree.ldif", "demo/ldif/bootstrap-users.ldif", ): - with open(ldif) as fd: - slapd.ldapadd(fd.read()) + slapd.ldapadd(None, ["-f", ldif]) yield slapd finally: diff --git a/tests/conftest.py b/tests/conftest.py index 4462c3ed..cf3b1e64 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -127,6 +127,7 @@ def configuration(smtpd): @pytest.fixture def app(configuration, backend): app = create_app(configuration, backend=backend) + backend.install(app.config) with app.test_request_context(): yield app