Files
zkxw/backend/tests/test_oa_menu_badge_counts.py
T
zlwuandCursor de22678c87 feat: ship OA drafts/badges, role dual-track, and test-env deploy tooling.
Add approval instance drafts with menu badges, dual-track user/role read model and role bound names, form-designer outline docs, and bare-metal test deploy scripts. Ignore local test-server credential file.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 13:58:47 +08:00

39 lines
1.1 KiB
Python

"""OA 菜单角标:待办数 / 草稿数"""
import unittest
from unittest.mock import MagicMock, patch
from app.crud import oa_instance_draft as oid_crud
from app.services import oa_engine as eng
class TestCountPendingTasks(unittest.TestCase):
def test_filters_approval_pending_for_user(self):
db = MagicMock()
q = db.query.return_value
filtered = q.filter.return_value
filtered.count.return_value = 3
n = eng.count_pending_tasks(db, tenant_no="t1", user_id="u1")
self.assertEqual(n, 3)
db.query.assert_called_once()
q.filter.assert_called_once()
filtered.count.assert_called_once()
class TestCountDrafts(unittest.TestCase):
def test_filters_owner_and_tenant(self):
db = MagicMock()
q = db.query.return_value
filtered = q.filter.return_value
filtered.count.return_value = 5
n = oid_crud.count_drafts(db, tenant_no="t1", owner_user_id="u1")
self.assertEqual(n, 5)
db.query.assert_called_once()
q.filter.assert_called_once()
filtered.count.assert_called_once()
if __name__ == "__main__":
unittest.main()