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