fix(Asset Repair): Fix tests
diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.json b/erpnext/assets/doctype/asset_repair/asset_repair.json
index 6f9b686..c25216c 100644
--- a/erpnext/assets/doctype/asset_repair/asset_repair.json
+++ b/erpnext/assets/doctype/asset_repair/asset_repair.json
@@ -264,7 +264,7 @@
  "index_web_pages_for_search": 1,
  "is_submittable": 1,
  "links": [],
- "modified": "2021-06-19 15:20:24.056706",
+ "modified": "2021-06-20 17:35:51.075537",
  "modified_by": "Administrator",
  "module": "Assets",
  "name": "Asset Repair",
diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.py b/erpnext/assets/doctype/asset_repair/asset_repair.py
index 212af7a..5fccfb7 100644
--- a/erpnext/assets/doctype/asset_repair/asset_repair.py
+++ b/erpnext/assets/doctype/asset_repair/asset_repair.py
@@ -5,74 +5,73 @@
 from __future__ import unicode_literals
 import frappe
 from frappe import _
-from frappe.utils import time_diff_in_hours, getdate, nowdate, add_months, flt, cint
-from frappe.model.document import Document
+from frappe.utils import time_diff_in_hours, getdate, add_months, flt, cint
 from erpnext.accounts.general_ledger import make_gl_entries
 from erpnext.assets.doctype.asset.asset import get_asset_account
 from erpnext.controllers.accounts_controller import AccountsController
 
 class AssetRepair(AccountsController):
 	def validate(self):
-		if self.repair_status == "Completed" and not self.completion_date:
-			self.completion_date = nowdate()
-
+		self.asset_doc = frappe.get_doc('Asset', self.asset)
 		self.update_status()
-		self.set_total_value()		# change later
+		if self.get('stock_items'):
+			self.set_total_value()		# change later
 		self.calculate_total_repair_cost()
 		
 	def update_status(self):
 		if self.repair_status == 'Pending':
 			frappe.db.set_value('Asset', self.asset, 'status', 'Out of Order')
 		else:
-			asset = frappe.get_doc('Asset', self.asset)
-			asset.set_status()
+			self.asset_doc.set_status()
 
 	def set_total_value(self):
-		for item in self.stock_items:
+		for item in self.get('stock_items'):
 			item.total_value = flt(item.valuation_rate) * flt(item.consumed_quantity)
 
 	def calculate_total_repair_cost(self):
 		self.total_repair_cost = self.repair_cost
-		for item in self.stock_items:
-			self.total_repair_cost += item.total_value
+		if self.get('stock_items'):
+			for item in self.get('stock_items'):
+				self.total_repair_cost += item.total_value
 
 	def on_submit(self):
 		self.check_repair_status()
 
-		if self.stock_consumption or self.capitalize_repair_cost:
+		if self.get('stock_consumption') or self.get('capitalize_repair_cost'):
 			self.increase_asset_value()
-		if self.stock_consumption:
+		if self.get('stock_consumption'):
 			self.check_for_stock_items_and_warehouse()
 			self.decrease_stock_quantity()
-		if self.capitalize_repair_cost:
+		if self.get('capitalize_repair_cost'):
 			self.make_gl_entries()
 			if frappe.db.get_value('Asset', self.asset, 'calculate_depreciation') and self.increase_in_asset_life:
 				self.modify_depreciation_schedule()
 
+		self.asset_doc.flags.ignore_validate_update_after_submit = True
+		self.asset_doc.save()
+
 	def check_repair_status(self):
 		if self.repair_status == "Pending":
 			frappe.throw(_("Please update Repair Status."))
 
 	def check_for_stock_items_and_warehouse(self):
-		if not self.stock_items:
+		if not self.get('stock_items'):
 			frappe.throw(_("Please enter Stock Items consumed during the Repair."), title=_("Missing Items"))
 		if not self.warehouse:
 			frappe.throw(_("Please enter Warehouse from which Stock Items consumed during the Repair were taken."), title=_("Missing Warehouse"))
 
 	def increase_asset_value(self):
 		total_value_of_stock_consumed = 0
