Files
DjangoAdmin_FastAPI_EleVue/tests/unit/modules/test_dept_service.py
T
2026-09-12 17:39:13 +08:00

43 lines
1.4 KiB
Python

"""system/dept service 单元测试(回归删除父级时禁止有子级)。"""
import json
from modules.system.dept import service as dept_service
from modules.system.dept.models import Dept
from modules.system.dept.repository import dept_repo
from modules.system.dept.schemas import DeptForm
def _resp_body(resp):
return json.loads(resp.body)
def _form(**overrides):
data = dict(name="总公司", code="HQ", type=1, parentId=None, sort=1, note=None)
data.update(overrides)
return DeptForm(**data)
def test_delete_parent_with_child_blocked(fake_request, sqlite_db):
dept_service.add_dept(fake_request, _form())
parent = dept_repo.filter(Dept.name == "总公司").first()
dept_service.add_dept(
fake_request,
_form(name="研发部", code="RD", parentId=parent.id),
)
child = dept_repo.filter(Dept.name == "研发部").first()
resp = dept_service.delete_dept(str(parent.id))
assert _resp_body(resp)["code"] != 0
assert dept_repo.get_by_id(parent.id).is_delete == 0
assert dept_repo.get_by_id(child.id).is_delete == 0
def test_delete_leaf_soft_deletes(fake_request, sqlite_db):
dept_service.add_dept(fake_request, _form())
leaf = dept_repo.filter(Dept.name == "总公司").first()
resp = dept_service.delete_dept(str(leaf.id))
assert _resp_body(resp)["code"] == 0
assert dept_repo.filter(Dept.id == leaf.id).first().is_delete == 1