Skip to content

Commit

Permalink
test: basic tests for controllers/queries (frappe#27422)
Browse files Browse the repository at this point in the history
  • Loading branch information
ankush authored Sep 10, 2021
1 parent 3da3438 commit 62fc544
Show file tree
Hide file tree
Showing 2 changed files with 88 additions and 1 deletion.
2 changes: 1 addition & 1 deletion erpnext/controllers/queries.py
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,7 @@ def bom(doctype, txt, searchfield, start, page_len, filters):
@frappe.validate_and_sanitize_search_inputs
def get_project_name(doctype, txt, searchfield, start, page_len, filters):
cond = ''
if filters.get('customer'):
if filters and filters.get('customer'):
cond = """(`tabProject`.customer = %s or
ifnull(`tabProject`.customer,"")="") and""" %(frappe.db.escape(filters.get("customer")))

Expand Down
87 changes: 87 additions & 0 deletions erpnext/controllers/tests/test_queries.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
import unittest
from functools import partial

from erpnext.controllers import queries


def add_default_params(func, doctype):
return partial(
func, doctype=doctype, txt="", searchfield="name", start=0, page_len=20, filters=None
)


class TestQueries(unittest.TestCase):

# All tests are based on doctype/test_records.json

def assert_nested_in(self, item, container):
self.assertIn(item, [vals for tuples in container for vals in tuples])

def test_employee_query(self):
query = add_default_params(queries.employee_query, "Employee")

self.assertGreaterEqual(len(query(txt="_Test Employee")), 3)
self.assertGreaterEqual(len(query(txt="_Test Employee 1")), 1)

def test_lead_query(self):
query = add_default_params(queries.lead_query, "Lead")

self.assertGreaterEqual(len(query(txt="_Test Lead")), 4)
self.assertEqual(len(query(txt="_Test Lead 4")), 1)

def test_customer_query(self):
query = add_default_params(queries.customer_query, "Customer")

self.assertGreaterEqual(len(query(txt="_Test Customer")), 7)
self.assertGreaterEqual(len(query(txt="_Test Customer USD")), 1)

def test_supplier_query(self):
query = add_default_params(queries.supplier_query, "Supplier")

self.assertGreaterEqual(len(query(txt="_Test Supplier")), 7)
self.assertGreaterEqual(len(query(txt="_Test Supplier USD")), 1)

def test_item_query(self):
query = add_default_params(queries.item_query, "Item")

self.assertGreaterEqual(len(query(txt="_Test Item")), 7)
self.assertEqual(len(query(txt="_Test Item Home Desktop 100 3")), 1)

fg_item = "_Test FG Item"
stock_items = query(txt=fg_item, filters={"is_stock_item": 1})
self.assert_nested_in("_Test FG Item", stock_items)

bundled_stock_items = query(txt="_test product bundle item 5", filters={"is_stock_item": 1})
self.assertEqual(len(bundled_stock_items), 0)

def test_bom_qury(self):
query = add_default_params(queries.bom, "BOM")

self.assertGreaterEqual(len(query(txt="_Test Item Home Desktop Manufactured")), 1)

def test_project_query(self):
query = add_default_params(queries.get_project_name, "BOM")

self.assertGreaterEqual(len(query(txt="_Test Project")), 1)

def test_account_query(self):
query = add_default_params(queries.get_account_list, "Account")

debtor_accounts = query(txt="Debtors", filters={"company": "_Test Company"})
self.assert_nested_in("Debtors - _TC", debtor_accounts)

def test_income_account_query(self):
query = add_default_params(queries.get_income_account, "Account")

self.assertGreaterEqual(len(query(filters={"company": "_Test Company"})), 1)

def test_expense_account_query(self):
query = add_default_params(queries.get_expense_account, "Account")

self.assertGreaterEqual(len(query(filters={"company": "_Test Company"})), 1)

def test_warehouse_query(self):
query = add_default_params(queries.warehouse_query, "Account")

wh = query(filters=[["Bin", "item_code", "=", "_Test Item"]])
self.assertGreaterEqual(len(wh), 1)

0 comments on commit 62fc544

Please sign in to comment.