# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors # MIT License. See license.txt from __future__ import unicode_literals import unittest from frappe.utils import evaluate_filters class TestFilters(unittest.TestCase): def test_simple_dict(self): self.assertTrue(evaluate_filters({'doctype': 'User', 'status': 'Open'}, {'status': 'Open'})) self.assertFalse(evaluate_filters({'doctype': 'User', 'status': 'Open'}, {'status': 'Closed'})) def test_multiple_dict(self): self.assertTrue(evaluate_filters({'doctype': 'User', 'status': 'Open', 'name': 'Test 1'}, {'status': 'Open', 'name':'Test 1'})) self.assertFalse(evaluate_filters({'doctype': 'User', 'status': 'Open', 'name': 'Test 1'}, {'status': 'Closed', 'name': 'Test 1'})) def test_list_filters(self): self.assertTrue(evaluate_filters({'doctype': 'User', 'status': 'Open', 'name': 'Test 1'}, [{'status': 'Open'}, {'name':'Test 1'}])) self.assertFalse(evaluate_filters({'doctype': 'User', 'status': 'Open', 'name': 'Test 1'}, [{'status': 'Open'}, {'name':'Test 2'}])) def test_list_filters_as_list(self): self.assertTrue(evaluate_filters({'doctype': 'User', 'status': 'Open', 'name': 'Test 1'}, [['status', '=', 'Open'], ['name', '=', 'Test 1']])) self.assertFalse(evaluate_filters({'doctype': 'User', 'status': 'Open', 'name': 'Test 1'}, [['status', '=', 'Open'], ['name', '=', 'Test 2']])) def test_lt_gt(self): self.assertTrue(evaluate_filters({'doctype': 'User', 'status': 'Open', 'age': 20}, {'status': 'Open', 'age': ('>', 10)})) self.assertFalse(evaluate_filters({'doctype': 'User', 'status': 'Open', 'age': 20}, {'status': 'Open', 'age': ('>', 30)}))