seitime-frappe/frappe/tests/test_defaults.py
2023-04-10 13:58:06 +05:30

112 lines
3.6 KiB
Python

# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# License: MIT. See LICENSE
import frappe
from frappe.core.doctype.user_permission.test_user_permission import create_user
from frappe.defaults import *
from frappe.query_builder.utils import db_type_is
from frappe.tests.test_query_builder import run_only_if
from frappe.tests.utils import FrappeTestCase
class TestDefaults(FrappeTestCase):
def test_global(self):
clear_user_default("key1")
set_global_default("key1", "value1")
self.assertEqual(get_global_default("key1"), "value1")
set_global_default("key1", "value2")
self.assertEqual(get_global_default("key1"), "value2")
add_global_default("key1", "value3")
self.assertEqual(get_global_default("key1"), "value2")
self.assertEqual(get_defaults()["key1"], ["value2", "value3"])
self.assertEqual(get_user_default_as_list("key1"), ["value2", "value3"])
def test_user(self):
set_user_default("key1", "2value1")
self.assertEqual(get_user_default_as_list("key1"), ["2value1"])
set_user_default("key1", "2value2")
self.assertEqual(get_user_default("key1"), "2value2")
add_user_default("key1", "3value3")
self.assertEqual(get_user_default("key1"), "2value2")
self.assertEqual(get_user_default_as_list("key1"), ["2value2", "3value3"])
def test_global_if_not_user(self):
set_global_default("key4", "value4")
self.assertEqual(get_user_default("key4"), "value4")
def test_clear(self):
set_user_default("key5", "value5")
self.assertEqual(get_user_default("key5"), "value5")
clear_user_default("key5")
self.assertEqual(get_user_default("key5"), None)
def test_clear_global(self):
set_global_default("key6", "value6")
self.assertEqual(get_user_default("key6"), "value6")
clear_default("key6", value="value6")
self.assertEqual(get_user_default("key6"), None)
def test_user_permission_on_defaults(self):
self.assertEqual(get_global_default("language"), "en")
self.assertEqual(get_user_default("language"), "en")
self.assertEqual(get_user_default_as_list("language"), ["en"])
old_user = frappe.session.user
user = "test@example.com"
frappe.set_user(user)
perm_doc = frappe.get_doc(
dict(
doctype="User Permission",
user=frappe.session.user,
allow="Language",
for_value="en-GB",
)
).insert(ignore_permissions=True)
self.assertEqual(get_global_default("language"), None)
self.assertEqual(get_user_default("language"), None)
self.assertEqual(get_user_default_as_list("language"), [])
frappe.delete_doc("User Permission", perm_doc.name)
frappe.set_user(old_user)
@run_only_if(db_type_is.MARIADB)
def test_user_permission_defaults(self):
# Create user permission
create_user("user_default_test@example.com", "Blogger")
frappe.set_user("user_default_test@example.com")
set_global_default("Country", "")
clear_user_default("Country")
perm_doc = frappe.get_doc(
dict(
doctype="User Permission",
user=frappe.session.user,
allow="Country",
for_value="India",
)
).insert(ignore_permissions=True)
frappe.db.set_value("User Permission", perm_doc.name, "is_default", 1)
set_global_default("Country", "United States")
self.assertEqual(get_user_default("Country"), "India")
frappe.db.set_value("User Permission", perm_doc.name, "is_default", 0)
clear_user_default("Country")
self.assertEqual(get_user_default("Country"), None)
perm_doc = frappe.get_doc(
dict(
doctype="User Permission",
user=frappe.session.user,
allow="Country",
for_value="United States",
)
).insert(ignore_permissions=True)
self.assertEqual(get_user_default("Country"), "United States")