Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 
 

126 rader
3.6 KiB

  1. # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
  2. # MIT License. See license.txt
  3. import frappe, unittest, time
  4. class TestDocument(unittest.TestCase):
  5. def test_load(self):
  6. d = frappe.get_doc("DocType", "User")
  7. self.assertEquals(d.doctype, "DocType")
  8. self.assertEquals(d.name, "User")
  9. self.assertEquals(d.allow_rename, 1)
  10. self.assertTrue(isinstance(d.fields, list))
  11. self.assertTrue(isinstance(d.permissions, list))
  12. self.assertTrue(filter(lambda d: d.fieldname=="email", d.fields))
  13. def test_load_single(self):
  14. d = frappe.get_doc("Website Settings", "Website Settings")
  15. self.assertEquals(d.name, "Website Settings")
  16. self.assertEquals(d.doctype, "Website Settings")
  17. self.assertTrue(d.disable_signup in (0, 1))
  18. def test_insert(self):
  19. d = frappe.get_doc({
  20. "doctype":"Event",
  21. "subject":"_Test Event 1",
  22. "starts_on": "2014-01-01",
  23. "event_type": "Public"
  24. })
  25. d.insert()
  26. self.assertTrue(d.name.startswith("EV"))
  27. self.assertEquals(frappe.db.get_value("Event", d.name, "subject"),
  28. "_Test Event 1")
  29. # test if default values are added
  30. self.assertEquals(d.send_reminder, 1)
  31. return d
  32. def test_insert_with_child(self):
  33. d = frappe.get_doc({
  34. "doctype":"Event",
  35. "subject":"_Test Event 2",
  36. "starts_on": "2014-01-01",
  37. "event_type": "Public",
  38. "event_individuals": [
  39. {
  40. "person": "Administrator"
  41. }
  42. ]
  43. })
  44. d.insert()
  45. self.assertTrue(d.name.startswith("EV"))
  46. self.assertEquals(frappe.db.get_value("Event", d.name, "subject"),
  47. "_Test Event 2")
  48. d1 = frappe.get_doc("Event", d.name)
  49. self.assertTrue(d1.event_individuals[0].person, "Administrator")
  50. def test_update(self):
  51. d = self.test_insert()
  52. d.subject = "subject changed"
  53. d.save()
  54. self.assertEquals(frappe.db.get_value(d.doctype, d.name, "subject"), "subject changed")
  55. def test_mandatory(self):
  56. d = frappe.get_doc({
  57. "doctype": "User",
  58. "email": "test_mandatory@example.com",
  59. })
  60. self.assertRaises(frappe.MandatoryError, d.insert)
  61. d.set("first_name", "Test Mandatory")
  62. d.insert()
  63. self.assertEquals(frappe.db.get_value("User", d.name), d.name)
  64. def test_confict_validation(self):
  65. d1 = self.test_insert()
  66. d2 = frappe.get_doc(d1.doctype, d1.name)
  67. d1.save()
  68. self.assertRaises(frappe.TimestampMismatchError, d2.save)
  69. def test_confict_validation_single(self):
  70. d1 = frappe.get_doc("Website Settings", "Website Settings")
  71. d2 = frappe.get_doc("Website Settings", "Website Settings")
  72. d1.save()
  73. self.assertRaises(frappe.TimestampMismatchError, d2.save)
  74. def test_permission(self):
  75. frappe.set_user("Guest")
  76. d = self.assertRaises(frappe.PermissionError, self.test_insert)
  77. frappe.set_user("Administrator")
  78. def test_permission_single(self):
  79. frappe.set_user("Guest")
  80. d = frappe.get_doc("Website Settings", "Website Settigns")
  81. self.assertRaises(frappe.PermissionError, d.save)
  82. frappe.set_user("Administrator")
  83. def test_link_validation(self):
  84. d = frappe.get_doc({
  85. "doctype": "User",
  86. "email": "test_link_validation@example.com",
  87. "first_name": "Link Validation",
  88. "user_roles": [
  89. {
  90. "role": "ABC"
  91. }
  92. ]
  93. })
  94. self.assertRaises(frappe.LinkValidationError, d.insert)
  95. d.user_roles = []
  96. d.set("user_roles", {
  97. "role": "System Manager"
  98. })
  99. d.insert()
  100. self.assertEquals(frappe.db.get_value("User", d.name), d.name)
  101. def test_validate(self):
  102. d = self.test_insert()
  103. d.starts_on = "2014-01-01"
  104. d.ends_on = "2013-01-01"
  105. self.assertRaises(frappe.ValidationError, d.validate)
  106. self.assertRaises(frappe.ValidationError, d.run_method, "validate")
  107. self.assertRaises(frappe.ValidationError, d.save)