105 lines
3.2 KiB
Python
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()
|