-		for item in self.stock_items:
-			total_value_of_stock_consumed += item.total_value
+		if self.get('stock_consumption'):
+			for item in self.get('stock_items'):
+				total_value_of_stock_consumed += item.total_value
 
-		asset = frappe.get_doc('Asset', self.asset)
-		asset.flags.ignore_validate_update_after_submit = True
-		if asset.calculate_depreciation:
-			for row in asset.finance_books:
+		if self.asset_doc.calculate_depreciation:
+			for row in self.asset_doc.finance_books:
 				row.value_after_depreciation += total_value_of_stock_consumed
 
 				if self.capitalize_repair_cost:
 					row.value_after_depreciation += self.repair_cost
-		asset.save()
 
 	def decrease_stock_quantity(self):
 		stock_entry = frappe.get_doc({
@@ -81,7 +80,7 @@
 			"company": self.company
 		})
 
-		for stock_item in self.stock_items:
+		for stock_item in self.get('stock_items'):
 			stock_entry.append('items', {
 				"s_warehouse": self.warehouse,
 				"item_code": stock_item.item,
@@ -121,7 +120,7 @@
 			}, item=self)
 		)
 
-		if self.stock_consumption:
+		if self.get('stock_consumption'):
 			# creating GL Entries for each row in Stock Items based on the Stock Entry created for it
 			stock_entry = frappe.get_doc('Stock Entry', self.stock_entry)
 			for item in stock_entry.items:
@@ -158,18 +157,13 @@
 		return gl_entries
 
 	def modify_depreciation_schedule(self):
-		asset = frappe.get_doc('Asset', self.asset)
-		asset.flags.ignore_validate_update_after_submit = True
-		for row in asset.finance_books:
+		for row in self.asset_doc.finance_books:
 			row.total_number_of_depreciations += self.increase_in_asset_life/row.frequency_of_depreciation
 
-			asset.flags.increase_in_asset_life = False
+			self.asset_doc.flags.increase_in_asset_life = False
 			extra_months = self.increase_in_asset_life % row.frequency_of_depreciation
 			if extra_months != 0:
-				self.calculate_last_schedule_date(asset, row, extra_months)
-
-		asset.prepare_depreciation_data()
-		asset.save()
+				self.calculate_last_schedule_date(self.asset_doc, row, extra_months)
 
 	# to help modify depreciation schedule when increase_in_asset_life is not a multiple of frequency_of_depreciation
 	def calculate_last_schedule_date(self, asset, row, extra_months):
diff --git a/erpnext/assets/doctype/asset_repair/test_asset_repair.py b/erpnext/assets/doctype/asset_repair/test_asset_repair.py
index 9c9dd44..d1b417f 100644
--- a/erpnext/assets/doctype/asset_repair/test_asset_repair.py
+++ b/erpnext/assets/doctype/asset_repair/test_asset_repair.py
@@ -105,7 +105,9 @@
 		initial_num_of_depreciations = num_of_depreciations(asset)
 		create_asset_repair(asset= asset, capitalize_repair_cost = 1, submit = 1)
 		asset.reload()
+	
 		self.assertEqual((initial_num_of_depreciations + 1), num_of_depreciations(asset))
+		self.assertEqual(asset.schedules[-1].accumulated_depreciation_amount, asset.finance_books[0].value_after_depreciation)
 
 def num_of_depreciations(asset):
 	return asset.finance_books[0].total_number_of_depreciations
@@ -126,7 +128,8 @@
 		"asset_name": asset.asset_name,
 		"failure_date": nowdate(),
 		"description": "Test Description",
-		"repair_cost": 0
+		"repair_cost": 0,
+		"company": asset.company
 	})
 
 	if args.stock_consumption:
@@ -142,7 +145,7 @@
 		asset_repair.save()
 	except frappe.DuplicateEntryError:
 		pass
-
+	
 	if args.submit:
 		asset_repair.repair_status = "Completed"
 		asset_repair.cost_center = "_Test Cost Center - _TC"