[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, | ||||
| 	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_dependencies = ["Warehouse"] | ||||
| 
 | ||||
| @ -164,11 +167,32 @@ class TestItem(unittest.TestCase): | ||||
| 		variant.item_name = "_Test Numeric Variant Large 1.1m" | ||||
| 		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) | ||||
| 		variant.item_code = "_Test Numeric Variant-L-1.5" | ||||
| 		variant.item_name = "_Test Numeric Variant Large 1.5m" | ||||
| 		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(): | ||||
| 	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 | ||||
| 
 | ||||
| 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 | ||||
| # License: GNU General Public License v3. See license.txt | ||||
| 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 unittest | ||||
| @ -21,5 +23,66 @@ class TestWarehouse(unittest.TestCase): | ||||
| 		for child_warehouse in child_warehouses: | ||||
| 			self.assertEquals(p_warehouse.name, child_warehouse.parent_warehouse) | ||||
| 			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