fix(test): test_stock_reservation_against_sales_order

This commit is contained in:
s-aga-r 2023-06-01 17:00:57 +05:30
parent 4eb2717c3b
commit 4044c2ed40
2 changed files with 34 additions and 14 deletions

View File

@ -1890,11 +1890,11 @@ class TestSalesOrder(FrappeTestCase):
)
from erpnext.stock.doctype.stock_reservation_entry.test_stock_reservation_entry import (
create_items,
create_material_receipts,
create_material_receipt,
)
items_details, warehouse = create_items(), "_Test Warehouse - _TC"
create_material_receipts(items_details, warehouse, qty=10)
se = create_material_receipt(items_details, warehouse, qty=10)
item_list = []
for item_code, properties in items_details.items():
@ -1932,8 +1932,10 @@ class TestSalesOrder(FrappeTestCase):
self.assertEqual(item.stock_reserved_qty, sre_details[0].reserved_qty)
self.assertEqual(sre_details[0].status, "Partially Reserved")
se.cancel()
# Test - 3: Stock should be fully Reserved if the Available Qty to Reserve is greater than the Un-reserved Qty.
create_material_receipts(items_details, warehouse, qty=100)
create_material_receipt(items_details, warehouse, qty=110)
so.create_stock_reservation_entries()
so.load_from_db()

View File

@ -5,6 +5,7 @@ import frappe
from frappe.tests.utils import FrappeTestCase, change_settings
from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
from erpnext.stock.doctype.stock_entry.stock_entry import StockEntry
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry
from erpnext.stock.utils import get_stock_balance
@ -12,7 +13,7 @@ from erpnext.stock.utils import get_stock_balance
class TestStockReservationEntry(FrappeTestCase):
def setUp(self) -> None:
self.items = create_items()
create_material_receipts(self.items)
create_material_receipt(self.items)
def tearDown(self) -> None:
return super().tearDown()
@ -269,18 +270,35 @@ def create_items() -> dict:
return items
def create_material_receipts(
def create_material_receipt(
items: dict, warehouse: str = "_Test Warehouse - _TC", qty: float = 100
) -> None:
) -> StockEntry:
se = frappe.new_doc("Stock Entry")
se.purpose = "Material Receipt"
se.company = "_Test Company"
cost_center = frappe.get_value("Company", se.company, "cost_center")
expense_account = frappe.get_value("Company", se.company, "stock_adjustment_account")
for item in items.values():
if item.is_stock_item:
make_stock_entry(
item_code=item.item_code,
qty=qty,
to_warehouse=warehouse,
rate=item.valuation_rate,
purpose="Material Receipt",
)
se.append(
"items",
{
"item_code": item.item_code,
"t_warehouse": warehouse,
"qty": qty,
"basic_rate": item.valuation_rate or 100,
"conversion_factor": 1.0,
"transfer_qty": qty,
"cost_center": cost_center,
"expense_account": expense_account,
},
)
se.set_stock_entry_type()
se.insert()
se.submit()
return se
def cancel_all_stock_reservation_entries() -> None: