[tests] Test cases for Item and Warehouse renaming and merging
This commit is contained in:
parent
3ef63bef02
commit
fb1fb83b8c
@ -9,6 +9,9 @@ from frappe.test_runner import make_test_records
|
|||||||
from erpnext.controllers.item_variant import (create_variant, ItemVariantExistsError,
|
from erpnext.controllers.item_variant import (create_variant, ItemVariantExistsError,
|
||||||
InvalidItemAttributeValueError)
|
InvalidItemAttributeValueError)
|
||||||
|
|
||||||
|
from frappe.model.rename_doc import rename_doc
|
||||||
|
from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry
|
||||||
|
|
||||||
test_ignore = ["BOM"]
|
test_ignore = ["BOM"]
|
||||||
test_dependencies = ["Warehouse"]
|
test_dependencies = ["Warehouse"]
|
||||||
|
|
||||||
@ -164,11 +167,32 @@ class TestItem(unittest.TestCase):
|
|||||||
variant.item_name = "_Test Numeric Variant Large 1.1m"
|
variant.item_name = "_Test Numeric Variant Large 1.1m"
|
||||||
self.assertRaises(InvalidItemAttributeValueError, variant.save)
|
self.assertRaises(InvalidItemAttributeValueError, variant.save)
|
||||||
|
|
||||||
variant = create_variant("_Test Numeric Template Item", {"Test Size": "Large", "Test Item Length": 1.5})
|
variant = create_variant("_Test Numeric Template Item",
|
||||||
|
{"Test Size": "Large", "Test Item Length": 1.5})
|
||||||
self.assertEquals(variant.item_code, None)
|
self.assertEquals(variant.item_code, None)
|
||||||
variant.item_code = "_Test Numeric Variant-L-1.5"
|
variant.item_code = "_Test Numeric Variant-L-1.5"
|
||||||
variant.item_name = "_Test Numeric Variant Large 1.5m"
|
variant.item_name = "_Test Numeric Variant Large 1.5m"
|
||||||
variant.save()
|
variant.save()
|
||||||
|
|
||||||
|
def test_item_merging(self):
|
||||||
|
create_item("Test Item for Merging 1")
|
||||||
|
create_item("Test Item for Merging 2")
|
||||||
|
|
||||||
|
make_stock_entry(item_code="Test Item for Merging 1", target="_Test Warehouse - _TC",
|
||||||
|
qty=1, rate=100)
|
||||||
|
make_stock_entry(item_code="Test Item for Merging 2", target="_Test Warehouse 1 - _TC",
|
||||||
|
qty=1, rate=100)
|
||||||
|
|
||||||
|
rename_doc("Item", "Test Item for Merging 1", "Test Item for Merging 2", merge=True)
|
||||||
|
|
||||||
|
self.assertFalse(frappe.db.exists("Item", "Test Item for Merging 1"))
|
||||||
|
|
||||||
|
self.assertTrue(frappe.db.get_value("Bin",
|
||||||
|
{"item_code": "Test Item for Merging 2", "warehouse": "_Test Warehouse - _TC"}))
|
||||||
|
|
||||||
|
self.assertTrue(frappe.db.get_value("Bin",
|
||||||
|
{"item_code": "Test Item for Merging - 2", "warehouse": "_Test Warehouse 1 - _TC"}))
|
||||||
|
|
||||||
|
|
||||||
def make_item_variant():
|
def make_item_variant():
|
||||||
if not frappe.db.exists("Item", "_Test Variant Item-S"):
|
if not frappe.db.exists("Item", "_Test Variant Item-S"):
|
||||||
@ -184,3 +208,14 @@ def get_total_projected_qty(item):
|
|||||||
return total_qty[0].projected_qty if total_qty else 0.0
|
return total_qty[0].projected_qty if total_qty else 0.0
|
||||||
|
|
||||||
test_records = frappe.get_test_records('Item')
|
test_records = frappe.get_test_records('Item')
|
||||||
|
|
||||||
|
def create_item(item_code, is_stock_item=None):
|
||||||
|
if not frappe.db.exists("Item", item_code):
|
||||||
|
item = frappe.new_doc("Item")
|
||||||
|
item.item_code = item_code
|
||||||
|
item.item_name = item_code
|
||||||
|
item.description = item_code
|
||||||
|
item.item_group = "All Item Groups"
|
||||||
|
item.is_stock_item = is_stock_item or 1
|
||||||
|
item.save()
|
||||||
|
|
||||||
@ -1,7 +1,9 @@
|
|||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# License: GNU General Public License v3. See license.txt
|
# License: GNU General Public License v3. See license.txt
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
from frappe.model.rename_doc import rename_doc
|
||||||
|
from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry
|
||||||
|
from frappe.utils import cint
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
import unittest
|
import unittest
|
||||||
@ -21,5 +23,66 @@ class TestWarehouse(unittest.TestCase):
|
|||||||
for child_warehouse in child_warehouses:
|
for child_warehouse in child_warehouses:
|
||||||
self.assertEquals(p_warehouse.name, child_warehouse.parent_warehouse)
|
self.assertEquals(p_warehouse.name, child_warehouse.parent_warehouse)
|
||||||
self.assertEquals(child_warehouse.is_group, 0)
|
self.assertEquals(child_warehouse.is_group, 0)
|
||||||
|
|
||||||
|
def test_warehouse_renaming(self):
|
||||||
|
create_warehouse("Test Warehouse for Renaming 1")
|
||||||
|
|
||||||
|
self.assertTrue(frappe.db.exists("Account", "Test Warehouse for Renaming 1 - _TC"))
|
||||||
|
self.assertTrue(frappe.db.get_value("Account",
|
||||||
|
filters={"warehouse": "Test Warehouse for Renaming 1 - _TC"}))
|
||||||
|
|
||||||
|
# Rename with abbr
|
||||||
|
rename_doc("Warehouse", "Test Warehouse for Renaming 1 - _TC", "Test Warehouse for Renaming 2 - _TC")
|
||||||
|
|
||||||
|
self.assertTrue(frappe.db.exists("Account", "Test Warehouse for Renaming 2 - _TC"))
|
||||||
|
self.assertTrue(frappe.db.get_value("Account",
|
||||||
|
filters={"warehouse": "Test Warehouse for Renaming 2 - _TC"}))
|
||||||
|
|
||||||
|
# Rename without abbr
|
||||||
|
rename_doc("Warehouse", "Test Warehouse for Renaming 2 - _TC", "Test Warehouse for Renaming 3")
|
||||||
|
|
||||||
|
self.assertTrue(frappe.db.exists("Account", "Test Warehouse for Renaming 3 - _TC"))
|
||||||
|
self.assertTrue(frappe.db.get_value("Account",
|
||||||
|
filters={"warehouse": "Test Warehouse for Renaming 3 - _TC"}))
|
||||||
|
|
||||||
|
def test_warehouse_merging(self):
|
||||||
|
create_warehouse("Test Warehouse for Merging 1")
|
||||||
|
create_warehouse("Test Warehouse for Merging 2")
|
||||||
|
|
||||||
|
make_stock_entry(item_code="_Test Item", target="Test Warehouse for Merging 1 - _TC",
|
||||||
|
qty=1, rate=100)
|
||||||
|
make_stock_entry(item_code="_Test Item", target="Test Warehouse for Merging 2 - _TC",
|
||||||
|
qty=1, rate=100)
|
||||||
|
|
||||||
|
existing_bin_qty = (
|
||||||
|
cint(frappe.db.get_value("Bin",
|
||||||
|
{"item_code": "_Test Item", "warehouse": "Test Warehouse for Merging 1 - _TC"}, "actual_qty"))
|
||||||
|
+ cint(frappe.db.get_value("Bin",
|
||||||
|
{"item_code": "_Test Item", "warehouse": "Test Warehouse for Merging 2 - _TC"}, "actual_qty"))
|
||||||
|
)
|
||||||
|
|
||||||
|
rename_doc("Warehouse", "Test Warehouse for Merging 1 - _TC",
|
||||||
|
"Test Warehouse for Merging 2 - _TC", merge=True)
|
||||||
|
|
||||||
|
self.assertFalse(frappe.db.exists("Warehouse", "Test Warehouse for Merging 1 - _TC"))
|
||||||
|
|
||||||
|
bin_qty = frappe.db.get_value("Bin",
|
||||||
|
{"item_code": "_Test Item", "warehouse": "Test Warehouse for Merging 2 - _TC"}, "actual_qty")
|
||||||
|
|
||||||
|
self.assertEqual(bin_qty, existing_bin_qty)
|
||||||
|
|
||||||
|
self.assertFalse(frappe.db.exists("Account", "Test Warehouse for Merging 1 - _TC"))
|
||||||
|
self.assertTrue(frappe.db.exists("Account", "Test Warehouse for Merging 2 - _TC"))
|
||||||
|
self.assertTrue(frappe.db.get_value("Account",
|
||||||
|
filters={"warehouse": "Test Warehouse for Merging 2 - _TC"}))
|
||||||
|
|
||||||
|
|
||||||
|
def create_warehouse(warehouse_name):
|
||||||
|
if not frappe.db.exists("Warehouse", warehouse_name + " - _TC"):
|
||||||
|
w = frappe.new_doc("Warehouse")
|
||||||
|
w.warehouse_name = warehouse_name
|
||||||
|
w.parent_warehouse = "_Test Warehouse Group - _TC"
|
||||||
|
w.company = "_Test Company"
|
||||||
|
w.save()
|
||||||
|
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user