Renamed the constants to be upper-cased in test_account.py.
This commit is contained in:
		| @@ -54,15 +54,15 @@ class AccountData: | |||||||
|         """The code.""" |         """The code.""" | ||||||
|  |  | ||||||
|  |  | ||||||
| cash: AccountData = AccountData("1111", 1, "Cash") | CASH: AccountData = AccountData("1111", 1, "Cash") | ||||||
| """The cash account.""" | """The cash account.""" | ||||||
| petty: AccountData = AccountData("1112", 1, "Bank") | PETTY: AccountData = AccountData("1112", 1, "Bank") | ||||||
| """The petty cash account.""" | """The petty cash account.""" | ||||||
| bank: AccountData = AccountData("1113", 1, "Bank") | BANK: AccountData = AccountData("1113", 1, "Bank") | ||||||
| """The bank account.""" | """The bank account.""" | ||||||
| stock: AccountData = AccountData("1121", 1, "Stock") | STOCK: AccountData = AccountData("1121", 1, "Stock") | ||||||
| """The stock account.""" | """The stock account.""" | ||||||
| loan: AccountData = AccountData("2112", 1, "Loan") | LOAN: AccountData = AccountData("2112", 1, "Loan") | ||||||
| """The loan account.""" | """The loan account.""" | ||||||
| PREFIX: str = "/accounting/accounts" | PREFIX: str = "/accounting/accounts" | ||||||
| """The URL prefix for the account management.""" | """The URL prefix for the account management.""" | ||||||
| @@ -150,19 +150,19 @@ class AccountTestCase(unittest.TestCase): | |||||||
|  |  | ||||||
|         response = self.client.post(f"{PREFIX}/store", |         response = self.client.post(f"{PREFIX}/store", | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": cash.base_code, |                                           "base_code": CASH.base_code, | ||||||
|                                           "title": cash.title}) |                                           "title": CASH.title}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], |         self.assertEqual(response.headers["Location"], | ||||||
|                          f"{PREFIX}/{cash.code}") |                          f"{PREFIX}/{CASH.code}") | ||||||
|  |  | ||||||
|         response = self.client.post(f"{PREFIX}/store", |         response = self.client.post(f"{PREFIX}/store", | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": bank.base_code, |                                           "base_code": BANK.base_code, | ||||||
|                                           "title": bank.title}) |                                           "title": BANK.title}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], |         self.assertEqual(response.headers["Location"], | ||||||
|                          f"{PREFIX}/{bank.code}") |                          f"{PREFIX}/{BANK.code}") | ||||||
|  |  | ||||||
|     def test_nobody(self) -> None: |     def test_nobody(self) -> None: | ||||||
|         """Test the permission as nobody. |         """Test the permission as nobody. | ||||||
| @@ -176,7 +176,7 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         response = client.get(PREFIX) |         response = client.get(PREFIX) | ||||||
|         self.assertEqual(response.status_code, 403) |         self.assertEqual(response.status_code, 403) | ||||||
|  |  | ||||||
|         response = client.get(f"{PREFIX}/{cash.code}") |         response = client.get(f"{PREFIX}/{CASH.code}") | ||||||
|         self.assertEqual(response.status_code, 403) |         self.assertEqual(response.status_code, 403) | ||||||
|  |  | ||||||
|         response = client.get(f"{PREFIX}/create") |         response = client.get(f"{PREFIX}/create") | ||||||
| @@ -184,30 +184,30 @@ class AccountTestCase(unittest.TestCase): | |||||||
|  |  | ||||||
|         response = client.post(f"{PREFIX}/store", |         response = client.post(f"{PREFIX}/store", | ||||||
|                                data={"csrf_token": csrf_token, |                                data={"csrf_token": csrf_token, | ||||||
|                                      "base_code": stock.base_code, |                                      "base_code": STOCK.base_code, | ||||||
|                                      "title": stock.title}) |                                      "title": STOCK.title}) | ||||||
|         self.assertEqual(response.status_code, 403) |         self.assertEqual(response.status_code, 403) | ||||||
|  |  | ||||||
|         response = client.get(f"{PREFIX}/{cash.code}/edit") |         response = client.get(f"{PREFIX}/{CASH.code}/edit") | ||||||
|         self.assertEqual(response.status_code, 403) |         self.assertEqual(response.status_code, 403) | ||||||
|  |  | ||||||
|         response = client.post(f"{PREFIX}/{cash.code}/update", |         response = client.post(f"{PREFIX}/{CASH.code}/update", | ||||||
|                                data={"csrf_token": csrf_token, |                                data={"csrf_token": csrf_token, | ||||||
|                                      "base_code": cash.base_code, |                                      "base_code": CASH.base_code, | ||||||
|                                      "title": f"{cash.title}-2"}) |                                      "title": f"{CASH.title}-2"}) | ||||||
|         self.assertEqual(response.status_code, 403) |         self.assertEqual(response.status_code, 403) | ||||||
|  |  | ||||||
|         response = client.post(f"{PREFIX}/{bank.code}/delete", |         response = client.post(f"{PREFIX}/{BANK.code}/delete", | ||||||
|                                data={"csrf_token": csrf_token}) |                                data={"csrf_token": csrf_token}) | ||||||
|         self.assertEqual(response.status_code, 403) |         self.assertEqual(response.status_code, 403) | ||||||
|  |  | ||||||
|         response = client.get(f"{PREFIX}/bases/{cash.base_code}") |         response = client.get(f"{PREFIX}/bases/{CASH.base_code}") | ||||||
|         self.assertEqual(response.status_code, 403) |         self.assertEqual(response.status_code, 403) | ||||||
|  |  | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             cash_id: int = Account.find_by_code(cash.code).id |             cash_id: int = Account.find_by_code(CASH.code).id | ||||||
|  |  | ||||||
|         response = client.post(f"{PREFIX}/bases/{cash.base_code}", |         response = client.post(f"{PREFIX}/bases/{CASH.base_code}", | ||||||
|                                data={"csrf_token": csrf_token, |                                data={"csrf_token": csrf_token, | ||||||
|                                      "next": NEXT_URI, |                                      "next": NEXT_URI, | ||||||
|                                      f"{cash_id}-no": "5"}) |                                      f"{cash_id}-no": "5"}) | ||||||
| @@ -225,7 +225,7 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         response = client.get(PREFIX) |         response = client.get(PREFIX) | ||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|  |  | ||||||
|         response = client.get(f"{PREFIX}/{cash.code}") |         response = client.get(f"{PREFIX}/{CASH.code}") | ||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|  |  | ||||||
|         response = client.get(f"{PREFIX}/create") |         response = client.get(f"{PREFIX}/create") | ||||||
| @@ -233,30 +233,30 @@ class AccountTestCase(unittest.TestCase): | |||||||
|  |  | ||||||
|         response = client.post(f"{PREFIX}/store", |         response = client.post(f"{PREFIX}/store", | ||||||
|                                data={"csrf_token": csrf_token, |                                data={"csrf_token": csrf_token, | ||||||
|                                      "base_code": stock.base_code, |                                      "base_code": STOCK.base_code, | ||||||
|                                      "title": stock.title}) |                                      "title": STOCK.title}) | ||||||
|         self.assertEqual(response.status_code, 403) |         self.assertEqual(response.status_code, 403) | ||||||
|  |  | ||||||
|         response = client.get(f"{PREFIX}/{cash.code}/edit") |         response = client.get(f"{PREFIX}/{CASH.code}/edit") | ||||||
|         self.assertEqual(response.status_code, 403) |         self.assertEqual(response.status_code, 403) | ||||||
|  |  | ||||||
|         response = client.post(f"{PREFIX}/{cash.code}/update", |         response = client.post(f"{PREFIX}/{CASH.code}/update", | ||||||
|                                data={"csrf_token": csrf_token, |                                data={"csrf_token": csrf_token, | ||||||
|                                      "base_code": cash.base_code, |                                      "base_code": CASH.base_code, | ||||||
|                                      "title": f"{cash.title}-2"}) |                                      "title": f"{CASH.title}-2"}) | ||||||
|         self.assertEqual(response.status_code, 403) |         self.assertEqual(response.status_code, 403) | ||||||
|  |  | ||||||
|         response = client.post(f"{PREFIX}/{bank.code}/delete", |         response = client.post(f"{PREFIX}/{BANK.code}/delete", | ||||||
|                                data={"csrf_token": csrf_token}) |                                data={"csrf_token": csrf_token}) | ||||||
|         self.assertEqual(response.status_code, 403) |         self.assertEqual(response.status_code, 403) | ||||||
|  |  | ||||||
|         response = client.get(f"{PREFIX}/bases/{cash.base_code}") |         response = client.get(f"{PREFIX}/bases/{CASH.base_code}") | ||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|  |  | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             cash_id: int = Account.find_by_code(cash.code).id |             cash_id: int = Account.find_by_code(CASH.code).id | ||||||
|  |  | ||||||
|         response = client.post(f"{PREFIX}/bases/{cash.base_code}", |         response = client.post(f"{PREFIX}/bases/{CASH.base_code}", | ||||||
|                                data={"csrf_token": csrf_token, |                                data={"csrf_token": csrf_token, | ||||||
|                                      "next": NEXT_URI, |                                      "next": NEXT_URI, | ||||||
|                                      f"{cash_id}-no": "5"}) |                                      f"{cash_id}-no": "5"}) | ||||||
| @@ -273,7 +273,7 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         response = self.client.get(PREFIX) |         response = self.client.get(PREFIX) | ||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|  |  | ||||||
|         response = self.client.get(f"{PREFIX}/{cash.code}") |         response = self.client.get(f"{PREFIX}/{CASH.code}") | ||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|  |  | ||||||
|         response = self.client.get(f"{PREFIX}/create") |         response = self.client.get(f"{PREFIX}/create") | ||||||
| @@ -281,34 +281,34 @@ class AccountTestCase(unittest.TestCase): | |||||||
|  |  | ||||||
|         response = self.client.post(f"{PREFIX}/store", |         response = self.client.post(f"{PREFIX}/store", | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": stock.base_code, |                                           "base_code": STOCK.base_code, | ||||||
|                                           "title": stock.title}) |                                           "title": STOCK.title}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], |         self.assertEqual(response.headers["Location"], | ||||||
|                          f"{PREFIX}/{stock.code}") |                          f"{PREFIX}/{STOCK.code}") | ||||||
|  |  | ||||||
|         response = self.client.get(f"{PREFIX}/{cash.code}/edit") |         response = self.client.get(f"{PREFIX}/{CASH.code}/edit") | ||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|  |  | ||||||
|         response = self.client.post(f"{PREFIX}/{cash.code}/update", |         response = self.client.post(f"{PREFIX}/{CASH.code}/update", | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": cash.base_code, |                                           "base_code": CASH.base_code, | ||||||
|                                           "title": f"{cash.title}-2"}) |                                           "title": f"{CASH.title}-2"}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], f"{PREFIX}/{cash.code}") |         self.assertEqual(response.headers["Location"], f"{PREFIX}/{CASH.code}") | ||||||
|  |  | ||||||
|         response = self.client.post(f"{PREFIX}/{bank.code}/delete", |         response = self.client.post(f"{PREFIX}/{BANK.code}/delete", | ||||||
|                                     data={"csrf_token": self.csrf_token}) |                                     data={"csrf_token": self.csrf_token}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], PREFIX) |         self.assertEqual(response.headers["Location"], PREFIX) | ||||||
|  |  | ||||||
|         response = self.client.get(f"{PREFIX}/bases/{cash.base_code}") |         response = self.client.get(f"{PREFIX}/bases/{CASH.base_code}") | ||||||
|         self.assertEqual(response.status_code, 200) |         self.assertEqual(response.status_code, 200) | ||||||
|  |  | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             cash_id: int = Account.find_by_code(cash.code).id |             cash_id: int = Account.find_by_code(CASH.code).id | ||||||
|  |  | ||||||
|         response = self.client.post(f"{PREFIX}/bases/{cash.base_code}", |         response = self.client.post(f"{PREFIX}/bases/{CASH.base_code}", | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "next": NEXT_URI, |                                           "next": NEXT_URI, | ||||||
|                                           f"{cash_id}-no": "5"}) |                                           f"{cash_id}-no": "5"}) | ||||||
| @@ -323,31 +323,31 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         from accounting.models import Account |         from accounting.models import Account | ||||||
|         create_uri: str = f"{PREFIX}/create" |         create_uri: str = f"{PREFIX}/create" | ||||||
|         store_uri: str = f"{PREFIX}/store" |         store_uri: str = f"{PREFIX}/store" | ||||||
|         detail_uri: str = f"{PREFIX}/{stock.code}" |         detail_uri: str = f"{PREFIX}/{STOCK.code}" | ||||||
|         response: httpx.Response |         response: httpx.Response | ||||||
|  |  | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             self.assertEqual({x.code for x in Account.query.all()}, |             self.assertEqual({x.code for x in Account.query.all()}, | ||||||
|                              {cash.code, bank.code}) |                              {CASH.code, BANK.code}) | ||||||
|  |  | ||||||
|         # Missing CSRF token |         # Missing CSRF token | ||||||
|         response = self.client.post(store_uri, |         response = self.client.post(store_uri, | ||||||
|                                     data={"base_code": stock.base_code, |                                     data={"base_code": STOCK.base_code, | ||||||
|                                           "title": stock.title}) |                                           "title": STOCK.title}) | ||||||
|         self.assertEqual(response.status_code, 400) |         self.assertEqual(response.status_code, 400) | ||||||
|  |  | ||||||
|         # CSRF token mismatch |         # CSRF token mismatch | ||||||
|         response = self.client.post(store_uri, |         response = self.client.post(store_uri, | ||||||
|                                     data={"csrf_token": f"{self.csrf_token}-2", |                                     data={"csrf_token": f"{self.csrf_token}-2", | ||||||
|                                           "base_code": stock.base_code, |                                           "base_code": STOCK.base_code, | ||||||
|                                           "title": stock.title}) |                                           "title": STOCK.title}) | ||||||
|         self.assertEqual(response.status_code, 400) |         self.assertEqual(response.status_code, 400) | ||||||
|  |  | ||||||
|         # Empty base account code |         # Empty base account code | ||||||
|         response = self.client.post(store_uri, |         response = self.client.post(store_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": " ", |                                           "base_code": " ", | ||||||
|                                           "title": stock.title}) |                                           "title": STOCK.title}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], create_uri) |         self.assertEqual(response.headers["Location"], create_uri) | ||||||
|  |  | ||||||
| @@ -355,7 +355,7 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         response = self.client.post(store_uri, |         response = self.client.post(store_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": "9999", |                                           "base_code": "9999", | ||||||
|                                           "title": stock.title}) |                                           "title": STOCK.title}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], create_uri) |         self.assertEqual(response.headers["Location"], create_uri) | ||||||
|  |  | ||||||
| @@ -363,14 +363,14 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         response = self.client.post(store_uri, |         response = self.client.post(store_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": "1", |                                           "base_code": "1", | ||||||
|                                           "title": stock.title}) |                                           "title": STOCK.title}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], create_uri) |         self.assertEqual(response.headers["Location"], create_uri) | ||||||
|  |  | ||||||
|         # Empty name |         # Empty name | ||||||
|         response = self.client.post(store_uri, |         response = self.client.post(store_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": stock.base_code, |                                           "base_code": STOCK.base_code, | ||||||
|                                           "title": " "}) |                                           "title": " "}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], create_uri) |         self.assertEqual(response.headers["Location"], create_uri) | ||||||
| @@ -379,7 +379,7 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         response = self.client.post(store_uri, |         response = self.client.post(store_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": "6172", |                                           "base_code": "6172", | ||||||
|                                           "title": stock.title, |                                           "title": STOCK.title, | ||||||
|                                           "is_need_offset": "yes"}) |                                           "is_need_offset": "yes"}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], create_uri) |         self.assertEqual(response.headers["Location"], create_uri) | ||||||
| @@ -387,43 +387,43 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         # Success, with spaces to be stripped |         # Success, with spaces to be stripped | ||||||
|         response = self.client.post(store_uri, |         response = self.client.post(store_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": f" {stock.base_code} ", |                                           "base_code": f" {STOCK.base_code} ", | ||||||
|                                           "title": f" {stock.title} "}) |                                           "title": f" {STOCK.title} "}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], detail_uri) |         self.assertEqual(response.headers["Location"], detail_uri) | ||||||
|  |  | ||||||
|         # Success under the same base |         # Success under the same base | ||||||
|         response = self.client.post(store_uri, |         response = self.client.post(store_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": stock.base_code, |                                           "base_code": STOCK.base_code, | ||||||
|                                           "title": stock.title}) |                                           "title": STOCK.title}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], |         self.assertEqual(response.headers["Location"], | ||||||
|                          f"{PREFIX}/{stock.base_code}-002") |                          f"{PREFIX}/{STOCK.base_code}-002") | ||||||
|  |  | ||||||
|         # Success under the same base, with order in a mess. |         # Success under the same base, with order in a mess. | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             stock_2: Account = Account.find_by_code(f"{stock.base_code}-002") |             stock_2: Account = Account.find_by_code(f"{STOCK.base_code}-002") | ||||||
|             stock_2.no = 66 |             stock_2.no = 66 | ||||||
|             db.session.commit() |             db.session.commit() | ||||||
|  |  | ||||||
|         response = self.client.post(store_uri, |         response = self.client.post(store_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": stock.base_code, |                                           "base_code": STOCK.base_code, | ||||||
|                                           "title": stock.title}) |                                           "title": STOCK.title}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], |         self.assertEqual(response.headers["Location"], | ||||||
|                          f"{PREFIX}/{stock.base_code}-003") |                          f"{PREFIX}/{STOCK.base_code}-003") | ||||||
|  |  | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             self.assertEqual({x.code for x in Account.query.all()}, |             self.assertEqual({x.code for x in Account.query.all()}, | ||||||
|                              {cash.code, bank.code, stock.code, |                              {CASH.code, BANK.code, STOCK.code, | ||||||
|                               f"{stock.base_code}-002", |                               f"{STOCK.base_code}-002", | ||||||
|                               f"{stock.base_code}-003"}) |                               f"{STOCK.base_code}-003"}) | ||||||
|  |  | ||||||
|             account: Account = Account.find_by_code(stock.code) |             account: Account = Account.find_by_code(STOCK.code) | ||||||
|             self.assertEqual(account.base_code, stock.base_code) |             self.assertEqual(account.base_code, STOCK.base_code) | ||||||
|             self.assertEqual(account.title_l10n, stock.title) |             self.assertEqual(account.title_l10n, STOCK.title) | ||||||
|  |  | ||||||
|     def test_basic_update(self) -> None: |     def test_basic_update(self) -> None: | ||||||
|         """Tests the basic rules to update a user. |         """Tests the basic rules to update a user. | ||||||
| @@ -431,30 +431,30 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         :return: None. |         :return: None. | ||||||
|         """ |         """ | ||||||
|         from accounting.models import Account |         from accounting.models import Account | ||||||
|         detail_uri: str = f"{PREFIX}/{cash.code}" |         detail_uri: str = f"{PREFIX}/{CASH.code}" | ||||||
|         edit_uri: str = f"{PREFIX}/{cash.code}/edit" |         edit_uri: str = f"{PREFIX}/{CASH.code}/edit" | ||||||
|         update_uri: str = f"{PREFIX}/{cash.code}/update" |         update_uri: str = f"{PREFIX}/{CASH.code}/update" | ||||||
|         detail_c_uri: str = f"{PREFIX}/{stock.code}" |         detail_c_uri: str = f"{PREFIX}/{STOCK.code}" | ||||||
|         response: httpx.Response |         response: httpx.Response | ||||||
|  |  | ||||||
|         # Success, with spaces to be stripped |         # Success, with spaces to be stripped | ||||||
|         response = self.client.post(update_uri, |         response = self.client.post(update_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": f" {cash.base_code} ", |                                           "base_code": f" {CASH.base_code} ", | ||||||
|                                           "title": f" {cash.title}-1 "}) |                                           "title": f" {CASH.title}-1 "}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], detail_uri) |         self.assertEqual(response.headers["Location"], detail_uri) | ||||||
|  |  | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             account: Account = Account.find_by_code(cash.code) |             account: Account = Account.find_by_code(CASH.code) | ||||||
|             self.assertEqual(account.base_code, cash.base_code) |             self.assertEqual(account.base_code, CASH.base_code) | ||||||
|             self.assertEqual(account.title_l10n, f"{cash.title}-1") |             self.assertEqual(account.title_l10n, f"{CASH.title}-1") | ||||||
|  |  | ||||||
|         # Empty base account code |         # Empty base account code | ||||||
|         response = self.client.post(update_uri, |         response = self.client.post(update_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": " ", |                                           "base_code": " ", | ||||||
|                                           "title": stock.title}) |                                           "title": STOCK.title}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], edit_uri) |         self.assertEqual(response.headers["Location"], edit_uri) | ||||||
|  |  | ||||||
| @@ -462,7 +462,7 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         response = self.client.post(update_uri, |         response = self.client.post(update_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": "9999", |                                           "base_code": "9999", | ||||||
|                                           "title": stock.title}) |                                           "title": STOCK.title}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], edit_uri) |         self.assertEqual(response.headers["Location"], edit_uri) | ||||||
|  |  | ||||||
| @@ -470,14 +470,14 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         response = self.client.post(update_uri, |         response = self.client.post(update_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": "1", |                                           "base_code": "1", | ||||||
|                                           "title": stock.title}) |                                           "title": STOCK.title}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], edit_uri) |         self.assertEqual(response.headers["Location"], edit_uri) | ||||||
|  |  | ||||||
|         # Empty name |         # Empty name | ||||||
|         response = self.client.post(update_uri, |         response = self.client.post(update_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": stock.base_code, |                                           "base_code": STOCK.base_code, | ||||||
|                                           "title": " "}) |                                           "title": " "}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], edit_uri) |         self.assertEqual(response.headers["Location"], edit_uri) | ||||||
| @@ -486,7 +486,7 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         response = self.client.post(update_uri, |         response = self.client.post(update_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": "6172", |                                           "base_code": "6172", | ||||||
|                                           "title": stock.title, |                                           "title": STOCK.title, | ||||||
|                                           "is_need_offset": "yes"}) |                                           "is_need_offset": "yes"}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], edit_uri) |         self.assertEqual(response.headers["Location"], edit_uri) | ||||||
| @@ -494,8 +494,8 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         # Change the base account |         # Change the base account | ||||||
|         response = self.client.post(update_uri, |         response = self.client.post(update_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": stock.base_code, |                                           "base_code": STOCK.base_code, | ||||||
|                                           "title": stock.title}) |                                           "title": STOCK.title}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], detail_c_uri) |         self.assertEqual(response.headers["Location"], detail_c_uri) | ||||||
|  |  | ||||||
| @@ -511,20 +511,20 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         :return: None. |         :return: None. | ||||||
|         """ |         """ | ||||||
|         from accounting.models import Account |         from accounting.models import Account | ||||||
|         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 | ||||||
|         response: httpx.Response |         response: httpx.Response | ||||||
|  |  | ||||||
|         response = self.client.post(update_uri, |         response = self.client.post(update_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": f" {cash.base_code} ", |                                           "base_code": f" {CASH.base_code} ", | ||||||
|                                           "title": f" {cash.title} "}) |                                           "title": f" {CASH.title} "}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], detail_uri) |         self.assertEqual(response.headers["Location"], detail_uri) | ||||||
|  |  | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             account = Account.find_by_code(cash.code) |             account = Account.find_by_code(CASH.code) | ||||||
|             self.assertIsNotNone(account) |             self.assertIsNotNone(account) | ||||||
|             account.created_at \ |             account.created_at \ | ||||||
|                 = account.created_at - timedelta(seconds=5) |                 = account.created_at - timedelta(seconds=5) | ||||||
| @@ -533,13 +533,13 @@ class AccountTestCase(unittest.TestCase): | |||||||
|  |  | ||||||
|         response = self.client.post(update_uri, |         response = self.client.post(update_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": cash.base_code, |                                           "base_code": CASH.base_code, | ||||||
|                                           "title": stock.title}) |                                           "title": STOCK.title}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], detail_uri) |         self.assertEqual(response.headers["Location"], detail_uri) | ||||||
|  |  | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             account = Account.find_by_code(cash.code) |             account = Account.find_by_code(CASH.code) | ||||||
|             self.assertIsNotNone(account) |             self.assertIsNotNone(account) | ||||||
|             self.assertLess(account.created_at, |             self.assertLess(account.created_at, | ||||||
|                             account.updated_at) |                             account.updated_at) | ||||||
| @@ -552,25 +552,25 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         from accounting.models import Account |         from accounting.models import Account | ||||||
|         editor_username, editor2_username = "editor", "editor2" |         editor_username, editor2_username = "editor", "editor2" | ||||||
|         client, csrf_token = get_client(self.app, editor2_username) |         client, csrf_token = get_client(self.app, editor2_username) | ||||||
|         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 | ||||||
|         response: httpx.Response |         response: httpx.Response | ||||||
|  |  | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             account = Account.find_by_code(cash.code) |             account = Account.find_by_code(CASH.code) | ||||||
|             self.assertEqual(account.created_by.username, editor_username) |             self.assertEqual(account.created_by.username, editor_username) | ||||||
|             self.assertEqual(account.updated_by.username, editor_username) |             self.assertEqual(account.updated_by.username, editor_username) | ||||||
|  |  | ||||||
|         response = client.post(update_uri, |         response = client.post(update_uri, | ||||||
|                                data={"csrf_token": csrf_token, |                                data={"csrf_token": csrf_token, | ||||||
|                                      "base_code": cash.base_code, |                                      "base_code": CASH.base_code, | ||||||
|                                      "title": f"{cash.title}-2"}) |                                      "title": f"{CASH.title}-2"}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], detail_uri) |         self.assertEqual(response.headers["Location"], detail_uri) | ||||||
|  |  | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             account = Account.find_by_code(cash.code) |             account = Account.find_by_code(CASH.code) | ||||||
|             self.assertEqual(account.created_by.username, |             self.assertEqual(account.created_by.username, | ||||||
|                              editor_username) |                              editor_username) | ||||||
|             self.assertEqual(account.updated_by.username, |             self.assertEqual(account.updated_by.username, | ||||||
| @@ -582,60 +582,60 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         :return: None |         :return: None | ||||||
|         """ |         """ | ||||||
|         from accounting.models import Account |         from accounting.models import Account | ||||||
|         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 | ||||||
|         response: httpx.Response |         response: httpx.Response | ||||||
|  |  | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             account = Account.find_by_code(cash.code) |             account = Account.find_by_code(CASH.code) | ||||||
|             self.assertEqual(account.title_l10n, cash.title) |             self.assertEqual(account.title_l10n, CASH.title) | ||||||
|             self.assertEqual(account.l10n, []) |             self.assertEqual(account.l10n, []) | ||||||
|  |  | ||||||
|         set_locale(self.client, self.csrf_token, "zh_Hant") |         set_locale(self.client, self.csrf_token, "zh_Hant") | ||||||
|  |  | ||||||
|         response = self.client.post(update_uri, |         response = self.client.post(update_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": cash.base_code, |                                           "base_code": CASH.base_code, | ||||||
|                                           "title": f"{cash.title}-zh_Hant"}) |                                           "title": f"{CASH.title}-zh_Hant"}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], detail_uri) |         self.assertEqual(response.headers["Location"], detail_uri) | ||||||
|  |  | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             account = Account.find_by_code(cash.code) |             account = Account.find_by_code(CASH.code) | ||||||
|             self.assertEqual(account.title_l10n, cash.title) |             self.assertEqual(account.title_l10n, CASH.title) | ||||||
|             self.assertEqual({(x.locale, x.title) for x in account.l10n}, |             self.assertEqual({(x.locale, x.title) for x in account.l10n}, | ||||||
|                              {("zh_Hant", f"{cash.title}-zh_Hant")}) |                              {("zh_Hant", f"{CASH.title}-zh_Hant")}) | ||||||
|  |  | ||||||
|         set_locale(self.client, self.csrf_token, "en") |         set_locale(self.client, self.csrf_token, "en") | ||||||
|  |  | ||||||
|         response = self.client.post(update_uri, |         response = self.client.post(update_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": cash.base_code, |                                           "base_code": CASH.base_code, | ||||||
|                                           "title": f"{cash.title}-2"}) |                                           "title": f"{CASH.title}-2"}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], detail_uri) |         self.assertEqual(response.headers["Location"], detail_uri) | ||||||
|  |  | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             account = Account.find_by_code(cash.code) |             account = Account.find_by_code(CASH.code) | ||||||
|             self.assertEqual(account.title_l10n, f"{cash.title}-2") |             self.assertEqual(account.title_l10n, f"{CASH.title}-2") | ||||||
|             self.assertEqual({(x.locale, x.title) for x in account.l10n}, |             self.assertEqual({(x.locale, x.title) for x in account.l10n}, | ||||||
|                              {("zh_Hant", f"{cash.title}-zh_Hant")}) |                              {("zh_Hant", f"{CASH.title}-zh_Hant")}) | ||||||
|  |  | ||||||
|         set_locale(self.client, self.csrf_token, "zh_Hant") |         set_locale(self.client, self.csrf_token, "zh_Hant") | ||||||
|  |  | ||||||
|         response = self.client.post(update_uri, |         response = self.client.post(update_uri, | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": cash.base_code, |                                           "base_code": CASH.base_code, | ||||||
|                                           "title": f"{cash.title}-zh_Hant-2"}) |                                           "title": f"{CASH.title}-zh_Hant-2"}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], detail_uri) |         self.assertEqual(response.headers["Location"], detail_uri) | ||||||
|  |  | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             account = Account.find_by_code(cash.code) |             account = Account.find_by_code(CASH.code) | ||||||
|             self.assertEqual(account.title_l10n, f"{cash.title}-2") |             self.assertEqual(account.title_l10n, f"{CASH.title}-2") | ||||||
|             self.assertEqual({(x.locale, x.title) for x in account.l10n}, |             self.assertEqual({(x.locale, x.title) for x in account.l10n}, | ||||||
|                              {("zh_Hant", f"{cash.title}-zh_Hant-2")}) |                              {("zh_Hant", f"{CASH.title}-zh_Hant-2")}) | ||||||
|  |  | ||||||
|     def test_delete(self) -> None: |     def test_delete(self) -> None: | ||||||
|         """Tests to delete a currency. |         """Tests to delete a currency. | ||||||
| @@ -643,18 +643,18 @@ class AccountTestCase(unittest.TestCase): | |||||||
|         :return: None. |         :return: None. | ||||||
|         """ |         """ | ||||||
|         from accounting.models import Account |         from accounting.models import Account | ||||||
|         detail_uri: str = f"{PREFIX}/{bank.code}" |         detail_uri: str = f"{PREFIX}/{BANK.code}" | ||||||
|         delete_uri: str = f"{PREFIX}/{bank.code}/delete" |         delete_uri: str = f"{PREFIX}/{BANK.code}/delete" | ||||||
|         list_uri: str = PREFIX |         list_uri: str = PREFIX | ||||||
|         response: httpx.Response |         response: httpx.Response | ||||||
|  |  | ||||||
|         response = self.client.post(f"{PREFIX}/store", |         response = self.client.post(f"{PREFIX}/store", | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
|                                           "base_code": petty.base_code, |                                           "base_code": PETTY.base_code, | ||||||
|                                           "title": petty.title}) |                                           "title": PETTY.title}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], |         self.assertEqual(response.headers["Location"], | ||||||
|                          f"{PREFIX}/{petty.code}") |                          f"{PREFIX}/{PETTY.code}") | ||||||
|  |  | ||||||
|         response = self.client.post("/accounting/currencies/store", |         response = self.client.post("/accounting/currencies/store", | ||||||
|                                     data={"csrf_token": self.csrf_token, |                                     data={"csrf_token": self.csrf_token, | ||||||
| @@ -669,26 +669,26 @@ class AccountTestCase(unittest.TestCase): | |||||||
|                                 "next": NEXT_URI, |                                 "next": NEXT_URI, | ||||||
|                                 "date": date.today().isoformat(), |                                 "date": date.today().isoformat(), | ||||||
|                                 "currency-1-code": "USD", |                                 "currency-1-code": "USD", | ||||||
|                                 "currency-1-credit-1-account_code": petty.code, |                                 "currency-1-credit-1-account_code": PETTY.code, | ||||||
|                                 "currency-1-credit-1-amount": "20"}) |                                 "currency-1-credit-1-amount": "20"}) | ||||||
|  |  | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             self.assertEqual({x.code for x in Account.query.all()}, |             self.assertEqual({x.code for x in Account.query.all()}, | ||||||
|                              {cash.code, petty.code, bank.code}) |                              {CASH.code, PETTY.code, BANK.code}) | ||||||
|  |  | ||||||
|         # Cannot delete the cash account |         # Cannot delete the cash account | ||||||
|         response = self.client.post(f"{PREFIX}/{cash.code}/delete", |         response = self.client.post(f"{PREFIX}/{CASH.code}/delete", | ||||||
|                                     data={"csrf_token": self.csrf_token}) |                                     data={"csrf_token": self.csrf_token}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], |         self.assertEqual(response.headers["Location"], | ||||||
|                          f"{PREFIX}/{cash.code}") |                          f"{PREFIX}/{CASH.code}") | ||||||
|  |  | ||||||
|         # Cannot delete the account that is in use |         # Cannot delete the account that is in use | ||||||
|         response = self.client.post(f"{PREFIX}/{petty.code}/delete", |         response = self.client.post(f"{PREFIX}/{PETTY.code}/delete", | ||||||
|                                     data={"csrf_token": self.csrf_token}) |                                     data={"csrf_token": self.csrf_token}) | ||||||
|         self.assertEqual(response.status_code, 302) |         self.assertEqual(response.status_code, 302) | ||||||
|         self.assertEqual(response.headers["Location"], |         self.assertEqual(response.headers["Location"], | ||||||
|                          f"{PREFIX}/{petty.code}") |                          f"{PREFIX}/{PETTY.code}") | ||||||
|  |  | ||||||
|         # Success |         # Success | ||||||
|         response = self.client.get(detail_uri) |         response = self.client.get(detail_uri) | ||||||
| @@ -700,7 +700,7 @@ class AccountTestCase(unittest.TestCase): | |||||||
|  |  | ||||||
|         with self.app.app_context(): |         with self.app.app_context(): | ||||||
|             self.assertEqual({x.code for x in Account.query.all()}, |             self.assertEqual({x.code for x in Account.query.all()}, | ||||||
|                              {cash.code, petty.code}) |                              {CASH.code, PETTY.code}) | ||||||
|  |  | ||||||
|         response = self.client.get(detail_uri) |         response = self.client.get(detail_uri) | ||||||
|         self.assertEqual(response.status_code, 404) |         self.assertEqual(response.status_code, 404) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user