diff --git a/erpnext/hr/doctype/leave_application/test_leave_application.py b/erpnext/hr/doctype/leave_application/test_leave_application.py
index 9e21708..67e211e 100644
--- a/erpnext/hr/doctype/leave_application/test_leave_application.py
+++ b/erpnext/hr/doctype/leave_application/test_leave_application.py
@@ -44,7 +44,11 @@
 ]
 
 
-class TestLeaveApplication(unittest.TestCase):
+class TestLeaveApplication(unittest.TestCase):	
+	def setUp(self):
+		for dt in ["Leave Application", "Leave Allocation", "Salary Slip"]:
+			frappe.db.sql("delete from `tab%s`" % dt)
+	
 	def tearDown(self):
 		frappe.set_user("Administrator")
 
@@ -97,6 +101,8 @@
 
 		frappe.db.set_value("Department", "_Test Department",
 			"leave_block_list", "_Test Leave Block List")
+			
+		make_allocation_record()
 
 		application = self.get_application(_test_records[0])
 		application.insert()
@@ -120,6 +126,9 @@
 		add_role("test2@example.com", "Leave Approver")
 
 		frappe.set_user("test@example.com")
+
+		make_allocation_record()
+		
 		application = self.get_application(_test_records[0])
 		application.leave_approver = "test2@example.com"
 		application.insert()
@@ -135,7 +144,9 @@
 		add_role("test1@example.com", "Employee")
 		add_role("test@example.com", "Leave Approver")
 		self._add_employee_leave_approver("_T-Employee-0002", "test@example.com")
-
+		
+		make_allocation_record(employee="_T-Employee-0002")
+		
 		application = self.get_application(_test_records[1])
 		application.leave_approver = "test@example.com"
 
@@ -175,6 +186,9 @@
 
 		# create leave application as Employee
 		frappe.set_user("test@example.com")
+		
+		make_allocation_record()
+		
 		application = self.get_application(_test_records[0])
 		application.leave_approver = "test1@example.com"
 		application.insert()
@@ -196,6 +210,8 @@
 		self._add_employee_leave_approver("_T-Employee-0001", "test2@example.com")
 		self._remove_employee_leave_approver("_T-Employee-0001", "test1@example.com")
 
+		make_allocation_record()
+
 		application = self.get_application(_test_records[0])
 		frappe.set_user("test@example.com")
 
@@ -212,6 +228,9 @@
 		# create leave application as employee
 		# but submit as invalid leave approver - should raise exception
 		frappe.set_user("test@example.com")
+		
+		make_allocation_record()
+		
 		application = self.get_application(_test_records[0])
 		application.leave_approver = "test2@example.com"
 		application.insert()
@@ -232,6 +251,9 @@
 		frappe.db.set_value("Employee", "_T-Employee-0001", "department", None)
 
 		frappe.set_user("test@example.com")
+		
+		make_allocation_record()
+		
 		application = self.get_application(_test_records[0])
 		application.leave_approver = "test2@example.com"
 		application.insert()
@@ -246,4 +268,19 @@
 		frappe.db.sql("""delete from `tabEmployee Leave Approver` where parent=%s""",
 			"_T-Employee-0001")
 
-		frappe.db.set_value("Employee", "_T-Employee-0001", "department", original_department)
\ No newline at end of file
+		frappe.db.set_value("Employee", "_T-Employee-0001", "department", original_department)
+		
+def make_allocation_record(employee=None, leave_type=None):
+	frappe.db.sql("delete from `tabLeave Allocation`")
+	
+	allocation = frappe.get_doc({
+		"doctype": "Leave Allocation",
+		"employee": employee or "_T-Employee-0001",
+		"leave_type": leave_type or "_Test Leave Type",
+		"from_date": "2013-01-01",
+		"to_date": "2015-12-31",
+		"new_leaves_allocated": 30
+	})
+	
+	allocation.insert(ignore_permissions=True)
+	allocation.submit()
diff --git a/erpnext/hr/doctype/salary_slip/test_salary_slip.py b/erpnext/hr/doctype/salary_slip/test_salary_slip.py
index fb69440..9eda231 100644
--- a/erpnext/hr/doctype/salary_slip/test_salary_slip.py
+++ b/erpnext/hr/doctype/salary_slip/test_salary_slip.py
@@ -7,23 +7,14 @@
 from frappe.utils import today
 from erpnext.hr.doctype.employee.employee import make_salary_structure
 from erpnext.hr.doctype.salary_structure.salary_structure import make_salary_slip
+from erpnext.hr.doctype.leave_application.test_leave_application import make_allocation_record
 
 class TestSalarySlip(unittest.TestCase):
 	def setUp(self):
 		for dt in ["Leave Application", "Leave Allocation", "Salary Slip"]:
 			frappe.db.sql("delete from `tab%s`" % dt)
 		
-		allocation = frappe.get_doc({
-			"doctype": "Leave Allocation",
-			"employee": "_T-Employee-0001",
-			"leave_type": "_Test Leave Type LWP",
-			"from_date": "2013-01-01",
-			"to_date": "2015-12-31",
-			"new_leaves_allocated": 5
-		})
-		
-		allocation.insert()
-		allocation.submit()
+		make_allocation_record(leave_type="_Test Leave Type LWP")
 		
 		frappe.db.set_value("Holiday List", "_Test Holiday List", "is_default", 1)
 		
