diff --git a/app/dbconfig.py b/app/dbconfig.py index ca71d80..c085636 100644 --- a/app/dbconfig.py +++ b/app/dbconfig.py @@ -5,19 +5,21 @@ from config import Config from sqlalchemy.orm import (sessionmaker, scoped_session) MM_ENV = os.environ.get('MM_ENV', 'PRODUCTION') +testing = False if MM_ENV == 'PRODUCTION': - dbname = os.environ.get('MM_PRODUCTION_DBNAME', 'musicmuster') + dbname = os.environ.get('MM_PRODUCTION_DBNAME', 'musicmuster_prod') dbuser = os.environ.get('MM_PRODUCTION_DBUSER', 'musicmuster') dbpw = os.environ.get('MM_PRODUCTION_DBPW', 'musicmuster') dbhost = os.environ.get('MM_PRODUCTION_DBHOST', 'localhost') elif MM_ENV == 'TESTING': - dbname = os.environ.get('MM_TESTING_DBNAME', 'musicmuster') - dbuser = os.environ.get('MM_TESTING_DBUSER', 'musicmuster') - dbpw = os.environ.get('MM_TESTING_DBPW', 'musicmuster') + dbname = os.environ.get('MM_TESTING_DBNAME', 'musicmuster_testing') + dbuser = os.environ.get('MM_TESTING_DBUSER', 'musicmuster_testing') + dbpw = os.environ.get('MM_TESTING_DBPW', 'musicmuster_testing') dbhost = os.environ.get('MM_TESTING_DBHOST', 'localhost') + testing = True elif MM_ENV == 'DEVELOPMENT': - dbname = os.environ.get('MM_DEVELOPMENT_DBNAME', 'musicmuster') + dbname = os.environ.get('MM_DEVELOPMENT_DBNAME', 'musicmuster_dev') dbuser = os.environ.get('MM_DEVELOPMENT_DBUSER', 'musicmuster') dbpw = os.environ.get('MM_DEVELOPMENT_DBPW', 'musicmuster') dbhost = os.environ.get('MM_DEVELOPMENT_DBHOST', 'localhost') @@ -33,5 +35,4 @@ engine = sqlalchemy.create_engine( pool_pre_ping=True ) -Session = scoped_session(sessionmaker(bind=engine)) - +session = scoped_session(sessionmaker(bind=engine)) diff --git a/app/models.py b/app/models.py index b46cdae..1c9499a 100644 --- a/app/models.py +++ b/app/models.py @@ -1,10 +1,12 @@ #!/usr/bin/python3 +import dbconfig import os.path import re from datetime import datetime +from dbconfig import engine from typing import List, Optional from pydub import AudioSegment @@ -38,15 +40,12 @@ from helpers import ( ) from log import DEBUG, ERROR +Session = dbconfig.session Base: DeclarativeMeta = declarative_base() Base.metadata.create_all(engine) -def db_init(): - return - - # Database classes class NoteColours(Base): __tablename__ = 'notecolours' diff --git a/app/musicmuster.py b/app/musicmuster.py index bf91f5a..653e86c 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -27,7 +27,7 @@ import helpers import music from config import Config -from models import (db_init, Playdates, Playlists, PlaylistTracks, +from models import (Playdates, Playlists, PlaylistTracks, Session, Settings, Tracks) from playlists import PlaylistTab from utilities import create_track_from_file @@ -101,6 +101,12 @@ class Window(QMainWindow, Ui_MainWindow): height = record.f_int or 981 self.setGeometry(x, y, width, height) + @staticmethod + def kae(): + with Session() as session: + db = session.bind.engine.url.database + print(f"kae(): {db=}") + @staticmethod def check_audacity() -> None: """Offer to run Audacity if not running""" @@ -976,7 +982,6 @@ class SelectPlaylistDialog(QDialog): def main(): try: app = QApplication(sys.argv) - db_init() win = Window() win.show() sys.exit(app.exec()) diff --git a/conftest.py b/conftest.py index 6296bae..943aaa9 100644 --- a/conftest.py +++ b/conftest.py @@ -7,7 +7,6 @@ from sqlalchemy import create_engine from sqlalchemy.orm import scoped_session, sessionmaker sys.path.append("app") -from app.models import Base # noqa E402 @pytest.fixture(scope="session") @@ -38,6 +37,7 @@ def seed_database(): @pytest.fixture(scope="session") def setup_database(connection): + from app.models import Base # noqa E402 Base.metadata.bind = connection Base.metadata.create_all() # seed_database() diff --git a/test_playlists.py b/test_playlists.py index c99d929..cf287e0 100644 --- a/test_playlists.py +++ b/test_playlists.py @@ -2,7 +2,7 @@ from PyQt5.QtCore import Qt from app.playlists import Notes, PlaylistTab, Tracks from app.models import Playlists -from musicmuster import Window +import musicmuster def test_init(qtbot, session): @@ -220,3 +220,9 @@ def test_set_next(qtbot, session): modifier=Qt.ControlModifier) qtbot.wait(2000) pass + + +def test_kae(monkeypatch, session): + monkeypatch.setattr(musicmuster, "Session", session) + + musicmuster.Window.kae()