Removed the CSRF token from the get_client function in testlib.py, so that type hints and documentation can be added to the client and the CSRF token properties separately.
This commit is contained in:
parent
501c4b1d22
commit
356d2010cc
@ -25,8 +25,8 @@ from flask import Flask
|
|||||||
|
|
||||||
from accounting.utils.next_uri import encode_next
|
from accounting.utils.next_uri import encode_next
|
||||||
from test_site import db
|
from test_site import db
|
||||||
from testlib import NEXT_URI, create_test_app, get_client, set_locale, \
|
from testlib import NEXT_URI, create_test_app, get_client, get_csrf_token, \
|
||||||
add_journal_entry
|
set_locale, add_journal_entry
|
||||||
|
|
||||||
|
|
||||||
class AccountData:
|
class AccountData:
|
||||||
@ -83,7 +83,10 @@ class AccountTestCase(unittest.TestCase):
|
|||||||
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
||||||
"""The encoded next URI."""
|
"""The encoded next URI."""
|
||||||
|
|
||||||
self.client, self.csrf_token = get_client(self.app, "editor")
|
self.client: httpx.Client = get_client(self.app, "editor")
|
||||||
|
"""The user client."""
|
||||||
|
self.csrf_token: str = get_csrf_token(self.client)
|
||||||
|
"""The CSRF token."""
|
||||||
response: httpx.Response
|
response: httpx.Response
|
||||||
|
|
||||||
response = self.client.post(f"{PREFIX}/store",
|
response = self.client.post(f"{PREFIX}/store",
|
||||||
@ -108,7 +111,8 @@ class AccountTestCase(unittest.TestCase):
|
|||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
from accounting.models import Account
|
from accounting.models import Account
|
||||||
client, csrf_token = get_client(self.app, "nobody")
|
client: httpx.Client = get_client(self.app, "nobody")
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
response: httpx.Response
|
response: httpx.Response
|
||||||
|
|
||||||
response = client.get(PREFIX)
|
response = client.get(PREFIX)
|
||||||
@ -157,7 +161,8 @@ class AccountTestCase(unittest.TestCase):
|
|||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
from accounting.models import Account
|
from accounting.models import Account
|
||||||
client, csrf_token = get_client(self.app, "viewer")
|
client: httpx.Client = get_client(self.app, "viewer")
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
response: httpx.Response
|
response: httpx.Response
|
||||||
|
|
||||||
response = client.get(PREFIX)
|
response = client.get(PREFIX)
|
||||||
@ -489,7 +494,8 @@ class AccountTestCase(unittest.TestCase):
|
|||||||
"""
|
"""
|
||||||
from accounting.models import Account
|
from accounting.models import Account
|
||||||
editor_username, admin_username = "editor", "admin"
|
editor_username, admin_username = "editor", "admin"
|
||||||
client, csrf_token = get_client(self.app, admin_username)
|
client: httpx.Client = get_client(self.app, admin_username)
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
detail_uri: str = f"{PREFIX}/{CASH.code}"
|
detail_uri: str = f"{PREFIX}/{CASH.code}"
|
||||||
update_uri: str = f"{PREFIX}/{CASH.code}/update"
|
update_uri: str = f"{PREFIX}/{CASH.code}/update"
|
||||||
account: Account
|
account: Account
|
||||||
|
@ -47,7 +47,7 @@ class BaseAccountTestCase(unittest.TestCase):
|
|||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "nobody")
|
client: httpx.Client = get_client(self.app, "nobody")
|
||||||
response: httpx.Response
|
response: httpx.Response
|
||||||
|
|
||||||
response = client.get(LIST_URI)
|
response = client.get(LIST_URI)
|
||||||
@ -61,7 +61,7 @@ class BaseAccountTestCase(unittest.TestCase):
|
|||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "viewer")
|
client: httpx.Client = get_client(self.app, "viewer")
|
||||||
response: httpx.Response
|
response: httpx.Response
|
||||||
|
|
||||||
response = client.get(LIST_URI)
|
response = client.get(LIST_URI)
|
||||||
@ -75,7 +75,7 @@ class BaseAccountTestCase(unittest.TestCase):
|
|||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "editor")
|
client: httpx.Client = get_client(self.app, "editor")
|
||||||
response: httpx.Response
|
response: httpx.Response
|
||||||
|
|
||||||
response = client.get(LIST_URI)
|
response = client.get(LIST_URI)
|
||||||
|
@ -25,8 +25,8 @@ from flask import Flask
|
|||||||
|
|
||||||
from accounting.utils.next_uri import encode_next
|
from accounting.utils.next_uri import encode_next
|
||||||
from test_site import db
|
from test_site import db
|
||||||
from testlib import NEXT_URI, create_test_app, get_client, set_locale, \
|
from testlib import NEXT_URI, create_test_app, get_client, get_csrf_token, \
|
||||||
add_journal_entry
|
set_locale, add_journal_entry
|
||||||
|
|
||||||
|
|
||||||
class CurrencyData:
|
class CurrencyData:
|
||||||
@ -74,7 +74,10 @@ class CurrencyTestCase(unittest.TestCase):
|
|||||||
Currency.query.delete()
|
Currency.query.delete()
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
self.client, self.csrf_token = get_client(self.app, "editor")
|
self.client: httpx.Client = get_client(self.app, "editor")
|
||||||
|
"""The user client."""
|
||||||
|
self.csrf_token: str = get_csrf_token(self.client)
|
||||||
|
"""The CSRF token."""
|
||||||
response: httpx.Response
|
response: httpx.Response
|
||||||
|
|
||||||
response = self.client.post(f"{PREFIX}/store",
|
response = self.client.post(f"{PREFIX}/store",
|
||||||
@ -96,7 +99,8 @@ class CurrencyTestCase(unittest.TestCase):
|
|||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "nobody")
|
client: httpx.Client = get_client(self.app, "nobody")
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
response: httpx.Response
|
response: httpx.Response
|
||||||
|
|
||||||
response = client.get(PREFIX)
|
response = client.get(PREFIX)
|
||||||
@ -132,7 +136,8 @@ class CurrencyTestCase(unittest.TestCase):
|
|||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "viewer")
|
client: httpx.Client = get_client(self.app, "viewer")
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
response: httpx.Response
|
response: httpx.Response
|
||||||
|
|
||||||
response = client.get(PREFIX)
|
response = client.get(PREFIX)
|
||||||
@ -410,7 +415,8 @@ class CurrencyTestCase(unittest.TestCase):
|
|||||||
"""
|
"""
|
||||||
from accounting.models import Currency
|
from accounting.models import Currency
|
||||||
editor_username, admin_username = "editor", "admin"
|
editor_username, admin_username = "editor", "admin"
|
||||||
client, csrf_token = get_client(self.app, admin_username)
|
client: httpx.Client = get_client(self.app, admin_username)
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
detail_uri: str = f"{PREFIX}/{USD.code}"
|
detail_uri: str = f"{PREFIX}/{USD.code}"
|
||||||
update_uri: str = f"{PREFIX}/{USD.code}/update"
|
update_uri: str = f"{PREFIX}/{USD.code}/update"
|
||||||
currency: Currency
|
currency: Currency
|
||||||
|
@ -20,11 +20,12 @@
|
|||||||
import datetime as dt
|
import datetime as dt
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
import httpx
|
||||||
from flask import Flask
|
from flask import Flask
|
||||||
|
|
||||||
from accounting.utils.next_uri import encode_next
|
from accounting.utils.next_uri import encode_next
|
||||||
from testlib import NEXT_URI, Accounts, create_test_app, get_client, \
|
from testlib import NEXT_URI, Accounts, create_test_app, get_client, \
|
||||||
add_journal_entry
|
get_csrf_token, add_journal_entry
|
||||||
|
|
||||||
|
|
||||||
class DescriptionEditorTestCase(unittest.TestCase):
|
class DescriptionEditorTestCase(unittest.TestCase):
|
||||||
@ -46,7 +47,10 @@ class DescriptionEditorTestCase(unittest.TestCase):
|
|||||||
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
||||||
"""The encoded next URI."""
|
"""The encoded next URI."""
|
||||||
|
|
||||||
self.client, self.csrf_token = get_client(self.app, "editor")
|
self.client: httpx.Client = get_client(self.app, "editor")
|
||||||
|
"""The user client."""
|
||||||
|
self.csrf_token: str = get_csrf_token(self.client)
|
||||||
|
"""The CSRF token."""
|
||||||
|
|
||||||
def test_description_editor(self) -> None:
|
def test_description_editor(self) -> None:
|
||||||
"""Test the description editor.
|
"""Test the description editor.
|
||||||
|
@ -27,7 +27,7 @@ from flask import Flask
|
|||||||
from accounting.utils.next_uri import encode_next
|
from accounting.utils.next_uri import encode_next
|
||||||
from test_site import db
|
from test_site import db
|
||||||
from testlib import NEXT_URI, Accounts, create_test_app, get_client, \
|
from testlib import NEXT_URI, Accounts, create_test_app, get_client, \
|
||||||
add_journal_entry, match_journal_entry_detail
|
get_csrf_token, add_journal_entry, match_journal_entry_detail
|
||||||
from testlib_journal_entry import NON_EMPTY_NOTE, EMPTY_NOTE, \
|
from testlib_journal_entry import NON_EMPTY_NOTE, EMPTY_NOTE, \
|
||||||
get_add_form, get_unchanged_update_form, get_update_form, \
|
get_add_form, get_unchanged_update_form, get_update_form, \
|
||||||
set_negative_amount, remove_debit_in_a_currency, \
|
set_negative_amount, remove_debit_in_a_currency, \
|
||||||
@ -58,14 +58,18 @@ class CashReceiptJournalEntryTestCase(unittest.TestCase):
|
|||||||
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
||||||
"""The encoded next URI."""
|
"""The encoded next URI."""
|
||||||
|
|
||||||
self.client, self.csrf_token = get_client(self.app, "editor")
|
self.client: httpx.Client = get_client(self.app, "editor")
|
||||||
|
"""The user client."""
|
||||||
|
self.csrf_token: str = get_csrf_token(self.client)
|
||||||
|
"""The CSRF token."""
|
||||||
|
|
||||||
def test_nobody(self) -> None:
|
def test_nobody(self) -> None:
|
||||||
"""Test the permission as nobody.
|
"""Test the permission as nobody.
|
||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "nobody")
|
client: httpx.Client = get_client(self.app, "nobody")
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
journal_entry_id: int = add_journal_entry(self.client,
|
journal_entry_id: int = add_journal_entry(self.client,
|
||||||
self.__get_add_form())
|
self.__get_add_form())
|
||||||
add_form: dict[str, str] = self.__get_add_form()
|
add_form: dict[str, str] = self.__get_add_form()
|
||||||
@ -99,7 +103,8 @@ class CashReceiptJournalEntryTestCase(unittest.TestCase):
|
|||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "viewer")
|
client: httpx.Client = get_client(self.app, "viewer")
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
journal_entry_id: int = add_journal_entry(self.client,
|
journal_entry_id: int = add_journal_entry(self.client,
|
||||||
self.__get_add_form())
|
self.__get_add_form())
|
||||||
add_form: dict[str, str] = self.__get_add_form()
|
add_form: dict[str, str] = self.__get_add_form()
|
||||||
@ -532,7 +537,8 @@ class CashReceiptJournalEntryTestCase(unittest.TestCase):
|
|||||||
journal_entry_id: int \
|
journal_entry_id: int \
|
||||||
= add_journal_entry(self.client, self.__get_add_form())
|
= add_journal_entry(self.client, self.__get_add_form())
|
||||||
editor_username, admin_username = "editor", "admin"
|
editor_username, admin_username = "editor", "admin"
|
||||||
client, csrf_token = get_client(self.app, admin_username)
|
client: httpx.Client = get_client(self.app, admin_username)
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
detail_uri: str = (f"{PREFIX}/{journal_entry_id}?"
|
detail_uri: str = (f"{PREFIX}/{journal_entry_id}?"
|
||||||
f"next={self.encoded_next_uri}")
|
f"next={self.encoded_next_uri}")
|
||||||
update_uri: str = f"{PREFIX}/{journal_entry_id}/update"
|
update_uri: str = f"{PREFIX}/{journal_entry_id}/update"
|
||||||
@ -676,14 +682,18 @@ class CashDisbursementJournalEntryTestCase(unittest.TestCase):
|
|||||||
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
||||||
"""The encoded next URI."""
|
"""The encoded next URI."""
|
||||||
|
|
||||||
self.client, self.csrf_token = get_client(self.app, "editor")
|
self.client: httpx.Client = get_client(self.app, "editor")
|
||||||
|
"""The user client."""
|
||||||
|
self.csrf_token: str = get_csrf_token(self.client)
|
||||||
|
"""The CSRF token."""
|
||||||
|
|
||||||
def test_nobody(self) -> None:
|
def test_nobody(self) -> None:
|
||||||
"""Test the permission as nobody.
|
"""Test the permission as nobody.
|
||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "nobody")
|
client: httpx.Client = get_client(self.app, "nobody")
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
journal_entry_id: int \
|
journal_entry_id: int \
|
||||||
= add_journal_entry(self.client, self.__get_add_form())
|
= add_journal_entry(self.client, self.__get_add_form())
|
||||||
add_form: dict[str, str] = self.__get_add_form()
|
add_form: dict[str, str] = self.__get_add_form()
|
||||||
@ -717,7 +727,8 @@ class CashDisbursementJournalEntryTestCase(unittest.TestCase):
|
|||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "viewer")
|
client: httpx.Client = get_client(self.app, "viewer")
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
journal_entry_id: int \
|
journal_entry_id: int \
|
||||||
= add_journal_entry(self.client, self.__get_add_form())
|
= add_journal_entry(self.client, self.__get_add_form())
|
||||||
add_form: dict[str, str] = self.__get_add_form()
|
add_form: dict[str, str] = self.__get_add_form()
|
||||||
@ -1157,7 +1168,8 @@ class CashDisbursementJournalEntryTestCase(unittest.TestCase):
|
|||||||
journal_entry_id: int \
|
journal_entry_id: int \
|
||||||
= add_journal_entry(self.client, self.__get_add_form())
|
= add_journal_entry(self.client, self.__get_add_form())
|
||||||
editor_username, admin_username = "editor", "admin"
|
editor_username, admin_username = "editor", "admin"
|
||||||
client, csrf_token = get_client(self.app, admin_username)
|
client: httpx.Client = get_client(self.app, admin_username)
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
detail_uri: str = (f"{PREFIX}/{journal_entry_id}?"
|
detail_uri: str = (f"{PREFIX}/{journal_entry_id}?"
|
||||||
f"next={self.encoded_next_uri}")
|
f"next={self.encoded_next_uri}")
|
||||||
update_uri: str = f"{PREFIX}/{journal_entry_id}/update"
|
update_uri: str = f"{PREFIX}/{journal_entry_id}/update"
|
||||||
@ -1270,14 +1282,18 @@ class TransferJournalEntryTestCase(unittest.TestCase):
|
|||||||
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
||||||
"""The encoded next URI."""
|
"""The encoded next URI."""
|
||||||
|
|
||||||
self.client, self.csrf_token = get_client(self.app, "editor")
|
self.client: httpx.Client = get_client(self.app, "editor")
|
||||||
|
"""The user client."""
|
||||||
|
self.csrf_token: str = get_csrf_token(self.client)
|
||||||
|
"""The CSRF token."""
|
||||||
|
|
||||||
def test_nobody(self) -> None:
|
def test_nobody(self) -> None:
|
||||||
"""Test the permission as nobody.
|
"""Test the permission as nobody.
|
||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "nobody")
|
client: httpx.Client = get_client(self.app, "nobody")
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
journal_entry_id: int \
|
journal_entry_id: int \
|
||||||
= add_journal_entry(self.client, self.__get_add_form())
|
= add_journal_entry(self.client, self.__get_add_form())
|
||||||
add_form: dict[str, str] = self.__get_add_form()
|
add_form: dict[str, str] = self.__get_add_form()
|
||||||
@ -1311,7 +1327,8 @@ class TransferJournalEntryTestCase(unittest.TestCase):
|
|||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "viewer")
|
client: httpx.Client = get_client(self.app, "viewer")
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
journal_entry_id: int \
|
journal_entry_id: int \
|
||||||
= add_journal_entry(self.client, self.__get_add_form())
|
= add_journal_entry(self.client, self.__get_add_form())
|
||||||
add_form: dict[str, str] = self.__get_add_form()
|
add_form: dict[str, str] = self.__get_add_form()
|
||||||
@ -1830,7 +1847,8 @@ class TransferJournalEntryTestCase(unittest.TestCase):
|
|||||||
journal_entry_id: int \
|
journal_entry_id: int \
|
||||||
= add_journal_entry(self.client, self.__get_add_form())
|
= add_journal_entry(self.client, self.__get_add_form())
|
||||||
editor_username, admin_username = "editor", "admin"
|
editor_username, admin_username = "editor", "admin"
|
||||||
client, csrf_token = get_client(self.app, admin_username)
|
client: httpx.Client = get_client(self.app, admin_username)
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
detail_uri: str = (f"{PREFIX}/{journal_entry_id}?"
|
detail_uri: str = (f"{PREFIX}/{journal_entry_id}?"
|
||||||
f"next={self.encoded_next_uri}")
|
f"next={self.encoded_next_uri}")
|
||||||
update_uri: str = f"{PREFIX}/{journal_entry_id}/update"
|
update_uri: str = f"{PREFIX}/{journal_entry_id}/update"
|
||||||
@ -2143,7 +2161,10 @@ class JournalEntryReorderTestCase(unittest.TestCase):
|
|||||||
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
||||||
"""The encoded next URI."""
|
"""The encoded next URI."""
|
||||||
|
|
||||||
self.client, self.csrf_token = get_client(self.app, "editor")
|
self.client: httpx.Client = get_client(self.app, "editor")
|
||||||
|
"""The user client."""
|
||||||
|
self.csrf_token: str = get_csrf_token(self.client)
|
||||||
|
"""The CSRF token."""
|
||||||
|
|
||||||
def test_change_date(self) -> None:
|
def test_change_date(self) -> None:
|
||||||
"""Tests to change the date of a journal entry.
|
"""Tests to change the date of a journal entry.
|
||||||
|
@ -30,7 +30,7 @@ from test_site import db
|
|||||||
from test_site.lib import JournalEntryLineItemData, JournalEntryCurrencyData, \
|
from test_site.lib import JournalEntryLineItemData, JournalEntryCurrencyData, \
|
||||||
JournalEntryData, BaseTestData
|
JournalEntryData, BaseTestData
|
||||||
from testlib import NEXT_URI, Accounts, create_test_app, get_client, \
|
from testlib import NEXT_URI, Accounts, create_test_app, get_client, \
|
||||||
match_journal_entry_detail
|
get_csrf_token, match_journal_entry_detail
|
||||||
|
|
||||||
PREFIX: str = "/accounting/journal-entries"
|
PREFIX: str = "/accounting/journal-entries"
|
||||||
"""The URL prefix for the journal entry management."""
|
"""The URL prefix for the journal entry management."""
|
||||||
@ -55,7 +55,10 @@ class OffsetTestCase(unittest.TestCase):
|
|||||||
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
||||||
"""The encoded next URI."""
|
"""The encoded next URI."""
|
||||||
|
|
||||||
self.client, self.csrf_token = get_client(self.app, "editor")
|
self.client: httpx.Client = get_client(self.app, "editor")
|
||||||
|
"""The user client."""
|
||||||
|
self.csrf_token: str = get_csrf_token(self.client)
|
||||||
|
"""The CSRF token."""
|
||||||
self.data: OffsetTestData = OffsetTestData(self.app, "editor")
|
self.data: OffsetTestData = OffsetTestData(self.app, "editor")
|
||||||
"""The offset test data."""
|
"""The offset test data."""
|
||||||
self.data.populate()
|
self.data.populate()
|
||||||
|
@ -25,7 +25,8 @@ from flask import Flask
|
|||||||
|
|
||||||
from accounting.utils.next_uri import encode_next
|
from accounting.utils.next_uri import encode_next
|
||||||
from test_site import db
|
from test_site import db
|
||||||
from testlib import NEXT_URI, Accounts, create_test_app, get_client
|
from testlib import NEXT_URI, Accounts, create_test_app, get_client, \
|
||||||
|
get_csrf_token
|
||||||
|
|
||||||
PREFIX: str = "/accounting/options"
|
PREFIX: str = "/accounting/options"
|
||||||
"""The URL prefix for the option management."""
|
"""The URL prefix for the option management."""
|
||||||
@ -49,14 +50,18 @@ class OptionTestCase(unittest.TestCase):
|
|||||||
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
||||||
"""The encoded next URI."""
|
"""The encoded next URI."""
|
||||||
|
|
||||||
self.client, self.csrf_token = get_client(self.app, "admin")
|
self.client: httpx.Client = get_client(self.app, "admin")
|
||||||
|
"""The user client."""
|
||||||
|
self.csrf_token: str = get_csrf_token(self.client)
|
||||||
|
"""The CSRF token."""
|
||||||
|
|
||||||
def test_nobody(self) -> None:
|
def test_nobody(self) -> None:
|
||||||
"""Test the permission as nobody.
|
"""Test the permission as nobody.
|
||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "nobody")
|
client: httpx.Client = get_client(self.app, "nobody")
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
detail_uri: str = f"{PREFIX}?next={self.encoded_next_uri}"
|
detail_uri: str = f"{PREFIX}?next={self.encoded_next_uri}"
|
||||||
edit_uri: str = f"{PREFIX}/edit?next={self.encoded_next_uri}"
|
edit_uri: str = f"{PREFIX}/edit?next={self.encoded_next_uri}"
|
||||||
update_uri: str = f"{PREFIX}/update"
|
update_uri: str = f"{PREFIX}/update"
|
||||||
@ -76,7 +81,8 @@ class OptionTestCase(unittest.TestCase):
|
|||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "viewer")
|
client: httpx.Client = get_client(self.app, "viewer")
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
detail_uri: str = f"{PREFIX}?next={self.encoded_next_uri}"
|
detail_uri: str = f"{PREFIX}?next={self.encoded_next_uri}"
|
||||||
edit_uri: str = f"{PREFIX}/edit?next={self.encoded_next_uri}"
|
edit_uri: str = f"{PREFIX}/edit?next={self.encoded_next_uri}"
|
||||||
update_uri: str = f"{PREFIX}/update"
|
update_uri: str = f"{PREFIX}/update"
|
||||||
@ -96,7 +102,8 @@ class OptionTestCase(unittest.TestCase):
|
|||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "editor")
|
client: httpx.Client = get_client(self.app, "editor")
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
detail_uri: str = f"{PREFIX}?next={self.encoded_next_uri}"
|
detail_uri: str = f"{PREFIX}?next={self.encoded_next_uri}"
|
||||||
edit_uri: str = f"{PREFIX}/edit?next={self.encoded_next_uri}"
|
edit_uri: str = f"{PREFIX}/edit?next={self.encoded_next_uri}"
|
||||||
update_uri: str = f"{PREFIX}/update"
|
update_uri: str = f"{PREFIX}/update"
|
||||||
|
@ -24,7 +24,7 @@ import httpx
|
|||||||
from flask import Flask
|
from flask import Flask
|
||||||
|
|
||||||
from test_site.lib import BaseTestData
|
from test_site.lib import BaseTestData
|
||||||
from testlib import create_test_app, get_client, Accounts
|
from testlib import create_test_app, get_client, get_csrf_token, Accounts
|
||||||
|
|
||||||
PREFIX: str = "/accounting"
|
PREFIX: str = "/accounting"
|
||||||
"""The URL prefix for the reports."""
|
"""The URL prefix for the reports."""
|
||||||
@ -49,14 +49,17 @@ class ReportTestCase(unittest.TestCase):
|
|||||||
JournalEntry.query.delete()
|
JournalEntry.query.delete()
|
||||||
JournalEntryLineItem.query.delete()
|
JournalEntryLineItem.query.delete()
|
||||||
|
|
||||||
self.client, self.csrf_token = get_client(self.app, "editor")
|
self.client: httpx.Client = get_client(self.app, "editor")
|
||||||
|
"""The user client."""
|
||||||
|
self.csrf_token: str = get_csrf_token(self.client)
|
||||||
|
"""The CSRF token."""
|
||||||
|
|
||||||
def test_nobody(self) -> None:
|
def test_nobody(self) -> None:
|
||||||
"""Test the permission as nobody.
|
"""Test the permission as nobody.
|
||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "nobody")
|
client: httpx.Client = get_client(self.app, "nobody")
|
||||||
ReportTestData(self.app, "editor").populate()
|
ReportTestData(self.app, "editor").populate()
|
||||||
response: httpx.Response
|
response: httpx.Response
|
||||||
|
|
||||||
@ -147,7 +150,7 @@ class ReportTestCase(unittest.TestCase):
|
|||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "viewer")
|
client: httpx.Client = get_client(self.app, "viewer")
|
||||||
ReportTestData(self.app, "editor").populate()
|
ReportTestData(self.app, "editor").populate()
|
||||||
response: httpx.Response
|
response: httpx.Response
|
||||||
|
|
||||||
|
@ -26,7 +26,8 @@ from accounting.utils.next_uri import encode_next
|
|||||||
from test_site import db
|
from test_site import db
|
||||||
from test_site.lib import JournalEntryCurrencyData, JournalEntryData, \
|
from test_site.lib import JournalEntryCurrencyData, JournalEntryData, \
|
||||||
BaseTestData
|
BaseTestData
|
||||||
from testlib import NEXT_URI, create_test_app, get_client, Accounts
|
from testlib import NEXT_URI, create_test_app, get_client, get_csrf_token, \
|
||||||
|
Accounts
|
||||||
|
|
||||||
PREFIX: str = "/accounting/match-offsets/USD"
|
PREFIX: str = "/accounting/match-offsets/USD"
|
||||||
"""The URL prefix for the unmatched offset management."""
|
"""The URL prefix for the unmatched offset management."""
|
||||||
@ -51,14 +52,18 @@ class UnmatchedOffsetTestCase(unittest.TestCase):
|
|||||||
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
self.encoded_next_uri: str = encode_next(NEXT_URI)
|
||||||
"""The encoded next URI."""
|
"""The encoded next URI."""
|
||||||
|
|
||||||
self.client, self.csrf_token = get_client(self.app, "editor")
|
self.client: httpx.Client = get_client(self.app, "editor")
|
||||||
|
"""The user client."""
|
||||||
|
self.csrf_token: str = get_csrf_token(self.client)
|
||||||
|
"""The CSRF token."""
|
||||||
|
|
||||||
def test_nobody(self) -> None:
|
def test_nobody(self) -> None:
|
||||||
"""Test the permission as nobody.
|
"""Test the permission as nobody.
|
||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "nobody")
|
client: httpx.Client = get_client(self.app, "nobody")
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
DifferentTestData(self.app, "nobody").populate()
|
DifferentTestData(self.app, "nobody").populate()
|
||||||
response: httpx.Response
|
response: httpx.Response
|
||||||
|
|
||||||
@ -72,7 +77,8 @@ class UnmatchedOffsetTestCase(unittest.TestCase):
|
|||||||
|
|
||||||
:return: None.
|
:return: None.
|
||||||
"""
|
"""
|
||||||
client, csrf_token = get_client(self.app, "viewer")
|
client: httpx.Client = get_client(self.app, "viewer")
|
||||||
|
csrf_token: str = get_csrf_token(client)
|
||||||
DifferentTestData(self.app, "viewer").populate()
|
DifferentTestData(self.app, "viewer").populate()
|
||||||
response: httpx.Response
|
response: httpx.Response
|
||||||
|
|
||||||
|
@ -89,12 +89,12 @@ def get_csrf_token(client: httpx.Client) -> str:
|
|||||||
return client.get("/.csrf-token").text
|
return client.get("/.csrf-token").text
|
||||||
|
|
||||||
|
|
||||||
def get_client(app: Flask, username: str) -> tuple[httpx.Client, str]:
|
def get_client(app: Flask, username: str) -> httpx.Client:
|
||||||
"""Returns a user client.
|
"""Returns a user client.
|
||||||
|
|
||||||
:param app: The Flask application.
|
:param app: The Flask application.
|
||||||
:param username: The username.
|
:param username: The username.
|
||||||
:return: A tuple of the client and the CSRF token.
|
:return: The user client.
|
||||||
"""
|
"""
|
||||||
client: httpx.Client = httpx.Client(app=app, base_url=TEST_SERVER)
|
client: httpx.Client = httpx.Client(app=app, base_url=TEST_SERVER)
|
||||||
client.headers["Referer"] = TEST_SERVER
|
client.headers["Referer"] = TEST_SERVER
|
||||||
@ -107,7 +107,7 @@ def get_client(app: Flask, username: str) -> tuple[httpx.Client, str]:
|
|||||||
"username": username})
|
"username": username})
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
assert response.headers["Location"] == NEXT_URI
|
assert response.headers["Location"] == NEXT_URI
|
||||||
return client, csrf_token
|
return client
|
||||||
|
|
||||||
|
|
||||||
def set_locale(app: Flask, client: httpx.Client, csrf_token: str,
|
def set_locale(app: Flask, client: httpx.Client, csrf_token: str,
|
||||||
|
Loading…
Reference in New Issue
Block a user