Merged the "init-db" console command to the Flask application initialization in the test site, to simplify the code.
This commit is contained in:
parent
c21ed59dfe
commit
700e4f822a
@ -78,10 +78,8 @@ class AccountTestCase(unittest.TestCase):
|
|||||||
runner: FlaskCliRunner = self.app.test_cli_runner()
|
runner: FlaskCliRunner = self.app.test_cli_runner()
|
||||||
with self.app.app_context():
|
with self.app.app_context():
|
||||||
from accounting.models import Account, AccountL10n
|
from accounting.models import Account, AccountL10n
|
||||||
result: Result
|
result: Result = runner.invoke(
|
||||||
result = runner.invoke(args="init-db")
|
args=["accounting-init-db", "-u", "editor"])
|
||||||
self.assertEqual(result.exit_code, 0)
|
|
||||||
result = runner.invoke(args=["accounting-init-db", "-u", "editor"])
|
|
||||||
self.assertEqual(result.exit_code, 0)
|
self.assertEqual(result.exit_code, 0)
|
||||||
AccountL10n.query.delete()
|
AccountL10n.query.delete()
|
||||||
Account.query.delete()
|
Account.query.delete()
|
||||||
|
@ -45,9 +45,8 @@ class BaseAccountTestCase(unittest.TestCase):
|
|||||||
|
|
||||||
runner: FlaskCliRunner = self.app.test_cli_runner()
|
runner: FlaskCliRunner = self.app.test_cli_runner()
|
||||||
with self.app.app_context():
|
with self.app.app_context():
|
||||||
result: Result = runner.invoke(args="init-db")
|
result: Result = runner.invoke(
|
||||||
self.assertEqual(result.exit_code, 0)
|
args=["accounting-init-db", "-u", "editor"])
|
||||||
result = runner.invoke(args=["accounting-init-db", "-u", "editor"])
|
|
||||||
self.assertEqual(result.exit_code, 0)
|
self.assertEqual(result.exit_code, 0)
|
||||||
|
|
||||||
def test_nobody(self) -> None:
|
def test_nobody(self) -> None:
|
||||||
|
@ -42,11 +42,7 @@ class ConsoleCommandTestCase(unittest.TestCase):
|
|||||||
"""
|
"""
|
||||||
self.app: Flask = create_test_app()
|
self.app: Flask = create_test_app()
|
||||||
|
|
||||||
runner: FlaskCliRunner = self.app.test_cli_runner()
|
|
||||||
with self.app.app_context():
|
with self.app.app_context():
|
||||||
result: Result = runner.invoke(args="init-db")
|
|
||||||
self.assertEqual(result.exit_code, 0,
|
|
||||||
result.output + str(result.exception))
|
|
||||||
# Drop every accounting table, to see if accounting-init recreates
|
# Drop every accounting table, to see if accounting-init recreates
|
||||||
# them correctly.
|
# them correctly.
|
||||||
tables: list[sa.Table] \
|
tables: list[sa.Table] \
|
||||||
|
@ -71,10 +71,8 @@ class CurrencyTestCase(unittest.TestCase):
|
|||||||
runner: FlaskCliRunner = self.app.test_cli_runner()
|
runner: FlaskCliRunner = self.app.test_cli_runner()
|
||||||
with self.app.app_context():
|
with self.app.app_context():
|
||||||
from accounting.models import Currency, CurrencyL10n
|
from accounting.models import Currency, CurrencyL10n
|
||||||
result: Result
|
result: Result = runner.invoke(
|
||||||
result = runner.invoke(args="init-db")
|
args=["accounting-init-db", "-u", "editor"])
|
||||||
self.assertEqual(result.exit_code, 0)
|
|
||||||
result = runner.invoke(args=["accounting-init-db", "-u", "editor"])
|
|
||||||
self.assertEqual(result.exit_code, 0)
|
self.assertEqual(result.exit_code, 0)
|
||||||
CurrencyL10n.query.delete()
|
CurrencyL10n.query.delete()
|
||||||
Currency.query.delete()
|
Currency.query.delete()
|
||||||
|
@ -42,10 +42,8 @@ class DescriptionEditorTestCase(unittest.TestCase):
|
|||||||
runner: FlaskCliRunner = self.app.test_cli_runner()
|
runner: FlaskCliRunner = self.app.test_cli_runner()
|
||||||
with self.app.app_context():
|
with self.app.app_context():
|
||||||
from accounting.models import JournalEntry, JournalEntryLineItem
|
from accounting.models import JournalEntry, JournalEntryLineItem
|
||||||
result: Result
|
result: Result = runner.invoke(
|
||||||
result = runner.invoke(args="init-db")
|
args=["accounting-init-db", "-u", "editor"])
|
||||||
self.assertEqual(result.exit_code, 0)
|
|
||||||
result = runner.invoke(args=["accounting-init-db", "-u", "editor"])
|
|
||||||
self.assertEqual(result.exit_code, 0)
|
self.assertEqual(result.exit_code, 0)
|
||||||
JournalEntry.query.delete()
|
JournalEntry.query.delete()
|
||||||
JournalEntryLineItem.query.delete()
|
JournalEntryLineItem.query.delete()
|
||||||
|
@ -55,10 +55,8 @@ class CashReceiptJournalEntryTestCase(unittest.TestCase):
|
|||||||
with self.app.app_context():
|
with self.app.app_context():
|
||||||
from accounting.models import BaseAccount, JournalEntry, \
|
from accounting.models import BaseAccount, JournalEntry, \
|
||||||
JournalEntryLineItem
|
JournalEntryLineItem
|
||||||
result: Result
|
result: Result = runner.invoke(
|
||||||
result = runner.invoke(args="init-db")
|
args=["accounting-init-db", "-u", "editor"])
|
||||||
self.assertEqual(result.exit_code, 0)
|
|
||||||
result = runner.invoke(args=["accounting-init-db", "-u", "editor"])
|
|
||||||
self.assertEqual(result.exit_code, 0)
|
self.assertEqual(result.exit_code, 0)
|
||||||
JournalEntry.query.delete()
|
JournalEntry.query.delete()
|
||||||
JournalEntryLineItem.query.delete()
|
JournalEntryLineItem.query.delete()
|
||||||
@ -666,9 +664,8 @@ class CashDisbursementJournalEntryTestCase(unittest.TestCase):
|
|||||||
runner: FlaskCliRunner = self.app.test_cli_runner()
|
runner: FlaskCliRunner = self.app.test_cli_runner()
|
||||||
with self.app.app_context():
|
with self.app.app_context():
|
||||||
from accounting.models import JournalEntry, JournalEntryLineItem
|
from accounting.models import JournalEntry, JournalEntryLineItem
|
||||||
result: Result
|
result: Result = runner.invoke(
|
||||||
result = runner.invoke(args="init-db")
|
args=["accounting-init-db", "-u", "editor"])
|
||||||
self.assertEqual(result.exit_code, 0)
|
|
||||||
result = runner.invoke(args=["accounting-init-db", "-u", "editor"])
|
result = runner.invoke(args=["accounting-init-db", "-u", "editor"])
|
||||||
self.assertEqual(result.exit_code, 0)
|
self.assertEqual(result.exit_code, 0)
|
||||||
JournalEntry.query.delete()
|
JournalEntry.query.delete()
|
||||||
@ -1254,9 +1251,8 @@ class TransferJournalEntryTestCase(unittest.TestCase):
|
|||||||
with self.app.app_context():
|
with self.app.app_context():
|
||||||
from accounting.models import BaseAccount, JournalEntry, \
|
from accounting.models import BaseAccount, JournalEntry, \
|
||||||
JournalEntryLineItem
|
JournalEntryLineItem
|
||||||
result: Result
|
result: Result = runner.invoke(
|
||||||
result = runner.invoke(args="init-db")
|
args=["accounting-init-db", "-u", "editor"])
|
||||||
self.assertEqual(result.exit_code, 0)
|
|
||||||
result = runner.invoke(args=["accounting-init-db", "-u", "editor"])
|
result = runner.invoke(args=["accounting-init-db", "-u", "editor"])
|
||||||
self.assertEqual(result.exit_code, 0)
|
self.assertEqual(result.exit_code, 0)
|
||||||
JournalEntry.query.delete()
|
JournalEntry.query.delete()
|
||||||
@ -2120,10 +2116,8 @@ class JournalEntryReorderTestCase(unittest.TestCase):
|
|||||||
runner: FlaskCliRunner = self.app.test_cli_runner()
|
runner: FlaskCliRunner = self.app.test_cli_runner()
|
||||||
with self.app.app_context():
|
with self.app.app_context():
|
||||||
from accounting.models import JournalEntry, JournalEntryLineItem
|
from accounting.models import JournalEntry, JournalEntryLineItem
|
||||||
result: Result
|
result: Result = runner.invoke(
|
||||||
result = runner.invoke(args="init-db")
|
args=["accounting-init-db", "-u", "editor"])
|
||||||
self.assertEqual(result.exit_code, 0)
|
|
||||||
result = runner.invoke(args=["accounting-init-db", "-u", "editor"])
|
|
||||||
self.assertEqual(result.exit_code, 0)
|
self.assertEqual(result.exit_code, 0)
|
||||||
JournalEntry.query.delete()
|
JournalEntry.query.delete()
|
||||||
JournalEntryLineItem.query.delete()
|
JournalEntryLineItem.query.delete()
|
||||||
|
@ -50,10 +50,8 @@ class OffsetTestCase(unittest.TestCase):
|
|||||||
runner: FlaskCliRunner = self.app.test_cli_runner()
|
runner: FlaskCliRunner = self.app.test_cli_runner()
|
||||||
with self.app.app_context():
|
with self.app.app_context():
|
||||||
from accounting.models import JournalEntry, JournalEntryLineItem
|
from accounting.models import JournalEntry, JournalEntryLineItem
|
||||||
result: Result
|
result: Result = runner.invoke(
|
||||||
result = runner.invoke(args="init-db")
|
args=["accounting-init-db", "-u", "editor"])
|
||||||
self.assertEqual(result.exit_code, 0)
|
|
||||||
result = runner.invoke(args=["accounting-init-db", "-u", "editor"])
|
|
||||||
self.assertEqual(result.exit_code, 0)
|
self.assertEqual(result.exit_code, 0)
|
||||||
JournalEntry.query.delete()
|
JournalEntry.query.delete()
|
||||||
JournalEntryLineItem.query.delete()
|
JournalEntryLineItem.query.delete()
|
||||||
|
@ -52,10 +52,8 @@ class OptionTestCase(unittest.TestCase):
|
|||||||
runner: FlaskCliRunner = self.app.test_cli_runner()
|
runner: FlaskCliRunner = self.app.test_cli_runner()
|
||||||
with self.app.app_context():
|
with self.app.app_context():
|
||||||
from accounting.models import Option
|
from accounting.models import Option
|
||||||
result: Result
|
result: Result = runner.invoke(
|
||||||
result = runner.invoke(args="init-db")
|
args=["accounting-init-db", "-u", "editor"])
|
||||||
self.assertEqual(result.exit_code, 0)
|
|
||||||
result = runner.invoke(args=["accounting-init-db", "-u", "editor"])
|
|
||||||
self.assertEqual(result.exit_code, 0)
|
self.assertEqual(result.exit_code, 0)
|
||||||
Option.query.delete()
|
Option.query.delete()
|
||||||
|
|
||||||
|
@ -47,10 +47,8 @@ class ReportTestCase(unittest.TestCase):
|
|||||||
runner: FlaskCliRunner = self.app.test_cli_runner()
|
runner: FlaskCliRunner = self.app.test_cli_runner()
|
||||||
with self.app.app_context():
|
with self.app.app_context():
|
||||||
from accounting.models import JournalEntry, JournalEntryLineItem
|
from accounting.models import JournalEntry, JournalEntryLineItem
|
||||||
result: Result
|
result: Result = runner.invoke(
|
||||||
result = runner.invoke(args="init-db")
|
args=["accounting-init-db", "-u", "editor"])
|
||||||
self.assertEqual(result.exit_code, 0)
|
|
||||||
result = runner.invoke(args=["accounting-init-db", "-u", "editor"])
|
|
||||||
self.assertEqual(result.exit_code, 0)
|
self.assertEqual(result.exit_code, 0)
|
||||||
JournalEntry.query.delete()
|
JournalEntry.query.delete()
|
||||||
JournalEntryLineItem.query.delete()
|
JournalEntryLineItem.query.delete()
|
||||||
|
@ -21,9 +21,7 @@ import os
|
|||||||
import typing as t
|
import typing as t
|
||||||
from secrets import token_urlsafe
|
from secrets import token_urlsafe
|
||||||
|
|
||||||
import click
|
|
||||||
from flask import Flask, Blueprint, render_template, redirect, Response
|
from flask import Flask, Blueprint, render_template, redirect, Response
|
||||||
from flask.cli import with_appcontext
|
|
||||||
from flask_babel_js import BabelJS
|
from flask_babel_js import BabelJS
|
||||||
from flask_sqlalchemy import SQLAlchemy
|
from flask_sqlalchemy import SQLAlchemy
|
||||||
from flask_wtf import CSRFProtect
|
from flask_wtf import CSRFProtect
|
||||||
@ -63,7 +61,6 @@ def create_app(is_testing: bool = False) -> Flask:
|
|||||||
db.init_app(app)
|
db.init_app(app)
|
||||||
|
|
||||||
app.register_blueprint(bp, url_prefix="/")
|
app.register_blueprint(bp, url_prefix="/")
|
||||||
app.cli.add_command(init_db_command)
|
|
||||||
|
|
||||||
from . import locale
|
from . import locale
|
||||||
locale.init_app(app)
|
locale.init_app(app)
|
||||||
@ -110,20 +107,23 @@ def create_app(is_testing: bool = False) -> Flask:
|
|||||||
|
|
||||||
accounting.init_app(app, user_utils=UserUtilities())
|
accounting.init_app(app, user_utils=UserUtilities())
|
||||||
|
|
||||||
|
with app.app_context():
|
||||||
|
init_db()
|
||||||
|
|
||||||
return app
|
return app
|
||||||
|
|
||||||
|
|
||||||
@click.command("init-db")
|
def init_db() -> None:
|
||||||
@with_appcontext
|
"""Initializes the database.
|
||||||
def init_db_command() -> None:
|
|
||||||
"""Initializes the database."""
|
:return: None.
|
||||||
|
"""
|
||||||
db.create_all()
|
db.create_all()
|
||||||
from .auth import User
|
from .auth import User
|
||||||
for username in ["viewer", "editor", "admin", "nobody"]:
|
for username in ["viewer", "editor", "admin", "nobody"]:
|
||||||
if User.query.filter(User.username == username).first() is None:
|
if User.query.filter(User.username == username).first() is None:
|
||||||
db.session.add(User(username=username))
|
db.session.add(User(username=username))
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
click.echo("Database initialized successfully.")
|
|
||||||
|
|
||||||
|
|
||||||
@bp.get("/", endpoint="home")
|
@bp.get("/", endpoint="home")
|
||||||
|
@ -46,9 +46,8 @@ class UnmatchedOffsetTestCase(unittest.TestCase):
|
|||||||
runner: FlaskCliRunner = self.app.test_cli_runner()
|
runner: FlaskCliRunner = self.app.test_cli_runner()
|
||||||
with self.app.app_context():
|
with self.app.app_context():
|
||||||
from accounting.models import JournalEntry, JournalEntryLineItem
|
from accounting.models import JournalEntry, JournalEntryLineItem
|
||||||
result: Result
|
result: Result = runner.invoke(
|
||||||
result = runner.invoke(args="init-db")
|
args=["accounting-init-db", "-u", "editor"])
|
||||||
self.assertEqual(result.exit_code, 0)
|
|
||||||
result = runner.invoke(args=["accounting-init-db", "-u", "editor"])
|
result = runner.invoke(args=["accounting-init-db", "-u", "editor"])
|
||||||
self.assertEqual(result.exit_code, 0)
|
self.assertEqual(result.exit_code, 0)
|
||||||
JournalEntry.query.delete()
|
JournalEntry.query.delete()
|
||||||
|
Loading…
Reference in New Issue
Block a user