test_oa_menu_badge_counts.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. """OA 菜单角标:待办数 / 草稿数"""
  2. import unittest
  3. from unittest.mock import MagicMock, patch
  4. from app.crud import oa_instance_draft as oid_crud
  5. from app.services import oa_engine as eng
  6. class TestCountPendingTasks(unittest.TestCase):
  7. def test_filters_approval_pending_for_user(self):
  8. db = MagicMock()
  9. q = db.query.return_value
  10. filtered = q.filter.return_value
  11. filtered.count.return_value = 3
  12. n = eng.count_pending_tasks(db, tenant_no="t1", user_id="u1")
  13. self.assertEqual(n, 3)
  14. db.query.assert_called_once()
  15. q.filter.assert_called_once()
  16. filtered.count.assert_called_once()
  17. class TestCountDrafts(unittest.TestCase):
  18. def test_filters_owner_and_tenant(self):
  19. db = MagicMock()
  20. q = db.query.return_value
  21. filtered = q.filter.return_value
  22. filtered.count.return_value = 5
  23. n = oid_crud.count_drafts(db, tenant_no="t1", owner_user_id="u1")
  24. self.assertEqual(n, 5)
  25. db.query.assert_called_once()
  26. q.filter.assert_called_once()
  27. filtered.count.assert_called_once()
  28. if __name__ == "__main__":
  29. unittest.main()