diff --git a/erpnext/crm/doctype/contract/test_contract.py b/erpnext/crm/doctype/contract/test_contract.py
index 2b5c875..d5f4e71 100644
--- a/erpnext/crm/doctype/contract/test_contract.py
+++ b/erpnext/crm/doctype/contract/test_contract.py
@@ -6,23 +6,13 @@
 import unittest
 
 import frappe
-from frappe.test_runner import make_test_records
 from frappe.utils import add_days, nowdate
 
-contract_test_records = frappe.get_test_records('Contract')
-make_test_records('Contract Template')
-make_test_records("Customer", force=True)
-
-
 class TestContract(unittest.TestCase):
+
 	def setUp(self):
-		self.contract_doc = frappe.copy_doc(contract_test_records[0])
-
-		template_with_requirements = frappe.get_all("Contract Template", filters={"requires_fulfilment": 1})
-		self.contract_template_with_requirements = template_with_requirements[0].name
-
-		template_without_requirements = frappe.get_all("Contract Template", filters={"requires_fulfilment": 0})
-		self.contract_template_without_requirements = template_without_requirements[0].name
+		frappe.db.sql("delete from `tabContract`")
+		self.contract_doc = get_contract()
 
 	def test_validate_start_date_before_end_date(self):
 		self.contract_doc.start_date = nowdate()
@@ -32,7 +22,6 @@
 
 	def test_unsigned_contract_status(self):
 		self.contract_doc.insert()
-
 		self.assertEqual(self.contract_doc.status, "Unsigned")
 
 	def test_active_signed_contract_status(self):
@@ -60,28 +49,29 @@
 		self.assertEqual(self.contract_doc.status, "Inactive")
 
 	def test_contract_status_with_no_fulfilment_terms(self):
-		self.contract_doc.contract_terms = self.contract_template_without_requirements
+		self.contract_doc.contract_term = "_Test Customer Contract"
 		self.contract_doc.insert()
 
 		self.assertEqual(self.contract_doc.fulfilment_status, "N/A")
 
 	def test_unfulfilled_contract_status(self):
-		self.contract_doc.contract_terms = self.contract_template_with_requirements
+		self.contract_doc.contract_term = "_Test Customer Contract with Requirements"
+		self.contract_doc.requires_fulfilment = 1
 		self.contract_doc.save()
-		self.contract_doc.insert()
-
-		self.contract_doc.reload()
-
 		self.assertEqual(self.contract_doc.fulfilment_status, "Unfulfilled")
 
 	def test_fulfilled_contract_status(self):
-		self.contract_doc.contract_terms = self.contract_template_with_requirements
-		self.contract_doc.save()
-		self.contract_doc.insert()
-
-		self.contract_doc.reload()
+		self.contract_doc.contract_terms = "_Test Customer Contract with Requirements"
 
 		# Mark all the terms as fulfilled
+		self.contract_doc.requires_fulfilment = 1
+		fulfilment_terms = []
+		fulfilment_terms.append({
+			"requirement": "This is a test requirement.",
+			"fulfilled": 0
+		})
+		self.contract_doc.set("fulfilment_terms", fulfilment_terms)
+
 		for term in self.contract_doc.fulfilment_terms:
 			term.fulfilled = 1
 
@@ -90,21 +80,40 @@
 		self.assertEqual(self.contract_doc.fulfilment_status, "Fulfilled")
 
 	def test_partially_fulfilled_contract_status(self):
-		self.contract_doc.contract_terms = self.contract_template_with_requirements
-		self.contract_doc.insert()
-
-		self.contract_doc.reload()
+		self.contract_doc.contract_terms = "_Test Customer Contract with Requirements"
+		self.contract_doc.requires_fulfilment = 1
 
 		# Mark only the first term as fulfilled
+		self.contract_doc.save()
+		fulfilment_terms = []
+		fulfilment_terms.append({
+			"requirement": "This is a test requirement.",
+			"fulfilled": 0
+		})
+		fulfilment_terms.append({
+			"requirement": "This is another test requirement.",
+			"fulfilled": 0
+		})
+
+		self.contract_doc.set("fulfilment_terms", fulfilment_terms)
 		self.contract_doc.fulfilment_terms[0].fulfilled = 1
 		self.contract_doc.save()
 
 		self.assertEqual(self.contract_doc.fulfilment_status, "Partially Fulfilled")
 
 	def test_lapsed_contract_status(self):
-		self.contract_doc.contract_terms = self.contract_template_with_requirements
-		self.contract_doc.insert()
-
-		self.contract_doc.reload()
+		self.contract_doc.contract_term = "_Test Customer Contract with Requirements"
+		self.contract_doc.start_date = add_days(nowdate(), -2)
+		self.contract_doc.end_date = add_days(nowdate(), 1)
+		self.contract_doc.requires_fulfilment = 1
+		self.contract_doc.fulfilment_deadline = add_days(nowdate(), -1)
+		self.contract_doc.save()
 
 		self.assertEqual(self.contract_doc.fulfilment_status, "Lapsed")
+
+def get_contract():
+	doc = frappe.new_doc("Contract")
+	doc.party_type = "Customer"
+	doc.party_name = "_Test Customer"
+	doc.contract_terms = "This is a test customer contract."
+	return doc
diff --git a/erpnext/crm/doctype/contract/test_records.json b/erpnext/crm/doctype/contract/test_records.json
deleted file mode 100644
index 23cc3bb..0000000
--- a/erpnext/crm/doctype/contract/test_records.json
+++ /dev/null
@@ -1,20 +0,0 @@
-[
-	{
-		"doctype": "Contract",
-		"party_type": "Customer",
-		"party_name": "_Test Customer",
-		"contract_terms": "This is a test customer contract."
-	},
-	{
-		"doctype": "Contract",
-		"party_type": "Supplier",
-		"party_name": "_Test Supplier",
-		"contract_terms": "This is a test supplier contract."
-	},
-	{
-		"doctype": "Contract",
-		"party_type": "Employee",
-		"party_name": "_Test Employee",
-		"contract_terms": "This is a test employee contract."
-	}
-]
\ No newline at end of file
diff --git a/erpnext/crm/doctype/contract_template/test_records.json b/erpnext/crm/doctype/contract_template/test_records.json
deleted file mode 100644
index 341b1cf..0000000
--- a/erpnext/crm/doctype/contract_template/test_records.json
+++ /dev/null
@@ -1,31 +0,0 @@
-[
-	{
-		"doctype": "Contract Template",
-		"title": "_Test Customer Contract",
-		"contract_terms": "This is a test customer contract."
-	},
-	{
-		"doctype": "Contract Template",
-		"title": "_Test Customer Contract with Requirements",
-		"contract_terms": "This is a test customer contract.",
-		"requires_fulfilment": 1,
-		"fulfilment_terms": [
-			{
-				"requirement": "This is a test requirement."
-			},
-			{
-				"requirement": "This is another test requirement."
-			}
-		]
-	},
-	{
-		"doctype": "Contract Template",
-		"title": "_Test Supplier Contract",
-		"contract_terms": "This is a test supplier contract."
-	},
-	{
-		"doctype": "Contract Template",
-		"title": "_Test Employee Contract",
-		"contract_terms": "This is a test employee contract."
-	}
-]
\ No newline at end of file
