Migrate from SQLAlchemy 1.x legacy Query API to 2.x style select/delete statements
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
import os
|
||||
from secrets import token_urlsafe
|
||||
|
||||
import sqlalchemy as sa
|
||||
from click.testing import Result
|
||||
from flask import Flask, Blueprint, render_template, redirect, Response, \
|
||||
url_for
|
||||
@@ -112,8 +113,8 @@ def create_app(is_testing: bool = False, is_skip_accounts: bool = False,
|
||||
return auth.current_user()
|
||||
|
||||
def get_by_username(self, username: str) -> auth.User | None:
|
||||
return auth.User.query\
|
||||
.filter(auth.User.username == username).first()
|
||||
return db.session.scalar(
|
||||
sa.select(auth.User).where(auth.User.username == username))
|
||||
|
||||
def get_pk(self, user: auth.User) -> int:
|
||||
return user.id
|
||||
@@ -140,7 +141,9 @@ def init_db(app: Flask, is_skip_accounts: bool,
|
||||
db.create_all()
|
||||
from .auth import User
|
||||
for username in ["viewer", "editor", "admin", "nobody"]:
|
||||
if User.query.filter(User.username == username).first() is None:
|
||||
user: User | None = db.session.scalar(
|
||||
sa.select(User).where(User.username == username))
|
||||
if user is None:
|
||||
db.session.add(User(username=username))
|
||||
db.session.commit()
|
||||
runner: FlaskCliRunner = app.test_cli_runner()
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
"""
|
||||
from collections.abc import Callable
|
||||
|
||||
import sqlalchemy as sa
|
||||
from flask import Blueprint, render_template, Flask, redirect, url_for, \
|
||||
session, request, g, Response, abort
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
@@ -91,8 +92,8 @@ def current_user() -> User | None:
|
||||
if "user" not in session:
|
||||
g.user = None
|
||||
else:
|
||||
g.user = User.query.filter(
|
||||
User.username == session["user"]).first()
|
||||
g.user = db.session.scalar(
|
||||
sa.select(User).where(User.username == session["user"]))
|
||||
return g.user
|
||||
|
||||
|
||||
|
||||
@@ -218,8 +218,8 @@ class BaseTestData(ABC):
|
||||
self._app: Flask = app
|
||||
"""The Flask application."""
|
||||
with self._app.app_context():
|
||||
current_user: User | None = User.query\
|
||||
.filter(User.username == username).first()
|
||||
current_user: User | None = db.session.scalar(
|
||||
sa.select(User).where(User.username == username))
|
||||
assert current_user is not None
|
||||
self.__current_user_id: int = current_user.id
|
||||
"""The current user ID."""
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
"""
|
||||
import datetime as dt
|
||||
|
||||
import sqlalchemy as sa
|
||||
from flask import Flask, Blueprint, url_for, flash, redirect, session, \
|
||||
render_template, current_app, Response
|
||||
from flask_babel import lazy_gettext
|
||||
@@ -83,14 +84,14 @@ def __reset_database() -> None:
|
||||
from accounting.account import init_accounts_command
|
||||
from accounting.currency import init_currencies_command
|
||||
|
||||
JournalEntryLineItem.query.delete()
|
||||
JournalEntry.query.delete()
|
||||
CurrencyL10n.query.delete()
|
||||
Currency.query.delete()
|
||||
AccountL10n.query.delete()
|
||||
Account.query.delete()
|
||||
BaseAccountL10n.query.delete()
|
||||
BaseAccount.query.delete()
|
||||
db.session.execute(sa.delete(JournalEntryLineItem))
|
||||
db.session.execute(sa.delete(JournalEntry))
|
||||
db.session.execute(sa.delete(CurrencyL10n))
|
||||
db.session.execute(sa.delete(Currency))
|
||||
db.session.execute(sa.delete(AccountL10n))
|
||||
db.session.execute(sa.delete(Account))
|
||||
db.session.execute(sa.delete(BaseAccountL10n))
|
||||
db.session.execute(sa.delete(BaseAccount))
|
||||
init_base_accounts_command()
|
||||
init_accounts_command(session["user"])
|
||||
init_currencies_command(session["user"])
|
||||
|
||||
Reference in New Issue
Block a user