From c9bacedbfe0ad37eb19a24dc6071007445b7037d Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 15 Oct 2015 11:00:34 +0530 Subject: [PATCH] [test] fixes --- .../delivery_note/test_delivery_note.py | 133 +++++++++--------- .../test_stock_reconciliation.py | 6 +- 2 files changed, 73 insertions(+), 66 deletions(-) diff --git a/erpnext/stock/doctype/delivery_note/test_delivery_note.py b/erpnext/stock/doctype/delivery_note/test_delivery_note.py index af52c7a9ab..675d183f7a 100644 --- a/erpnext/stock/doctype/delivery_note/test_delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/test_delivery_note.py @@ -181,99 +181,99 @@ class TestDeliveryNote(unittest.TestCase): serial_no = frappe.get_doc("Serial No", serial_no) for field, value in field_values.items(): self.assertEquals(cstr(serial_no.get(field)), value) - + def test_sales_return_for_non_bundled_items(self): set_perpetual_inventory() - + make_stock_entry(item_code="_Test Item", target="_Test Warehouse - _TC", qty=50, basic_rate=100) - + actual_qty_0 = get_qty_after_transaction() - + dn = create_delivery_note(qty=5, rate=500) actual_qty_1 = get_qty_after_transaction() self.assertEquals(actual_qty_0 - 5, actual_qty_1) - + # outgoing_rate - outgoing_rate = frappe.db.get_value("Stock Ledger Entry", {"voucher_type": "Delivery Note", + outgoing_rate = frappe.db.get_value("Stock Ledger Entry", {"voucher_type": "Delivery Note", "voucher_no": dn.name}, "stock_value_difference") / 5 - + # return entry dn1 = create_delivery_note(is_return=1, return_against=dn.name, qty=-2, rate=500) actual_qty_2 = get_qty_after_transaction() - + self.assertEquals(actual_qty_1 + 2, actual_qty_2) - - incoming_rate, stock_value_difference = frappe.db.get_value("Stock Ledger Entry", - {"voucher_type": "Delivery Note", "voucher_no": dn1.name}, + + incoming_rate, stock_value_difference = frappe.db.get_value("Stock Ledger Entry", + {"voucher_type": "Delivery Note", "voucher_no": dn1.name}, ["incoming_rate", "stock_value_difference"]) - + self.assertEquals(flt(incoming_rate, 3), abs(flt(outgoing_rate, 3))) - - gle_warehouse_amount = frappe.db.get_value("GL Entry", {"voucher_type": "Delivery Note", + + gle_warehouse_amount = frappe.db.get_value("GL Entry", {"voucher_type": "Delivery Note", "voucher_no": dn1.name, "account": "_Test Warehouse - _TC"}, "debit") - + self.assertEquals(gle_warehouse_amount, stock_value_difference) - + set_perpetual_inventory(0) - + def test_return_single_item_from_bundled_items(self): set_perpetual_inventory() - + create_stock_reconciliation(item_code="_Test Item", target="_Test Warehouse - _TC", qty=50, rate=100) - create_stock_reconciliation(item_code="_Test Item Home Desktop 100", target="_Test Warehouse - _TC", + create_stock_reconciliation(item_code="_Test Item Home Desktop 100", target="_Test Warehouse - _TC", qty=50, rate=100) - + dn = create_delivery_note(item_code="_Test Product Bundle Item", qty=5, rate=500) # Qty after delivery actual_qty_1 = get_qty_after_transaction() self.assertEquals(actual_qty_1, 25) - + # outgoing_rate - outgoing_rate = frappe.db.get_value("Stock Ledger Entry", {"voucher_type": "Delivery Note", + outgoing_rate = frappe.db.get_value("Stock Ledger Entry", {"voucher_type": "Delivery Note", "voucher_no": dn.name, "item_code": "_Test Item"}, "stock_value_difference") / 25 - + # return 'test item' from packed items dn1 = create_delivery_note(is_return=1, return_against=dn.name, qty=-10, rate=500) # qty after return actual_qty_2 = get_qty_after_transaction() self.assertEquals(actual_qty_2, 35) - + # Check incoming rate for return entry - incoming_rate, stock_value_difference = frappe.db.get_value("Stock Ledger Entry", - {"voucher_type": "Delivery Note", "voucher_no": dn1.name}, + incoming_rate, stock_value_difference = frappe.db.get_value("Stock Ledger Entry", + {"voucher_type": "Delivery Note", "voucher_no": dn1.name}, ["incoming_rate", "stock_value_difference"]) - + self.assertEquals(flt(incoming_rate, 3), abs(flt(outgoing_rate, 3))) - + # Check gl entry for warehouse - gle_warehouse_amount = frappe.db.get_value("GL Entry", {"voucher_type": "Delivery Note", + gle_warehouse_amount = frappe.db.get_value("GL Entry", {"voucher_type": "Delivery Note", "voucher_no": dn1.name, "account": "_Test Warehouse - _TC"}, "debit") - + self.assertEquals(gle_warehouse_amount, stock_value_difference) - + set_perpetual_inventory(0) - + def test_return_entire_bundled_items(self): set_perpetual_inventory() - + create_stock_reconciliation(item_code="_Test Item", target="_Test Warehouse - _TC", qty=50, rate=100) - create_stock_reconciliation(item_code="_Test Item Home Desktop 100", target="_Test Warehouse - _TC", + create_stock_reconciliation(item_code="_Test Item Home Desktop 100", target="_Test Warehouse - _TC", qty=50, rate=100) - + dn = create_delivery_note(item_code="_Test Product Bundle Item", qty=5, rate=500) - + # return bundled item - dn1 = create_delivery_note(item_code='_Test Product Bundle Item', is_return=1, + dn1 = create_delivery_note(item_code='_Test Product Bundle Item', is_return=1, return_against=dn.name, qty=-2, rate=500) # qty after return actual_qty = get_qty_after_transaction() self.assertEquals(actual_qty, 35) - + # Check incoming rate for return entry incoming_rate, stock_value_difference = frappe.db.get_value("Stock Ledger Entry", {"voucher_type": "Delivery Note", "voucher_no": dn1.name}, @@ -284,11 +284,11 @@ class TestDeliveryNote(unittest.TestCase): # Check gl entry for warehouse gle_warehouse_amount = frappe.db.get_value("GL Entry", {"voucher_type": "Delivery Note", "voucher_no": dn1.name, "account": "_Test Warehouse - _TC"}, "debit") - + self.assertEquals(gle_warehouse_amount, 1400) - + set_perpetual_inventory(0) - + def test_return_for_serialized_items(self): se = make_serialized_item() serial_no = get_serial_nos(se.get("items")[0].serial_no)[0] @@ -301,65 +301,68 @@ class TestDeliveryNote(unittest.TestCase): }) # return entry - dn1 = create_delivery_note(item_code="_Test Serialized Item With Series", + dn1 = create_delivery_note(item_code="_Test Serialized Item With Series", is_return=1, return_against=dn.name, qty=-1, rate=500, serial_no=serial_no) self.check_serial_no_values(serial_no, { "warehouse": "_Test Warehouse - _TC", "delivery_document_no": "" }) - + dn1.cancel() - + self.check_serial_no_values(serial_no, { "warehouse": "", "delivery_document_no": dn.name }) - + dn.cancel() - + self.check_serial_no_values(serial_no, { "warehouse": "_Test Warehouse - _TC", "delivery_document_no": "", "purchase_document_no": se.name }) - + def test_delivery_of_bundled_items_to_target_warehouse(self): set_perpetual_inventory() - - create_stock_reconciliation(item_code="_Test Item", target="_Test Warehouse - _TC", qty=50, rate=100) - create_stock_reconciliation(item_code="_Test Item Home Desktop 100", target="_Test Warehouse - _TC", + + create_stock_reconciliation(item_code="_Test Item", target="_Test Warehouse - _TC", qty=50, rate=100) - + create_stock_reconciliation(item_code="_Test Item Home Desktop 100", + target="_Test Warehouse - _TC", + qty=50, rate=100) + opening_qty_test_warehouse_1 = get_qty_after_transaction(warehouse="_Test Warehouse 1 - _TC") - - dn = create_delivery_note(item_code="_Test Product Bundle Item", + + dn = create_delivery_note(item_code="_Test Product Bundle Item", qty=5, rate=500, target_warehouse="_Test Warehouse 1 - _TC") - + # qty after delivery actual_qty = get_qty_after_transaction(warehouse="_Test Warehouse - _TC") self.assertEquals(actual_qty, 25) - + actual_qty = get_qty_after_transaction(warehouse="_Test Warehouse 1 - _TC") self.assertEquals(actual_qty, opening_qty_test_warehouse_1 + 25) - + # stock value diff for source warehouse - stock_value_difference = frappe.db.get_value("Stock Ledger Entry", {"voucher_type": "Delivery Note", - "voucher_no": dn.name, "item_code": "_Test Item", "warehouse": "_Test Warehouse - _TC"}, + stock_value_difference = frappe.db.get_value("Stock Ledger Entry", {"voucher_type": "Delivery Note", + "voucher_no": dn.name, "item_code": "_Test Item", "warehouse": "_Test Warehouse - _TC"}, "stock_value_difference") - + # stock value diff for target warehouse - stock_value_difference1 = frappe.db.get_value("Stock Ledger Entry", {"voucher_type": "Delivery Note", - "voucher_no": dn.name, "item_code": "_Test Item", "warehouse": "_Test Warehouse 1 - _TC"}, + stock_value_difference1 = frappe.db.get_value("Stock Ledger Entry", {"voucher_type": "Delivery Note", + "voucher_no": dn.name, "item_code": "_Test Item", "warehouse": "_Test Warehouse 1 - _TC"}, "stock_value_difference") + self.assertEquals(abs(stock_value_difference), stock_value_difference1) # Check gl entries gl_entries = get_gl_entries("Delivery Note", dn.name) self.assertTrue(gl_entries) - stock_value_difference = abs(frappe.db.sql("""select sum(stock_value_difference) - from `tabStock Ledger Entry` where voucher_type='Delivery Note' and voucher_no=%s + stock_value_difference = abs(frappe.db.sql("""select sum(stock_value_difference) + from `tabStock Ledger Entry` where voucher_type='Delivery Note' and voucher_no=%s and warehouse='_Test Warehouse - _TC'""", dn.name)[0][0]) expected_values = { @@ -368,9 +371,9 @@ class TestDeliveryNote(unittest.TestCase): } for i, gle in enumerate(gl_entries): self.assertEquals([gle.debit, gle.credit], expected_values.get(gle.account)) - + set_perpetual_inventory(0) - + def create_delivery_note(**args): dn = frappe.new_doc("Delivery Note") args = frappe._dict(args) diff --git a/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py index fa2fa1352d..cfaa499578 100644 --- a/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py +++ b/erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py @@ -10,6 +10,7 @@ from frappe.utils import flt, nowdate, nowtime from erpnext.accounts.utils import get_fiscal_year, get_stock_and_account_difference from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import set_perpetual_inventory from erpnext.stock.stock_ledger import get_previous_sle, update_entries_after +from erpnext.stock.doctype.stock_reconciliation.stock_reconciliation import EmptyStockReconciliationItemsError class TestStockReconciliation(unittest.TestCase): def setUp(self): @@ -107,7 +108,10 @@ def create_stock_reconciliation(**args): "valuation_rate": args.rate }) - sr.submit() + try: + sr.submit() + except EmptyStockReconciliationItemsError: + pass return sr def repost_stock_as_per_valuation_method(valuation_method):