Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 
 
 

78 рядки
2.8 KiB

  1. # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
  2. # License: MIT. See LICENSE
  3. import frappe, unittest
  4. import frappe.desk.form.assign_to
  5. from frappe.desk.listview import get_group_by_count
  6. from frappe.automation.doctype.assignment_rule.test_assignment_rule import make_note
  7. from frappe.desk.form.load import get_assignments
  8. class TestAssign(unittest.TestCase):
  9. def test_assign(self):
  10. todo = frappe.get_doc({"doctype":"ToDo", "description": "test"}).insert()
  11. if not frappe.db.exists("User", "test@example.com"):
  12. frappe.get_doc({"doctype":"User", "email":"test@example.com", "first_name":"Test"}).insert()
  13. added = assign(todo, "test@example.com")
  14. self.assertTrue("test@example.com" in [d.owner for d in added])
  15. removed = frappe.desk.form.assign_to.remove(todo.doctype, todo.name, "test@example.com")
  16. # assignment is cleared
  17. assignments = frappe.desk.form.assign_to.get(dict(doctype = todo.doctype, name=todo.name))
  18. self.assertEqual(len(assignments), 0)
  19. def test_assignment_count(self):
  20. frappe.db.delete("ToDo")
  21. if not frappe.db.exists("User", "test_assign1@example.com"):
  22. frappe.get_doc({"doctype":"User", "email":"test_assign1@example.com", "first_name":"Test", "roles": [{"role": "System Manager"}]}).insert()
  23. if not frappe.db.exists("User", "test_assign2@example.com"):
  24. frappe.get_doc({"doctype":"User", "email":"test_assign2@example.com", "first_name":"Test", "roles": [{"role": "System Manager"}]}).insert()
  25. note = make_note()
  26. assign(note, "test_assign1@example.com")
  27. note = make_note(dict(public=1))
  28. assign(note, "test_assign2@example.com")
  29. note = make_note(dict(public=1))
  30. assign(note, "test_assign2@example.com")
  31. note = make_note()
  32. assign(note, "test_assign2@example.com")
  33. data = {d.name: d.count for d in get_group_by_count('Note', '[]', 'assigned_to')}
  34. self.assertTrue('test_assign1@example.com' in data)
  35. self.assertEqual(data['test_assign1@example.com'], 1)
  36. self.assertEqual(data['test_assign2@example.com'], 3)
  37. data = {d.name: d.count for d in get_group_by_count('Note', '[{"public": 1}]', 'assigned_to')}
  38. self.assertFalse('test_assign1@example.com' in data)
  39. self.assertEqual(data['test_assign2@example.com'], 2)
  40. frappe.db.rollback()
  41. def test_assignment_removal(self):
  42. todo = frappe.get_doc({"doctype":"ToDo", "description": "test"}).insert()
  43. if not frappe.db.exists("User", "test@example.com"):
  44. frappe.get_doc({"doctype":"User", "email":"test@example.com", "first_name":"Test"}).insert()
  45. new_todo = assign(todo, "test@example.com")
  46. # remove assignment
  47. frappe.db.set_value("ToDo", new_todo[0].name, "allocated_to", "")
  48. self.assertFalse(get_assignments("ToDo", todo.name))
  49. def assign(doc, user):
  50. return frappe.desk.form.assign_to.add({
  51. "assign_to": [user],
  52. "doctype": doc.doctype,
  53. "name": doc.name,
  54. "description": 'test',
  55. })