From 4c32dc37650679d36108f991a814d6b5804250bc Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Wed, 23 Dec 2020 15:27:03 +0530 Subject: [PATCH] fix(tests): routing, permission and other fixes --- frappe/core/doctype/doctype/doctype.py | 5 ----- frappe/core/doctype/user/test_user.py | 7 ++++++- frappe/core/doctype/user/user.py | 6 +++--- frappe/model/naming.py | 1 - frappe/website/context.py | 2 +- frappe/website/doctype/blog_post/blog_post.json | 2 +- .../doctype/website_route_meta/test_website_route_meta.py | 1 + 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/frappe/core/doctype/doctype/doctype.py b/frappe/core/doctype/doctype/doctype.py index 2c6bf4d9e1..a59bef9fc7 100644 --- a/frappe/core/doctype/doctype/doctype.py +++ b/frappe/core/doctype/doctype/doctype.py @@ -26,8 +26,6 @@ from frappe.database.schema import validate_column_name, validate_column_length from frappe.model.docfield import supports_translation from frappe.modules.import_file import get_file_path from frappe.model.meta import Meta -from frappe.desk.utils import get_doctype_route - class InvalidFieldNameError(frappe.ValidationError): pass class UniqueFieldnameError(frappe.ValidationError): pass @@ -190,9 +188,6 @@ class DocType(Document): def validate_website(self): """Ensure that website generator has field 'route'""" - if not self.istable and not self.route: - self.route = get_doctype_route(self.name) - if self.route: self.route = self.route.strip('/') diff --git a/frappe/core/doctype/user/test_user.py b/frappe/core/doctype/user/test_user.py index fb1fa4aff9..77b61f22bb 100644 --- a/frappe/core/doctype/user/test_user.py +++ b/frappe/core/doctype/user/test_user.py @@ -20,6 +20,7 @@ class TestUser(unittest.TestCase): frappe.db.set_value("System Settings", "System Settings", "enable_password_policy", 0) frappe.db.set_value("System Settings", "System Settings", "minimum_password_score", "") frappe.db.set_value("System Settings", "System Settings", "password_reset_limit", 3) + frappe.set_user('Administrator') def test_user_type(self): new_user = frappe.get_doc(dict(doctype='User', email='test-for-type@example.com', @@ -106,13 +107,17 @@ class TestUser(unittest.TestCase): frappe.set_user("testperm@example.com") me = frappe.get_doc("User", "testperm@example.com") - self.assertRaises(frappe.PermissionError, me.add_roles, "System Manager") + me.add_roles("System Manager") + + # system manager is not added (it is reset) + self.assertFalse('System Manager' in [d.role for d in me.roles]) frappe.set_user("Administrator") me = frappe.get_doc("User", "testperm@example.com") me.add_roles("System Manager") + # system manager now added by Administrator self.assertTrue("System Manager" in [d.role for d in me.get("roles")]) # def test_deny_multiple_sessions(self): diff --git a/frappe/core/doctype/user/user.py b/frappe/core/doctype/user/user.py index 6cc4104886..6f5c805a54 100644 --- a/frappe/core/doctype/user/user.py +++ b/frappe/core/doctype/user/user.py @@ -85,9 +85,9 @@ class User(Document): def validate_roles(self): if self.role_profile_name: - role_profile = frappe.get_doc('Role Profile', self.role_profile_name) - self.set('roles', []) - self.append_roles(*[role.role for role in role_profile.roles]) + role_profile = frappe.get_doc('Role Profile', self.role_profile_name) + self.set('roles', []) + self.append_roles(*[role.role for role in role_profile.roles]) def validate_user_image(self): if self.user_image and len(self.user_image) > 2000: diff --git a/frappe/model/naming.py b/frappe/model/naming.py index c2e074990e..e954debe6f 100644 --- a/frappe/model/naming.py +++ b/frappe/model/naming.py @@ -67,7 +67,6 @@ def set_new_name(doc): frappe.get_meta(doc.doctype).get_field("name_case") ) - def set_name_from_naming_options(autoname, doc): """ Get a name based on the autoname field option diff --git a/frappe/website/context.py b/frappe/website/context.py index 34460c3be4..4236971aec 100644 --- a/frappe/website/context.py +++ b/frappe/website/context.py @@ -274,7 +274,7 @@ def add_metatags(context): # Get meta tags from Website Route meta # they can override the defaults set above - route = context.route + route = context.path if route == '': # homepage route = frappe.db.get_single_value('Website Settings', 'home_page') diff --git a/frappe/website/doctype/blog_post/blog_post.json b/frappe/website/doctype/blog_post/blog_post.json index 28d90c2301..909cecf867 100644 --- a/frappe/website/doctype/blog_post/blog_post.json +++ b/frappe/website/doctype/blog_post/blog_post.json @@ -200,7 +200,7 @@ "is_published_field": "published", "links": [], "max_attachments": 5, - "modified": "2020-12-15 15:20:43.616046", + "modified": "2020-12-23 14:28:36.311389", "modified_by": "Administrator", "module": "Website", "name": "Blog Post", diff --git a/frappe/website/doctype/website_route_meta/test_website_route_meta.py b/frappe/website/doctype/website_route_meta/test_website_route_meta.py index c02dc398bf..0ccedb0ca4 100644 --- a/frappe/website/doctype/website_route_meta/test_website_route_meta.py +++ b/frappe/website/doctype/website_route_meta/test_website_route_meta.py @@ -8,6 +8,7 @@ import unittest from frappe.utils import set_request from frappe.website.render import render +test_dependencies = ['Blog Post'] class TestWebsiteRouteMeta(unittest.TestCase): def test_meta_tag_generation(self): blogs = frappe.get_all('Blog Post', fields=['name', 'route'],