diff --git a/erpnext/controllers/item_variant.py b/erpnext/controllers/item_variant.py
index a544119..854e9bb 100644
--- a/erpnext/controllers/item_variant.py
+++ b/erpnext/controllers/item_variant.py
@@ -272,8 +272,8 @@
 				else:
 					variant.set(field.fieldname, item.get(field.fieldname))
 
+	variant.variant_of = item.name
 	if 'description' in allow_fields:
-		variant.variant_of = item.name
 		variant.has_variants = 0
 		if not variant.description:
 			variant.description = ""
diff --git a/erpnext/stock/doctype/stock_entry/test_stock_entry.py b/erpnext/stock/doctype/stock_entry/test_stock_entry.py
index 5b33a97..73671ca 100644
--- a/erpnext/stock/doctype/stock_entry/test_stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/test_stock_entry.py
@@ -10,6 +10,7 @@
 	import set_perpetual_inventory
 from erpnext.stock.doctype.stock_ledger_entry.stock_ledger_entry import StockFreezeError
 from erpnext.stock.stock_ledger import get_previous_sle
+from frappe.permissions import add_user_permission, remove_user_permission
 from erpnext.stock.doctype.stock_reconciliation.test_stock_reconciliation import create_stock_reconciliation
 from erpnext.stock.doctype.item.test_item import set_item_variant_settings, make_item_variant, create_item
 from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry
@@ -480,11 +481,12 @@
 
 	# permission tests
 	def test_warehouse_user(self):
-		frappe.defaults.add_default("Warehouse", "_Test Warehouse 1 - _TC", "test@example.com", "User Permission")
-		frappe.defaults.add_default("Warehouse", "_Test Warehouse 2 - _TC1", "test2@example.com", "User Permission")
+		add_user_permission("Warehouse", "_Test Warehouse 1 - _TC", "test@example.com")
+		add_user_permission("Warehouse", "_Test Warehouse 2 - _TC1", "test2@example.com")
+		add_user_permission("Company", "_Test Company 1", "test2@example.com")
 		test_user = frappe.get_doc("User", "test@example.com")
 		test_user.add_roles("Sales User", "Sales Manager", "Stock User")
-		test_user.remove_roles("Stock Manager")
+		test_user.remove_roles("Stock Manager", "System Manager")
 
 		frappe.get_doc("User", "test2@example.com")\
 			.add_roles("Sales User", "Sales Manager", "Stock User", "Stock Manager")
@@ -496,6 +498,8 @@
 		st1.get("items")[0].t_warehouse="_Test Warehouse 2 - _TC1"
 		self.assertRaises(frappe.PermissionError, st1.insert)
 
+		test_user.add_roles("System Manager")
+
 		frappe.set_user("test2@example.com")
 		st1 = frappe.copy_doc(test_records[0])
 		st1.company = "_Test Company 1"
@@ -505,10 +509,10 @@
 		st1.insert()
 		st1.submit()
 
-		frappe.defaults.clear_default("Warehouse", "_Test Warehouse 1 - _TC",
-			"test@example.com", parenttype="User Permission")
-		frappe.defaults.clear_default("Warehouse", "_Test Warehouse 2 - _TC1",
-			"test2@example.com", parenttype="User Permission")
+		frappe.set_user("Administrator")
+		remove_user_permission("Warehouse", "_Test Warehouse 1 - _TC", "test@example.com")
+		remove_user_permission("Warehouse", "_Test Warehouse 2 - _TC1", "test2@example.com")
+		remove_user_permission("Company", "_Test Company 1", "test2@example.com")
 
 	def test_freeze_stocks(self):
 		frappe.db.set_value('Stock Settings', None,'stock_auth_role', '')
@@ -615,23 +619,25 @@
 		create_warehouse("Test Warehouse for Sample Retention")
 		frappe.db.set_value("Stock Settings", None, "sample_retention_warehouse", "Test Warehouse for Sample Retention - _TC")
 
-		item = frappe.new_doc("Item")
-		item.item_code = "Retain Sample Item"
-		item.item_name = "Retain Sample Item"
-		item.description = "Retain Sample Item"
-		item.item_group = "All Item Groups"
-		item.is_stock_item = 1
-		item.has_batch_no = 1
-		item.create_new_batch = 1
-		item.retain_sample = 1
-		item.sample_quantity = 4
-		item.save()
+		test_item_code = "Retain Sample Item"
+		if not frappe.db.exists('Item', test_item_code):
+			item = frappe.new_doc("Item")
+			item.item_code = test_item_code
+			item.item_name = "Retain Sample Item"
+			item.description = "Retain Sample Item"
+			item.item_group = "All Item Groups"
+			item.is_stock_item = 1
+			item.has_batch_no = 1
+			item.create_new_batch = 1
+			item.retain_sample = 1
+			item.sample_quantity = 4
+			item.save()
 
 		receipt_entry = frappe.new_doc("Stock Entry")
 		receipt_entry.company = "_Test Company"
 		receipt_entry.purpose = "Material Receipt"
 		receipt_entry.append("items", {
-			"item_code": item.item_code,
+			"item_code": test_item_code,
 			"t_warehouse": "_Test Warehouse - _TC",
 			"qty": 40,
 			"basic_rate": 12,
@@ -646,7 +652,7 @@
 		retention_entry.company = retention_data.company
 		retention_entry.purpose = retention_data.purpose
 		retention_entry.append("items", {
-			"item_code": item.item_code,
+			"item_code": test_item_code,
 			"t_warehouse": "Test Warehouse for Sample Retention - _TC",
 			"s_warehouse": "_Test Warehouse - _TC",
 			"qty": 4,
