# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors # MIT License. See license.txt from __future__ import unicode_literals import frappe, unittest from frappe.defaults import * class TestDefaults(unittest.TestCase): 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)