Files
zkxw/backend/tests/test_oa_receive_account.py
T

105 lines
3.2 KiB
Python

import unittest
from app.services.oa_receive_account import (
normalize_account_fields,
validate_receive_account_form_values,
)
class TestNormalizeAccountFields(unittest.TestCase):
def test_alipay_clears_bank(self):
ok, err, data = normalize_account_fields(
{
"accountType": "alipay",
"accountName": "张三",
"accountNo": "13800138000",
"bankName": "工行",
"bankProvince": "安徽",
"bankCity": "合肥",
"bankBranch": "xx支行",
"remark": "r",
}
)
self.assertTrue(ok)
self.assertIsNone(err)
self.assertEqual(data["account_type"], "alipay")
self.assertEqual(data["account_name"], "张三")
self.assertEqual(data["bank_name"], "")
self.assertEqual(data["bank_province"], "")
self.assertEqual(data["bank_city"], "")
self.assertEqual(data["bank_branch"], "")
def test_personal_requires_bank(self):
ok, err, _ = normalize_account_fields(
{
"accountType": "personal",
"accountName": "李四",
"accountNo": "6222",
}
)
self.assertFalse(ok)
self.assertTrue(err)
def test_personal_ok(self):
ok, err, data = normalize_account_fields(
{
"accountType": "personal",
"accountName": "李四",
"accountNo": "6222",
"bankName": "工行",
"bankProvince": "安徽省",
"bankCity": "合肥市",
"bankBranch": "长江中路支行",
}
)
self.assertTrue(ok)
self.assertEqual(data["bank_name"], "工行")
class TestValidateReceiveAccountFormValues(unittest.TestCase):
def test_ok_array(self):
schema = {
"rule": [
{
"type": "receiveAccount",
"field": "acc",
"title": "收款账户",
"$required": True,
}
]
}
data = {
"acc": [
{
"id": "1",
"accountType": "alipay",
"accountName": "张三",
"accountNo": "138",
"bankName": "",
"bankProvince": "",
"bankCity": "",
"bankBranch": "",
"remark": "",
}
]
}
self.assertEqual(validate_receive_account_form_values(schema, data), [])
def test_required_empty(self):
schema = {
"rule": [
{"type": "receiveAccount", "field": "acc", "title": "收款账户", "$required": True}
]
}
errs = validate_receive_account_form_values(schema, {"acc": []})
self.assertTrue(any("收款账户" in e for e in errs))
def test_invalid_item(self):
schema = {"rule": [{"type": "receiveAccount", "field": "acc"}]}
errs = validate_receive_account_form_values(schema, {"acc": [{"id": "1"}]})
self.assertTrue(len(errs) >= 1)
if __name__ == "__main__":
unittest.main()