diff --git a/tests/test_account.py b/tests/test_account.py index 5d1dffa..dfd75bb 100644 --- a/tests/test_account.py +++ b/tests/test_account.py @@ -78,10 +78,8 @@ class AccountTestCase(unittest.TestCase): runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import Account, AccountL10n - result: Result - result = runner.invoke(args="init-db") - self.assertEqual(result.exit_code, 0) - result = runner.invoke(args=["accounting-init-db", "-u", "editor"]) + result: Result = runner.invoke( + args=["accounting-init-db", "-u", "editor"]) self.assertEqual(result.exit_code, 0) AccountL10n.query.delete() Account.query.delete() diff --git a/tests/test_base_account.py b/tests/test_base_account.py index 793c7de..c94c4ee 100644 --- a/tests/test_base_account.py +++ b/tests/test_base_account.py @@ -45,9 +45,8 @@ class BaseAccountTestCase(unittest.TestCase): runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): - result: Result = runner.invoke(args="init-db") - self.assertEqual(result.exit_code, 0) - result = runner.invoke(args=["accounting-init-db", "-u", "editor"]) + result: Result = runner.invoke( + args=["accounting-init-db", "-u", "editor"]) self.assertEqual(result.exit_code, 0) def test_nobody(self) -> None: diff --git a/tests/test_commands.py b/tests/test_commands.py index d4e1001..74ee287 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -42,11 +42,7 @@ class ConsoleCommandTestCase(unittest.TestCase): """ self.app: Flask = create_test_app() - runner: FlaskCliRunner = self.app.test_cli_runner() 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 # them correctly. tables: list[sa.Table] \ diff --git a/tests/test_currency.py b/tests/test_currency.py index 29177a8..b5ba0db 100644 --- a/tests/test_currency.py +++ b/tests/test_currency.py @@ -71,10 +71,8 @@ class CurrencyTestCase(unittest.TestCase): runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import Currency, CurrencyL10n - result: Result - result = runner.invoke(args="init-db") - self.assertEqual(result.exit_code, 0) - result = runner.invoke(args=["accounting-init-db", "-u", "editor"]) + result: Result = runner.invoke( + args=["accounting-init-db", "-u", "editor"]) self.assertEqual(result.exit_code, 0) CurrencyL10n.query.delete() Currency.query.delete() diff --git a/tests/test_description_editor.py b/tests/test_description_editor.py index 2e0af5d..984b166 100644 --- a/tests/test_description_editor.py +++ b/tests/test_description_editor.py @@ -42,10 +42,8 @@ class DescriptionEditorTestCase(unittest.TestCase): runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import JournalEntry, JournalEntryLineItem - result: Result - result = runner.invoke(args="init-db") - self.assertEqual(result.exit_code, 0) - result = runner.invoke(args=["accounting-init-db", "-u", "editor"]) + result: Result = runner.invoke( + args=["accounting-init-db", "-u", "editor"]) self.assertEqual(result.exit_code, 0) JournalEntry.query.delete() JournalEntryLineItem.query.delete() diff --git a/tests/test_journal_entry.py b/tests/test_journal_entry.py index 7c17a0d..08b3c24 100644 --- a/tests/test_journal_entry.py +++ b/tests/test_journal_entry.py @@ -55,10 +55,8 @@ class CashReceiptJournalEntryTestCase(unittest.TestCase): with self.app.app_context(): from accounting.models import BaseAccount, JournalEntry, \ JournalEntryLineItem - result: Result - result = runner.invoke(args="init-db") - self.assertEqual(result.exit_code, 0) - result = runner.invoke(args=["accounting-init-db", "-u", "editor"]) + result: Result = runner.invoke( + args=["accounting-init-db", "-u", "editor"]) self.assertEqual(result.exit_code, 0) JournalEntry.query.delete() JournalEntryLineItem.query.delete() @@ -666,9 +664,8 @@ class CashDisbursementJournalEntryTestCase(unittest.TestCase): runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import JournalEntry, JournalEntryLineItem - result: Result - result = runner.invoke(args="init-db") - self.assertEqual(result.exit_code, 0) + result: Result = runner.invoke( + args=["accounting-init-db", "-u", "editor"]) result = runner.invoke(args=["accounting-init-db", "-u", "editor"]) self.assertEqual(result.exit_code, 0) JournalEntry.query.delete() @@ -1254,9 +1251,8 @@ class TransferJournalEntryTestCase(unittest.TestCase): with self.app.app_context(): from accounting.models import BaseAccount, JournalEntry, \ JournalEntryLineItem - result: Result - result = runner.invoke(args="init-db") - self.assertEqual(result.exit_code, 0) + result: Result = runner.invoke( + args=["accounting-init-db", "-u", "editor"]) result = runner.invoke(args=["accounting-init-db", "-u", "editor"]) self.assertEqual(result.exit_code, 0) JournalEntry.query.delete() @@ -2120,10 +2116,8 @@ class JournalEntryReorderTestCase(unittest.TestCase): runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import JournalEntry, JournalEntryLineItem - result: Result - result = runner.invoke(args="init-db") - self.assertEqual(result.exit_code, 0) - result = runner.invoke(args=["accounting-init-db", "-u", "editor"]) + result: Result = runner.invoke( + args=["accounting-init-db", "-u", "editor"]) self.assertEqual(result.exit_code, 0) JournalEntry.query.delete() JournalEntryLineItem.query.delete() diff --git a/tests/test_offset.py b/tests/test_offset.py index 62371e6..bdeb318 100644 --- a/tests/test_offset.py +++ b/tests/test_offset.py @@ -50,10 +50,8 @@ class OffsetTestCase(unittest.TestCase): runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import JournalEntry, JournalEntryLineItem - result: Result - result = runner.invoke(args="init-db") - self.assertEqual(result.exit_code, 0) - result = runner.invoke(args=["accounting-init-db", "-u", "editor"]) + result: Result = runner.invoke( + args=["accounting-init-db", "-u", "editor"]) self.assertEqual(result.exit_code, 0) JournalEntry.query.delete() JournalEntryLineItem.query.delete() diff --git a/tests/test_option.py b/tests/test_option.py index 275b957..178363e 100644 --- a/tests/test_option.py +++ b/tests/test_option.py @@ -52,10 +52,8 @@ class OptionTestCase(unittest.TestCase): runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import Option - result: Result - result = runner.invoke(args="init-db") - self.assertEqual(result.exit_code, 0) - result = runner.invoke(args=["accounting-init-db", "-u", "editor"]) + result: Result = runner.invoke( + args=["accounting-init-db", "-u", "editor"]) self.assertEqual(result.exit_code, 0) Option.query.delete() diff --git a/tests/test_report.py b/tests/test_report.py index 9df6aec..5e0e871 100644 --- a/tests/test_report.py +++ b/tests/test_report.py @@ -47,10 +47,8 @@ class ReportTestCase(unittest.TestCase): runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import JournalEntry, JournalEntryLineItem - result: Result - result = runner.invoke(args="init-db") - self.assertEqual(result.exit_code, 0) - result = runner.invoke(args=["accounting-init-db", "-u", "editor"]) + result: Result = runner.invoke( + args=["accounting-init-db", "-u", "editor"]) self.assertEqual(result.exit_code, 0) JournalEntry.query.delete() JournalEntryLineItem.query.delete() diff --git a/tests/test_site/__init__.py b/tests/test_site/__init__.py index 87bd266..12f5385 100644 --- a/tests/test_site/__init__.py +++ b/tests/test_site/__init__.py @@ -21,9 +21,7 @@ import os import typing as t from secrets import token_urlsafe -import click from flask import Flask, Blueprint, render_template, redirect, Response -from flask.cli import with_appcontext from flask_babel_js import BabelJS from flask_sqlalchemy import SQLAlchemy from flask_wtf import CSRFProtect @@ -63,7 +61,6 @@ def create_app(is_testing: bool = False) -> Flask: db.init_app(app) app.register_blueprint(bp, url_prefix="/") - app.cli.add_command(init_db_command) from . import locale locale.init_app(app) @@ -110,20 +107,23 @@ def create_app(is_testing: bool = False) -> Flask: accounting.init_app(app, user_utils=UserUtilities()) + with app.app_context(): + init_db() + return app -@click.command("init-db") -@with_appcontext -def init_db_command() -> None: - """Initializes the database.""" +def init_db() -> None: + """Initializes the database. + + :return: None. + """ db.create_all() from .auth import User for username in ["viewer", "editor", "admin", "nobody"]: if User.query.filter(User.username == username).first() is None: db.session.add(User(username=username)) db.session.commit() - click.echo("Database initialized successfully.") @bp.get("/", endpoint="home") diff --git a/tests/test_unmatched_offset.py b/tests/test_unmatched_offset.py index a860d3f..66bf728 100644 --- a/tests/test_unmatched_offset.py +++ b/tests/test_unmatched_offset.py @@ -46,9 +46,8 @@ class UnmatchedOffsetTestCase(unittest.TestCase): runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import JournalEntry, JournalEntryLineItem - result: Result - result = runner.invoke(args="init-db") - self.assertEqual(result.exit_code, 0) + result: Result = runner.invoke( + args=["accounting-init-db", "-u", "editor"]) result = runner.invoke(args=["accounting-init-db", "-u", "editor"]) self.assertEqual(result.exit_code, 0) JournalEntry.query.delete()