diff --git a/tests/test_account.py b/tests/test_account.py index dfd75bb..3da0f99 100644 --- a/tests/test_account.py +++ b/tests/test_account.py @@ -21,9 +21,7 @@ import unittest from datetime import timedelta, date import httpx -from click.testing import Result from flask import Flask -from flask.testing import FlaskCliRunner from test_site import db from testlib import NEXT_URI, create_test_app, get_client, set_locale, \ @@ -75,12 +73,8 @@ class AccountTestCase(unittest.TestCase): """ self.app: Flask = create_test_app() - runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import Account, AccountL10n - result: Result = runner.invoke( - args=["accounting-init-db", "-u", "editor"]) - self.assertEqual(result.exit_code, 0) AccountL10n.query.delete() Account.query.delete() db.session.commit() diff --git a/tests/test_base_account.py b/tests/test_base_account.py index c94c4ee..71c5e47 100644 --- a/tests/test_base_account.py +++ b/tests/test_base_account.py @@ -20,9 +20,7 @@ import unittest import httpx -from click.testing import Result from flask import Flask -from flask.testing import FlaskCliRunner from testlib import create_test_app, get_client @@ -43,12 +41,6 @@ class BaseAccountTestCase(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=["accounting-init-db", "-u", "editor"]) - self.assertEqual(result.exit_code, 0) - def test_nobody(self) -> None: """Test the permission as nobody. diff --git a/tests/test_currency.py b/tests/test_currency.py index b5ba0db..7e55be3 100644 --- a/tests/test_currency.py +++ b/tests/test_currency.py @@ -21,9 +21,7 @@ import unittest from datetime import timedelta, date import httpx -from click.testing import Result from flask import Flask -from flask.testing import FlaskCliRunner from test_site import db from testlib import NEXT_URI, create_test_app, get_client, set_locale, \ @@ -68,12 +66,8 @@ class CurrencyTestCase(unittest.TestCase): """ self.app: Flask = create_test_app() - runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import Currency, CurrencyL10n - result: Result = runner.invoke( - args=["accounting-init-db", "-u", "editor"]) - self.assertEqual(result.exit_code, 0) CurrencyL10n.query.delete() Currency.query.delete() db.session.commit() diff --git a/tests/test_description_editor.py b/tests/test_description_editor.py index 984b166..535e2d5 100644 --- a/tests/test_description_editor.py +++ b/tests/test_description_editor.py @@ -20,9 +20,7 @@ import unittest from datetime import date -from click.testing import Result from flask import Flask -from flask.testing import FlaskCliRunner from testlib import NEXT_URI, Accounts, create_test_app, get_client, \ add_journal_entry @@ -39,12 +37,8 @@ class DescriptionEditorTestCase(unittest.TestCase): """ self.app: Flask = create_test_app() - runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import JournalEntry, JournalEntryLineItem - 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 08b3c24..2d95d81 100644 --- a/tests/test_journal_entry.py +++ b/tests/test_journal_entry.py @@ -22,9 +22,7 @@ from datetime import date, timedelta from decimal import Decimal import httpx -from click.testing import Result from flask import Flask -from flask.testing import FlaskCliRunner from test_site import db from testlib import NEXT_URI, Accounts, create_test_app, get_client, \ @@ -51,13 +49,8 @@ class CashReceiptJournalEntryTestCase(unittest.TestCase): """ self.app: Flask = create_test_app() - runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): - from accounting.models import BaseAccount, JournalEntry, \ - JournalEntryLineItem - result: Result = runner.invoke( - args=["accounting-init-db", "-u", "editor"]) - self.assertEqual(result.exit_code, 0) + from accounting.models import JournalEntry, JournalEntryLineItem JournalEntry.query.delete() JournalEntryLineItem.query.delete() @@ -661,13 +654,8 @@ class CashDisbursementJournalEntryTestCase(unittest.TestCase): """ self.app: Flask = create_test_app() - runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import JournalEntry, JournalEntryLineItem - 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() JournalEntryLineItem.query.delete() @@ -1247,14 +1235,9 @@ class TransferJournalEntryTestCase(unittest.TestCase): """ self.app: Flask = create_test_app() - runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): - from accounting.models import BaseAccount, JournalEntry, \ + from accounting.models import JournalEntry, \ JournalEntryLineItem - 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() JournalEntryLineItem.query.delete() @@ -2113,12 +2096,8 @@ class JournalEntryReorderTestCase(unittest.TestCase): """ self.app: Flask = create_test_app() - runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import JournalEntry, JournalEntryLineItem - 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 bdeb318..bb53d0d 100644 --- a/tests/test_offset.py +++ b/tests/test_offset.py @@ -23,9 +23,7 @@ import unittest from decimal import Decimal import httpx -from click.testing import Result from flask import Flask -from flask.testing import FlaskCliRunner from test_site import db from testlib import Accounts, create_test_app, get_client, \ @@ -47,12 +45,8 @@ class OffsetTestCase(unittest.TestCase): """ self.app: Flask = create_test_app() - runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import JournalEntry, JournalEntryLineItem - 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 178363e..151859b 100644 --- a/tests/test_option.py +++ b/tests/test_option.py @@ -21,9 +21,7 @@ import unittest from datetime import datetime, timedelta import httpx -from click.testing import Result from flask import Flask -from flask.testing import FlaskCliRunner from test_site import db from testlib import NEXT_URI, Accounts, create_test_app, get_client @@ -49,12 +47,8 @@ class OptionTestCase(unittest.TestCase): """ self.app: Flask = create_test_app() - runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import Option - result: Result = runner.invoke( - args=["accounting-init-db", "-u", "editor"]) - self.assertEqual(result.exit_code, 0) Option.query.delete() self.client, self.csrf_token = get_client(self.app, "admin") diff --git a/tests/test_report.py b/tests/test_report.py index 5e0e871..f82c6c4 100644 --- a/tests/test_report.py +++ b/tests/test_report.py @@ -21,9 +21,7 @@ import unittest from datetime import date import httpx -from click.testing import Result from flask import Flask -from flask.testing import FlaskCliRunner from testlib import create_test_app, get_client, Accounts, BaseTestData @@ -44,12 +42,8 @@ class ReportTestCase(unittest.TestCase): """ self.app: Flask = create_test_app() - runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import JournalEntry, JournalEntryLineItem - 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 12f5385..97408d7 100644 --- a/tests/test_site/__init__.py +++ b/tests/test_site/__init__.py @@ -21,7 +21,9 @@ import os import typing as t from secrets import token_urlsafe +from click.testing import Result from flask import Flask, Blueprint, render_template, redirect, Response +from flask.testing import FlaskCliRunner from flask_babel_js import BabelJS from flask_sqlalchemy import SQLAlchemy from flask_wtf import CSRFProtect @@ -108,14 +110,15 @@ def create_app(is_testing: bool = False) -> Flask: accounting.init_app(app, user_utils=UserUtilities()) with app.app_context(): - init_db() + init_db(app) return app -def init_db() -> None: +def init_db(app: Flask) -> None: """Initializes the database. + :param app: The Flask application. :return: None. """ db.create_all() @@ -124,6 +127,9 @@ def init_db() -> None: if User.query.filter(User.username == username).first() is None: db.session.add(User(username=username)) db.session.commit() + runner: FlaskCliRunner = app.test_cli_runner() + result: Result = runner.invoke(args=["accounting-init-db", "-u", "editor"]) + assert result.exit_code == 0, result.output + str(result.exception) @bp.get("/", endpoint="home") diff --git a/tests/test_unmatched_offset.py b/tests/test_unmatched_offset.py index 66bf728..6a767c5 100644 --- a/tests/test_unmatched_offset.py +++ b/tests/test_unmatched_offset.py @@ -20,9 +20,7 @@ import unittest import httpx -from click.testing import Result from flask import Flask -from flask.testing import FlaskCliRunner from test_site import db from testlib import create_test_app, get_client, Accounts, \ @@ -43,13 +41,8 @@ class UnmatchedOffsetTestCase(unittest.TestCase): """ self.app: Flask = create_test_app() - runner: FlaskCliRunner = self.app.test_cli_runner() with self.app.app_context(): from accounting.models import JournalEntry, JournalEntryLineItem - 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() JournalEntryLineItem.query.delete()