diff --git a/frappe/tests/test_form_load.py b/frappe/tests/test_form_load.py index c962b192b3..b382fa7381 100644 --- a/frappe/tests/test_form_load.py +++ b/frappe/tests/test_form_load.py @@ -42,11 +42,27 @@ class TestFormLoad(unittest.TestCase): blog_post_property_setter = make_property_setter('Blog Post', 'published', 'permlevel', 1, 'Int') reset('Blog Post') + + # test field level permission before role level permissions are defined + frappe.set_user(user.name) + blog_doc = get_blog(blog.name) + + self.assertEqual(blog_doc.published, None) + + # this will be ignored because user does not + # have write access on `published` field (or on permlevel 1 fields) + blog_doc.published = 1 + blog_doc.save() + + # since published field has higher permlevel + self.assertEqual(blog_doc.published, 0) + + # test field level permission after role level permissions are defined + frappe.set_user('Administrator') add('Blog Post', 'Website Manager', 1) update('Blog Post', 'Website Manager', 1, 'write', 1) frappe.set_user(user.name) - blog_doc = get_blog(blog.name) self.assertEqual(blog_doc.name, blog.name)