diff --git a/frappe/__init__.py b/frappe/__init__.py index fdf6079220..c6e762919f 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -435,12 +435,8 @@ def get_roles(username=None): """Returns roles of current user.""" if not local.session: return ["Guest"] - - if username: - import frappe.permissions - return frappe.permissions.get_roles(username) - else: - return get_user().get_roles() + import frappe.permissions + return frappe.permissions.get_roles(username or local.session.user) def get_request_header(key, default=None): """Return HTTP request header. diff --git a/frappe/auth.py b/frappe/auth.py index 64fea36748..998e97fe24 100644 --- a/frappe/auth.py +++ b/frappe/auth.py @@ -338,7 +338,7 @@ class CookieManager: self.set_cookie("country", frappe.session.session_country) def set_cookie(self, key, value, expires=None, secure=False, httponly=False, samesite="Lax"): - if not secure: + if not secure and hasattr(frappe.local, 'request'): secure = frappe.local.request.scheme == "https" self.cookies[key] = { "value": value, diff --git a/frappe/data_migration/doctype/data_migration_run/test_data_migration_run.py b/frappe/data_migration/doctype/data_migration_run/test_data_migration_run.py index ba4a255b97..c6c3ea138c 100644 --- a/frappe/data_migration/doctype/data_migration_run/test_data_migration_run.py +++ b/frappe/data_migration/doctype/data_migration_run/test_data_migration_run.py @@ -108,7 +108,7 @@ def create_plan(): 'connector_name': 'Local Connector', 'connector_type': 'Frappe', # connect to same host. - 'hostname': frappe.conf.host_name, + 'hostname': frappe.conf.host_name or frappe.utils.get_site_url(frappe.local.site), 'username': 'Administrator', - 'password': 'admin' + 'password': frappe.conf.get("admin_password") or 'admin' }).insert(ignore_if_duplicate=True) diff --git a/frappe/email/doctype/email_account/email_account.py b/frappe/email/doctype/email_account/email_account.py index cf8c6e80c6..29cd890bf1 100755 --- a/frappe/email/doctype/email_account/email_account.py +++ b/frappe/email/doctype/email_account/email_account.py @@ -251,7 +251,7 @@ class EmailAccount(Document): email_server = None if frappe.local.flags.in_test: - incoming_mails = test_mails + incoming_mails = test_mails or [] else: email_sync_rule = self.build_email_sync_rule() diff --git a/frappe/tests/test_scheduler.py b/frappe/tests/test_scheduler.py index e554fd23be..30818e6f17 100644 --- a/frappe/tests/test_scheduler.py +++ b/frappe/tests/test_scheduler.py @@ -49,7 +49,7 @@ class TestScheduler(TestCase): # 2nd job not loaded self.assertFalse(job.enqueue()) - job.delete() + frappe.db.sql('DELETE FROM `tabScheduled Job Log` WHERE `scheduled_job_type`=%s', job.name) def test_is_dormant(self): self.assertTrue(is_dormant(check_time= get_datetime('2100-01-01 00:00:00'))) diff --git a/frappe/workflow/doctype/workflow/test_workflow.py b/frappe/workflow/doctype/workflow/test_workflow.py index 2719bc7cf0..84adc3a096 100644 --- a/frappe/workflow/doctype/workflow/test_workflow.py +++ b/frappe/workflow/doctype/workflow/test_workflow.py @@ -6,6 +6,9 @@ import frappe import unittest from frappe.utils import random_string from frappe.model.workflow import apply_workflow, WorkflowTransitionError, WorkflowPermissionError, get_common_transition_actions +from frappe.test_runner import make_test_records + +make_test_records("User") class TestWorkflow(unittest.TestCase): def setUp(self): @@ -78,7 +81,7 @@ class TestWorkflow(unittest.TestCase): frappe.set_user('test2@example.com') doc = self.test_default_condition() - workflow_actions = frappe.get_all('Workflow Action', fields=['status']) + workflow_actions = frappe.get_all('Workflow Action', fields=['status', 'reference_name']) self.assertEqual(len(workflow_actions), 1) # test if status of workflow actions are updated on approval @@ -102,6 +105,9 @@ class TestWorkflow(unittest.TestCase): todo.reload() self.assertEqual(todo.docstatus, 1) + self.workflow.states[1].doc_status = 0 + self.workflow.save() + def test_if_workflow_set_on_action(self): self.workflow.states[1].doc_status = 1 self.workflow.save() @@ -111,12 +117,17 @@ class TestWorkflow(unittest.TestCase): self.assertEqual(todo.docstatus, 1) self.assertEqual(todo.workflow_state, 'Approved') + self.workflow.states[1].doc_status = 0 + self.workflow.save() + def create_todo_workflow(): if frappe.db.exists('Workflow', 'Test ToDo'): return frappe.get_doc('Workflow', 'Test ToDo').save(ignore_permissions=True) else: frappe.get_doc(dict(doctype='Role', role_name='Test Approver')).insert(ignore_if_duplicate=True) + frappe.db.commit() + frappe.cache().hdel('roles', frappe.session.user) workflow = frappe.new_doc('Workflow') workflow.workflow_name = 'Test ToDo' workflow.document_type = 'ToDo'