From c5e139a5421bced4b2607e68126c635848c5b8ad Mon Sep 17 00:00:00 2001 From: Marica Date: Tue, 13 Oct 2020 16:53:10 +0530 Subject: [PATCH] fix: Travis (#23606) * fix: Rename `make_supplier_quotation` to `make_supplier_quotation_from_rfq` in missing places * fix: Item Barcode and Test * fix: Over Receipt on subcontracting test * fix: POS Invoice and Loyalty Program Tests * fix: POS serialized item test and subcontracting exploded items in PO * fix: Subcontracting test considering sourced_by_supplier items * fix: Make only one Additonal Salary List with overwrite set --- .../loyalty_program/test_loyalty_program.py | 157 +++++++++--------- .../test_pos_closing_entry.py | 4 +- .../doctype/pos_invoice/pos_invoice.py | 3 +- .../doctype/pos_invoice/test_pos_invoice.py | 35 ++-- .../purchase_order/test_purchase_order.py | 6 +- .../test_request_for_quotation.py | 10 +- erpnext/demo/user/purchase.py | 4 +- erpnext/manufacturing/doctype/bom/test_bom.py | 1 - .../doctype/salary_slip/test_salary_slip.py | 3 +- erpnext/stock/doctype/item/item.py | 3 +- erpnext/stock/doctype/item/test_item.py | 2 +- .../purchase_receipt/test_purchase_receipt.py | 15 +- 12 files changed, 118 insertions(+), 125 deletions(-) diff --git a/erpnext/accounts/doctype/loyalty_program/test_loyalty_program.py b/erpnext/accounts/doctype/loyalty_program/test_loyalty_program.py index ee73ccaa61..5278d8b241 100644 --- a/erpnext/accounts/doctype/loyalty_program/test_loyalty_program.py +++ b/erpnext/accounts/doctype/loyalty_program/test_loyalty_program.py @@ -195,88 +195,91 @@ def create_sales_invoice_record(qty=1): def create_records(): # create a new loyalty Account - if frappe.db.exists("Account", "Loyalty - _TC"): - return - - frappe.get_doc({ - "doctype": "Account", - "account_name": "Loyalty", - "parent_account": "Direct Expenses - _TC", - "company": "_Test Company", - "is_group": 0, - "account_type": "Expense Account", - }).insert() + if not frappe.db.exists("Account", "Loyalty - _TC"): + frappe.get_doc({ + "doctype": "Account", + "account_name": "Loyalty", + "parent_account": "Direct Expenses - _TC", + "company": "_Test Company", + "is_group": 0, + "account_type": "Expense Account", + }).insert() # create a new loyalty program Single tier - frappe.get_doc({ - "doctype": "Loyalty Program", - "loyalty_program_name": "Test Single Loyalty", - "auto_opt_in": 1, - "from_date": today(), - "loyalty_program_type": "Single Tier Program", - "conversion_factor": 1, - "expiry_duration": 10, - "company": "_Test Company", - "cost_center": "Main - _TC", - "expense_account": "Loyalty - _TC", - "collection_rules": [{ - 'tier_name': 'Silver', - 'collection_factor': 1000, - 'min_spent': 1000 - }] - }).insert() - - # create a new customer - frappe.get_doc({ - "customer_group": "_Test Customer Group", - "customer_name": "Test Loyalty Customer", - "customer_type": "Individual", - "doctype": "Customer", - "territory": "_Test Territory" - }).insert() - - # create a new loyalty program Multiple tier - frappe.get_doc({ - "doctype": "Loyalty Program", - "loyalty_program_name": "Test Multiple Loyalty", - "auto_opt_in": 1, - "from_date": today(), - "loyalty_program_type": "Multiple Tier Program", - "conversion_factor": 1, - "expiry_duration": 10, - "company": "_Test Company", - "cost_center": "Main - _TC", - "expense_account": "Loyalty - _TC", - "collection_rules": [ - { + if not frappe.db.exists("Loyalty Program","Test Single Loyalty"): + frappe.get_doc({ + "doctype": "Loyalty Program", + "loyalty_program_name": "Test Single Loyalty", + "auto_opt_in": 1, + "from_date": today(), + "loyalty_program_type": "Single Tier Program", + "conversion_factor": 1, + "expiry_duration": 10, + "company": "_Test Company", + "cost_center": "Main - _TC", + "expense_account": "Loyalty - _TC", + "collection_rules": [{ 'tier_name': 'Silver', 'collection_factor': 1000, - 'min_spent': 10000 - }, - { - 'tier_name': 'Gold', - 'collection_factor': 1000, - 'min_spent': 19000 - } - ] - }).insert() + 'min_spent': 1000 + }] + }).insert() + + # create a new customer + if not frappe.db.exists("Customer","Test Loyalty Customer"): + frappe.get_doc({ + "customer_group": "_Test Customer Group", + "customer_name": "Test Loyalty Customer", + "customer_type": "Individual", + "doctype": "Customer", + "territory": "_Test Territory" + }).insert() + + # create a new loyalty program Multiple tier + if not frappe.db.exists("Loyalty Program","Test Multiple Loyalty"): + frappe.get_doc({ + "doctype": "Loyalty Program", + "loyalty_program_name": "Test Multiple Loyalty", + "auto_opt_in": 1, + "from_date": today(), + "loyalty_program_type": "Multiple Tier Program", + "conversion_factor": 1, + "expiry_duration": 10, + "company": "_Test Company", + "cost_center": "Main - _TC", + "expense_account": "Loyalty - _TC", + "collection_rules": [ + { + 'tier_name': 'Silver', + 'collection_factor': 1000, + 'min_spent': 10000 + }, + { + 'tier_name': 'Gold', + 'collection_factor': 1000, + 'min_spent': 19000 + } + ] + }).insert() # create an item - item = frappe.get_doc({ - "doctype": "Item", - "item_code": "Loyal Item", - "item_name": "Loyal Item", - "item_group": "All Item Groups", - "company": "_Test Company", - "is_stock_item": 1, - "opening_stock": 100, - "valuation_rate": 10000, - }).insert() + if not frappe.db.exists("Item", "Loyal Item"): + frappe.get_doc({ + "doctype": "Item", + "item_code": "Loyal Item", + "item_name": "Loyal Item", + "item_group": "All Item Groups", + "company": "_Test Company", + "is_stock_item": 1, + "opening_stock": 100, + "valuation_rate": 10000, + }).insert() # create item price - frappe.get_doc({ - "doctype": "Item Price", - "price_list": "Standard Selling", - "item_code": item.item_code, - "price_list_rate": 10000 - }).insert() + if not frappe.db.exists("Item Price", {"price_list": "Standard Selling", "item_code": "Loyal Item"}): + frappe.get_doc({ + "doctype": "Item Price", + "price_list": "Standard Selling", + "item_code": "Loyal Item", + "price_list_rate": 10000 + }).insert() diff --git a/erpnext/accounts/doctype/pos_closing_entry/test_pos_closing_entry.py b/erpnext/accounts/doctype/pos_closing_entry/test_pos_closing_entry.py index aa6a388df5..8de54d5bde 100644 --- a/erpnext/accounts/doctype/pos_closing_entry/test_pos_closing_entry.py +++ b/erpnext/accounts/doctype/pos_closing_entry/test_pos_closing_entry.py @@ -45,7 +45,7 @@ class TestPOSClosingEntry(unittest.TestCase): frappe.set_user("Administrator") frappe.db.sql("delete from `tabPOS Profile`") -def init_user_and_profile(): +def init_user_and_profile(**args): user = 'test@example.com' test_user = frappe.get_doc('User', user) @@ -53,7 +53,7 @@ def init_user_and_profile(): test_user.add_roles(*roles) frappe.set_user(user) - pos_profile = make_pos_profile() + pos_profile = make_pos_profile(**args) pos_profile.append('applicable_for_users', { 'default': 1, 'user': user diff --git a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py index ba68df7673..1669ca4094 100644 --- a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py +++ b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py @@ -139,7 +139,8 @@ class POSInvoice(SalesInvoice): frappe.throw(_("At least one mode of payment is required for POS invoice.")) def validate_change_account(self): - if frappe.db.get_value("Account", self.account_for_change_amount, "company") != self.company: + if self.change_amount and self.account_for_change_amount and \ + frappe.db.get_value("Account", self.account_for_change_amount, "company") != self.company: frappe.throw(_("The selected change account {} doesn't belongs to Company {}.").format(self.account_for_change_amount, self.company)) def validate_change_amount(self): diff --git a/erpnext/accounts/doctype/pos_invoice/test_pos_invoice.py b/erpnext/accounts/doctype/pos_invoice/test_pos_invoice.py index e08af952dc..c179360b01 100644 --- a/erpnext/accounts/doctype/pos_invoice/test_pos_invoice.py +++ b/erpnext/accounts/doctype/pos_invoice/test_pos_invoice.py @@ -8,6 +8,7 @@ import unittest, copy, time from erpnext.accounts.doctype.pos_profile.test_pos_profile import make_pos_profile from erpnext.accounts.doctype.pos_invoice.pos_invoice import make_sales_return from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry +from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import make_purchase_receipt class TestPOSInvoice(unittest.TestCase): def test_timestamp_change(self): @@ -222,29 +223,29 @@ class TestPOSInvoice(unittest.TestCase): from erpnext.stock.doctype.stock_entry.test_stock_entry import make_serialized_item from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos - se = make_serialized_item(company='_Test Company with perpetual inventory', - target_warehouse="Stores - TCP1", cost_center='Main - TCP1', expense_account='Cost of Goods Sold - TCP1') + se = make_serialized_item(company='_Test Company', + target_warehouse="Stores - _TC", cost_center='Main - _TC', expense_account='Cost of Goods Sold - _TC') serial_nos = get_serial_nos(se.get("items")[0].serial_no) - pos = create_pos_invoice(company='_Test Company with perpetual inventory', debit_to='Debtors - TCP1', - account_for_change_amount='Cash - TCP1', warehouse='Stores - TCP1', income_account='Sales - TCP1', - expense_account='Cost of Goods Sold - TCP1', cost_center='Main - TCP1', + pos = create_pos_invoice(company='_Test Company', debit_to='Debtors - _TC', + account_for_change_amount='Cash - _TC', warehouse='Stores - _TC', income_account='Sales - _TC', + expense_account='Cost of Goods Sold - _TC', cost_center='Main - _TC', item=se.get("items")[0].item_code, rate=1000, do_not_save=1) pos.get("items")[0].serial_no = serial_nos[0] - pos.append("payments", {'mode_of_payment': 'Bank Draft', 'account': '_Test Bank - TCP1', 'amount': 1000}) + pos.append("payments", {'mode_of_payment': 'Bank Draft', 'account': '_Test Bank - _TC', 'amount': 1000}) pos.insert() pos.submit() - pos2 = create_pos_invoice(company='_Test Company with perpetual inventory', debit_to='Debtors - TCP1', - account_for_change_amount='Cash - TCP1', warehouse='Stores - TCP1', income_account='Sales - TCP1', - expense_account='Cost of Goods Sold - TCP1', cost_center='Main - TCP1', + pos2 = create_pos_invoice(company='_Test Company', debit_to='Debtors - _TC', + account_for_change_amount='Cash - _TC', warehouse='Stores - _TC', income_account='Sales - _TC', + expense_account='Cost of Goods Sold - _TC', cost_center='Main - _TC', item=se.get("items")[0].item_code, rate=1000, do_not_save=1) pos2.get("items")[0].serial_no = serial_nos[0] - pos2.append("payments", {'mode_of_payment': 'Bank Draft', 'account': '_Test Bank - TCP1', 'amount': 1000}) + pos2.append("payments", {'mode_of_payment': 'Bank Draft', 'account': '_Test Bank - _TC', 'amount': 1000}) self.assertRaises(frappe.ValidationError, pos2.insert) @@ -286,7 +287,7 @@ class TestPOSInvoice(unittest.TestCase): after_redeem_lp_details = get_loyalty_program_details_with_points(inv.customer, company=inv.company, loyalty_program=inv.loyalty_program) self.assertEqual(after_redeem_lp_details.loyalty_points, 9) - + def test_merging_into_sales_invoice_with_discount(self): from erpnext.accounts.doctype.pos_closing_entry.test_pos_closing_entry import init_user_and_profile from erpnext.accounts.doctype.pos_invoice_merge_log.pos_invoice_merge_log import merge_pos_invoices @@ -295,7 +296,7 @@ class TestPOSInvoice(unittest.TestCase): test_user, pos_profile = init_user_and_profile() pos_inv = create_pos_invoice(rate=300, additional_discount_percentage=10, do_not_submit=1) pos_inv.append('payments', { - 'mode_of_payment': 'Cash', 'account': 'Cash - _TC', 'amount': 300 + 'mode_of_payment': 'Cash', 'account': 'Cash - _TC', 'amount': 270 }) pos_inv.submit() @@ -309,9 +310,9 @@ class TestPOSInvoice(unittest.TestCase): pos_inv.load_from_db() rounded_total = frappe.db.get_value("Sales Invoice", pos_inv.consolidated_invoice, "rounded_total") - self.assertEqual(rounded_total, 3500) + self.assertEqual(rounded_total, 3470) frappe.set_user("Administrator") - + def test_merging_into_sales_invoice_with_discount_and_inclusive_tax(self): from erpnext.accounts.doctype.pos_closing_entry.test_pos_closing_entry import init_user_and_profile from erpnext.accounts.doctype.pos_invoice_merge_log.pos_invoice_merge_log import merge_pos_invoices @@ -361,7 +362,7 @@ class TestPOSInvoice(unittest.TestCase): if not frappe.db.get_single_value("Selling Settings", "validate_selling_price"): frappe.db.set_value("Selling Settings", "Selling Settings", "validate_selling_price", 1) - make_stock_entry(item_code="_Test Item", target="_Test Warehouse - _TC", qty=1, basic_rate=300) + make_purchase_receipt(item_code="_Test Item", warehouse="_Test Warehouse - _TC", qty=1, rate=300) frappe.db.sql("delete from `tabPOS Invoice`") test_user, pos_profile = init_user_and_profile() pos_inv = create_pos_invoice(rate=300, do_not_submit=1) @@ -413,8 +414,6 @@ def create_pos_invoice(**args): pos_inv.is_pos = 1 pos_inv.pos_profile = args.pos_profile or pos_profile.name - pos_inv.set_missing_values() - if args.posting_date: pos_inv.set_posting_time = 1 pos_inv.posting_date = args.posting_date or frappe.utils.nowdate() @@ -428,6 +427,8 @@ def create_pos_invoice(**args): pos_inv.conversion_rate = args.conversion_rate or 1 pos_inv.account_for_change_amount = args.account_for_change_amount or "Cash - _TC" + pos_inv.set_missing_values() + pos_inv.append("items", { "item_code": args.item or args.item_code or "_Test Item", "warehouse": args.warehouse or "_Test Warehouse - _TC", diff --git a/erpnext/buying/doctype/purchase_order/test_purchase_order.py b/erpnext/buying/doctype/purchase_order/test_purchase_order.py index 158799ce63..7c8ae6cfb8 100644 --- a/erpnext/buying/doctype/purchase_order/test_purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/test_purchase_order.py @@ -651,12 +651,12 @@ class TestPurchaseOrder(unittest.TestCase): make_subcontracted_item(item_code) po = create_purchase_order(item_code=item_code, qty=1, - is_subcontracted="Yes", supplier_warehouse="_Test Warehouse 1 - _TC") + is_subcontracted="Yes", supplier_warehouse="_Test Warehouse 1 - _TC", include_exploded_items=1) name = frappe.db.get_value('BOM', {'item': item_code}, 'name') bom = frappe.get_doc('BOM', name) - exploded_items = sorted([d.item_code for d in bom.exploded_items]) + exploded_items = sorted([d.item_code for d in bom.exploded_items if not d.get('sourced_by_supplier')]) supplied_items = sorted([d.rm_item_code for d in po.supplied_items]) self.assertEquals(exploded_items, supplied_items) @@ -664,7 +664,7 @@ class TestPurchaseOrder(unittest.TestCase): is_subcontracted="Yes", supplier_warehouse="_Test Warehouse 1 - _TC", include_exploded_items=0) supplied_items1 = sorted([d.rm_item_code for d in po1.supplied_items]) - bom_items = sorted([d.item_code for d in bom.items]) + bom_items = sorted([d.item_code for d in bom.items if not d.get('sourced_by_supplier')]) self.assertEquals(supplied_items1, bom_items) diff --git a/erpnext/buying/doctype/request_for_quotation/test_request_for_quotation.py b/erpnext/buying/doctype/request_for_quotation/test_request_for_quotation.py index 019cefc0bd..ea38129a70 100644 --- a/erpnext/buying/doctype/request_for_quotation/test_request_for_quotation.py +++ b/erpnext/buying/doctype/request_for_quotation/test_request_for_quotation.py @@ -9,7 +9,7 @@ import frappe from frappe.utils import nowdate from erpnext.stock.doctype.item.test_item import make_item from erpnext.templates.pages.rfq import check_supplier_has_docname_access -from erpnext.buying.doctype.request_for_quotation.request_for_quotation import make_supplier_quotation +from erpnext.buying.doctype.request_for_quotation.request_for_quotation import make_supplier_quotation_from_rfq from erpnext.buying.doctype.request_for_quotation.request_for_quotation import create_supplier_quotation from erpnext.crm.doctype.opportunity.test_opportunity import make_opportunity from erpnext.crm.doctype.opportunity.opportunity import make_request_for_quotation as make_rfq @@ -22,7 +22,7 @@ class TestRequestforQuotation(unittest.TestCase): self.assertEqual(rfq.get('suppliers')[1].quote_status, 'Pending') # Submit the first supplier quotation - sq = make_supplier_quotation(rfq.name, rfq.get('suppliers')[0].supplier) + sq = make_supplier_quotation_from_rfq(rfq.name, for_supplier=rfq.get('suppliers')[0].supplier) sq.submit() # No Quote first supplier quotation @@ -37,10 +37,10 @@ class TestRequestforQuotation(unittest.TestCase): def test_make_supplier_quotation(self): rfq = make_request_for_quotation() - sq = make_supplier_quotation(rfq.name, rfq.get('suppliers')[0].supplier) + sq = make_supplier_quotation_from_rfq(rfq.name, for_supplier=rfq.get('suppliers')[0].supplier) sq.submit() - sq1 = make_supplier_quotation(rfq.name, rfq.get('suppliers')[1].supplier) + sq1 = make_supplier_quotation_from_rfq(rfq.name, for_supplier=rfq.get('suppliers')[1].supplier) sq1.submit() self.assertEqual(sq.supplier, rfq.get('suppliers')[0].supplier) @@ -62,7 +62,7 @@ class TestRequestforQuotation(unittest.TestCase): rfq = make_request_for_quotation(supplier_data=supplier_wt_appos) - sq = make_supplier_quotation(rfq.name, supplier_wt_appos[0].get("supplier")) + sq = make_supplier_quotation_from_rfq(rfq.name, for_supplier=supplier_wt_appos[0].get("supplier")) sq.submit() frappe.form_dict = frappe.local("form_dict") diff --git a/erpnext/demo/user/purchase.py b/erpnext/demo/user/purchase.py index 86757dfaaa..b7aca79cf9 100644 --- a/erpnext/demo/user/purchase.py +++ b/erpnext/demo/user/purchase.py @@ -11,7 +11,7 @@ from erpnext.accounts.party import get_party_account_currency from erpnext.exceptions import InvalidCurrency from erpnext.stock.doctype.material_request.material_request import make_request_for_quotation from erpnext.buying.doctype.request_for_quotation.request_for_quotation import \ - make_supplier_quotation as make_quotation_from_rfq + make_supplier_quotation_from_rfq def work(): frappe.set_user(frappe.db.get_global('demo_purchase_user')) @@ -44,7 +44,7 @@ def work(): rfq = frappe.get_doc('Request for Quotation', rfq.name) for supplier in rfq.suppliers: - supplier_quotation = make_quotation_from_rfq(rfq.name, supplier.supplier) + supplier_quotation = make_supplier_quotation_from_rfq(rfq.name, for_supplier=supplier.supplier) supplier_quotation.save() supplier_quotation.submit() diff --git a/erpnext/manufacturing/doctype/bom/test_bom.py b/erpnext/manufacturing/doctype/bom/test_bom.py index eface4d624..3239478872 100644 --- a/erpnext/manufacturing/doctype/bom/test_bom.py +++ b/erpnext/manufacturing/doctype/bom/test_bom.py @@ -207,7 +207,6 @@ class TestBOM(unittest.TestCase): supplied_items = sorted([d.rm_item_code for d in po.supplied_items]) self.assertEquals(bom_items, supplied_items) - def get_default_bom(item_code="_Test FG Item 2"): return frappe.db.get_value("BOM", {"item": item_code, "is_active": 1, "is_default": 1}) diff --git a/erpnext/payroll/doctype/salary_slip/test_salary_slip.py b/erpnext/payroll/doctype/salary_slip/test_salary_slip.py index 37cd89a734..7fe4165362 100644 --- a/erpnext/payroll/doctype/salary_slip/test_salary_slip.py +++ b/erpnext/payroll/doctype/salary_slip/test_salary_slip.py @@ -347,8 +347,7 @@ class TestSalarySlip(unittest.TestCase): # create additional salary of 150000 frappe.db.sql("""delete from `tabSalary Slip` where employee=%s""", (employee)) - data["additional-1"] = create_additional_salary(employee, payroll_period, 50000) - data["additional-2"] = create_additional_salary(employee, payroll_period, 100000) + data["additional-1"] = create_additional_salary(employee, payroll_period, 150000) data["deducted_dates"] = create_salary_slips_for_payroll_period(employee, salary_structure.name, payroll_period) diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py index bfdddbbb60..a094e6c9ed 100644 --- a/erpnext/stock/doctype/item/item.py +++ b/erpnext/stock/doctype/item/item.py @@ -577,8 +577,9 @@ class Item(WebsiteGenerator): # if barcode is getting updated , the row name has to reset. # Delete previous old row doc and re-enter row as if new to reset name in db. item_barcode.set("__islocal", True) + item_barcode_entry_name = item_barcode.name item_barcode.name = None - frappe.delete_doc("Item Barcode", item_barcode.name) + frappe.delete_doc("Item Barcode", item_barcode_entry_name) def validate_warehouse_for_reorder(self): '''Validate Reorder level table for duplicate and conditional mandatory''' diff --git a/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py index cbd5e33b14..109731abb5 100644 --- a/erpnext/stock/doctype/item/test_item.py +++ b/erpnext/stock/doctype/item/test_item.py @@ -471,7 +471,7 @@ class TestItem(unittest.TestCase): item_doc = frappe.get_doc('Item', item_code) new_barcode = item_doc.append('barcodes') new_barcode.update(barcode_properties_list[0]) - self.assertRaises(frappe.DuplicateEntryError, item_doc.save) + self.assertRaises(frappe.UniqueValidationError, item_doc.save) # Add invalid barcode - should cause InvalidBarcode item_doc = frappe.get_doc('Item', item_code) diff --git a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py index 1e7153e774..74a06d8585 100644 --- a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py @@ -180,18 +180,15 @@ class TestPurchaseReceipt(unittest.TestCase): is_subcontracted="Yes", supplier_warehouse="_Test Warehouse 1 - _TC") #stock raw materials in a warehouse before transfer - make_stock_entry(target="_Test Warehouse - _TC", - item_code="_Test Item Home Desktop 100", qty=1, basic_rate=100) make_stock_entry(target="_Test Warehouse - _TC", item_code = "Test Extra Item 1", qty=1, basic_rate=100) make_stock_entry(target="_Test Warehouse - _TC", - item_code = "_Test Item", qty=1, basic_rate=100) - + item_code = "_Test FG Item", qty=1, basic_rate=100) rm_items = [ { "item_code": item_code, "rm_item_code": po.supplied_items[0].rm_item_code, - "item_name": "_Test Item", + "item_name": "_Test FG Item", "qty": po.supplied_items[0].required_qty, "warehouse": "_Test Warehouse - _TC", "stock_uom": "Nos" @@ -203,14 +200,6 @@ class TestPurchaseReceipt(unittest.TestCase): "qty": po.supplied_items[1].required_qty, "warehouse": "_Test Warehouse - _TC", "stock_uom": "Nos" - }, - { - "item_code": item_code, - "rm_item_code": po.supplied_items[2].rm_item_code, - "item_name": "_Test Item Home Desktop 100", - "qty": po.supplied_items[2].required_qty, - "warehouse": "_Test Warehouse - _TC", - "stock_uom": "Nos" } ] rm_item_string = json.dumps(rm_items)