From e895ff5ea61eb3437f4dbb47eed8ad79dda9f68d Mon Sep 17 00:00:00 2001 From: Michael Davis Date: Tue, 31 Dec 2024 07:08:33 -0600 Subject: [PATCH] move dbsession initialisation into application module --- src/wfrp/character/application.py | 10 ++++++++-- src/wfrp/character/forms/create/new_character.py | 2 +- src/wfrp/character/init_db.py | 4 ++-- src/wfrp/character/models/character.py | 9 +-------- src/wfrp/character/views/base_view.py | 2 +- src/wfrp/character/views/homepage.py | 2 +- tests/conftest.py | 4 ++-- tests/test_models.py | 2 +- 8 files changed, 17 insertions(+), 18 deletions(-) diff --git a/src/wfrp/character/application.py b/src/wfrp/character/application.py index eb7a7ae..3442d6d 100644 --- a/src/wfrp/character/application.py +++ b/src/wfrp/character/application.py @@ -1,10 +1,16 @@ from pyramid.config import Configurator from sqlalchemy import engine_from_config +from sqlalchemy.orm import declarative_base +from sqlalchemy.orm import scoped_session +from sqlalchemy.orm import sessionmaker +from zope.sqlalchemy import register -from wfrp.character.models.character import Base -from wfrp.character.models.character import DBSession from wfrp.character.security import SecurityPolicy +DBSession = scoped_session(sessionmaker()) +register(DBSession) +Base = declarative_base() + def configure_app(global_config, **settings): """Configure the pyramid api.""" diff --git a/src/wfrp/character/forms/create/new_character.py b/src/wfrp/character/forms/create/new_character.py index 02c3d97..2a5b6f6 100644 --- a/src/wfrp/character/forms/create/new_character.py +++ b/src/wfrp/character/forms/create/new_character.py @@ -4,8 +4,8 @@ from pyramid.view import view_config from pyramid.view import view_defaults +from wfrp.character.application import DBSession from wfrp.character.models.character import Character -from wfrp.character.models.character import DBSession @view_defaults(route_name="new_character") diff --git a/src/wfrp/character/init_db.py b/src/wfrp/character/init_db.py index ecce507..c88053d 100644 --- a/src/wfrp/character/init_db.py +++ b/src/wfrp/character/init_db.py @@ -5,8 +5,8 @@ from pyramid.paster import setup_logging from sqlalchemy import engine_from_config -from wfrp.character.models.character import Base -from wfrp.character.models.character import DBSession +from wfrp.character.application import Base +from wfrp.character.application import DBSession def usage(argv): diff --git a/src/wfrp/character/models/character.py b/src/wfrp/character/models/character.py index 9f9021d..c17acb1 100644 --- a/src/wfrp/character/models/character.py +++ b/src/wfrp/character/models/character.py @@ -6,21 +6,14 @@ from sqlalchemy import Text from sqlalchemy.ext.mutable import MutableDict from sqlalchemy.ext.mutable import MutableList -from sqlalchemy.orm import declarative_base -from sqlalchemy.orm import scoped_session -from sqlalchemy.orm import sessionmaker -from zope.sqlalchemy import register +from wfrp.character.application import Base from wfrp.character.data.armour import ARMOUR_DATA from wfrp.character.data.skills import SKILL_DATA from wfrp.character.data.talents import TALENT_DATA from wfrp.character.data.trappings import TRAPPINGS_DATA from wfrp.character.data.weapons import WEAPONS_DATA -DBSession = scoped_session(sessionmaker()) -register(DBSession) -Base = declarative_base() - class Character(Base): __tablename__ = "character" diff --git a/src/wfrp/character/views/base_view.py b/src/wfrp/character/views/base_view.py index 77a081e..a027cd3 100644 --- a/src/wfrp/character/views/base_view.py +++ b/src/wfrp/character/views/base_view.py @@ -1,7 +1,7 @@ from pyramid.httpexceptions import HTTPFound +from wfrp.character.application import DBSession from wfrp.character.models.character import Character -from wfrp.character.models.character import DBSession class BaseView: diff --git a/src/wfrp/character/views/homepage.py b/src/wfrp/character/views/homepage.py index 80d8536..2c2409d 100644 --- a/src/wfrp/character/views/homepage.py +++ b/src/wfrp/character/views/homepage.py @@ -1,8 +1,8 @@ from pyramid.view import view_config from pyramid.view import view_defaults +from wfrp.character.application import DBSession from wfrp.character.models.character import Character -from wfrp.character.models.character import DBSession @view_defaults(route_name="homepage") diff --git a/tests/conftest.py b/tests/conftest.py index 1d06c47..ce3c919 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -7,9 +7,9 @@ from sqlalchemy import engine_from_config from webtest import TestApp -from wfrp.character.models.character import Base +from wfrp.character.application import Base +from wfrp.character.application import DBSession from wfrp.character.models.character import Character -from wfrp.character.models.character import DBSession register(CharacterFactory) diff --git a/tests/test_models.py b/tests/test_models.py index a633f56..dd7aa89 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -1,8 +1,8 @@ import pytest +from wfrp.character.application import DBSession from wfrp.character.forms.create.attributes import ATTRIBUTES_LOWER from wfrp.character.models.character import Character -from wfrp.character.models.character import DBSession @pytest.mark.models