[Fix] Travis for stock entry
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,