blob: 05541d16887e806a73ac3b2e6401edba69f15c73 [file] [log] [blame]
Ankush Menat62fc5442021-09-10 12:46:35 +05301import unittest
2from functools import partial
3
4from erpnext.controllers import queries
5
6
7def add_default_params(func, doctype):
8 return partial(
9 func, doctype=doctype, txt="", searchfield="name", start=0, page_len=20, filters=None
10 )
11
12
13class TestQueries(unittest.TestCase):
14
15 # All tests are based on doctype/test_records.json
16
17 def assert_nested_in(self, item, container):
18 self.assertIn(item, [vals for tuples in container for vals in tuples])
19
20 def test_employee_query(self):
21 query = add_default_params(queries.employee_query, "Employee")
22
23 self.assertGreaterEqual(len(query(txt="_Test Employee")), 3)
24 self.assertGreaterEqual(len(query(txt="_Test Employee 1")), 1)
25
26 def test_lead_query(self):
27 query = add_default_params(queries.lead_query, "Lead")
28
29 self.assertGreaterEqual(len(query(txt="_Test Lead")), 4)
30 self.assertEqual(len(query(txt="_Test Lead 4")), 1)
31
32 def test_customer_query(self):
33 query = add_default_params(queries.customer_query, "Customer")
34
35 self.assertGreaterEqual(len(query(txt="_Test Customer")), 7)
36 self.assertGreaterEqual(len(query(txt="_Test Customer USD")), 1)
37
38 def test_supplier_query(self):
39 query = add_default_params(queries.supplier_query, "Supplier")
40
41 self.assertGreaterEqual(len(query(txt="_Test Supplier")), 7)
42 self.assertGreaterEqual(len(query(txt="_Test Supplier USD")), 1)
43
44 def test_item_query(self):
45 query = add_default_params(queries.item_query, "Item")
46
47 self.assertGreaterEqual(len(query(txt="_Test Item")), 7)
48 self.assertEqual(len(query(txt="_Test Item Home Desktop 100 3")), 1)
49
50 fg_item = "_Test FG Item"
51 stock_items = query(txt=fg_item, filters={"is_stock_item": 1})
52 self.assert_nested_in("_Test FG Item", stock_items)
53
54 bundled_stock_items = query(txt="_test product bundle item 5", filters={"is_stock_item": 1})
55 self.assertEqual(len(bundled_stock_items), 0)
56
57 def test_bom_qury(self):
58 query = add_default_params(queries.bom, "BOM")
59
60 self.assertGreaterEqual(len(query(txt="_Test Item Home Desktop Manufactured")), 1)
61
62 def test_project_query(self):
63 query = add_default_params(queries.get_project_name, "BOM")
64
65 self.assertGreaterEqual(len(query(txt="_Test Project")), 1)
66
67 def test_account_query(self):
68 query = add_default_params(queries.get_account_list, "Account")
69
70 debtor_accounts = query(txt="Debtors", filters={"company": "_Test Company"})
71 self.assert_nested_in("Debtors - _TC", debtor_accounts)
72
73 def test_income_account_query(self):
74 query = add_default_params(queries.get_income_account, "Account")
75
76 self.assertGreaterEqual(len(query(filters={"company": "_Test Company"})), 1)
77
78 def test_expense_account_query(self):
79 query = add_default_params(queries.get_expense_account, "Account")
80
81 self.assertGreaterEqual(len(query(filters={"company": "_Test Company"})), 1)
82
83 def test_warehouse_query(self):
84 query = add_default_params(queries.warehouse_query, "Account")
85
86 wh = query(filters=[["Bin", "item_code", "=", "_Test Item"]])
87 self.assertGreaterEqual(len(wh), 1)