Merge branch 'staging-fixes' into update_items_bug
diff --git a/erpnext/hr/doctype/department/test_department.py b/erpnext/hr/doctype/department/test_department.py
index da69661..2eeca26 100644
--- a/erpnext/hr/doctype/department/test_department.py
+++ b/erpnext/hr/doctype/department/test_department.py
@@ -1,9 +1,24 @@
 # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 # License: GNU General Public License v3. See license.txt
 from __future__ import unicode_literals
+import frappe
+import unittest
 
 test_ignore = ["Leave Block List"]
+class TestDepartment(unittest.TestCase):
+    def test_remove_department_data(self):
+        doc = create_department("Test Department")
+        frappe.delete_doc('Department', doc.name)
 
+def create_department(department_name, parent_department=None):
+    doc = frappe.get_doc({
+        'doctype': 'Department',
+        'is_group': 0,
+        'parent_department': parent_department,
+        'department_name': department_name,
+        'company': frappe.defaults.get_defaults().company
+    }).insert()
 
-import frappe
+    return doc
+
 test_records = frappe.get_test_records('Department')
\ No newline at end of file
diff --git a/erpnext/hr/doctype/leave_application/test_leave_application.py b/erpnext/hr/doctype/leave_application/test_leave_application.py
index 4748011..a682e8b 100644
--- a/erpnext/hr/doctype/leave_application/test_leave_application.py
+++ b/erpnext/hr/doctype/leave_application/test_leave_application.py
@@ -457,7 +457,7 @@
 		return frappe.get_doc(dict(
 				name = 'Test Leave Period',
 				doctype = 'Leave Period',
-				from_date = "{0}-01-01".format(now_datetime().year),
+				from_date = "{0}-12-01".format(now_datetime().year - 1),
 				to_date = "{0}-12-31".format(now_datetime().year),
 				company = "_Test Company",
 				is_active = 1
diff --git a/erpnext/hr/doctype/upload_attendance/test_upload_attendance.py b/erpnext/hr/doctype/upload_attendance/test_upload_attendance.py
index 5ab2847..6e151d0 100644
--- a/erpnext/hr/doctype/upload_attendance/test_upload_attendance.py
+++ b/erpnext/hr/doctype/upload_attendance/test_upload_attendance.py
@@ -29,6 +29,5 @@
 		for row in data:
 			if row[1] == employee:
 				filtered_data.append(row)
-		print(filtered_data)
 		for row in filtered_data:
 			self.assertTrue(getdate(row[3]) >= getdate(date_of_joining) and getdate(row[3]) <= getdate(relieving_date))
diff --git a/erpnext/projects/doctype/timesheet/test_timesheet.py b/erpnext/projects/doctype/timesheet/test_timesheet.py
index 8c84c11..f117903 100644
--- a/erpnext/projects/doctype/timesheet/test_timesheet.py
+++ b/erpnext/projects/doctype/timesheet/test_timesheet.py
@@ -186,6 +186,8 @@
 
 	if not frappe.db.get_value("Salary Structure Assignment",
 		{'employee':employee, 'docstatus': 1}):
+			frappe.db.set_value('Employee', employee, 'date_of_joining',
+				add_months(nowdate(), -5))
 			create_salary_structure_assignment(employee, salary_structure.name)
 
 	return salary_structure
diff --git a/erpnext/utilities/transaction_base.py b/erpnext/utilities/transaction_base.py
index 4845e0b..f845cef 100644
--- a/erpnext/utilities/transaction_base.py
+++ b/erpnext/utilities/transaction_base.py
@@ -146,8 +146,18 @@
 		return ret
 
 def delete_events(ref_type, ref_name):
-	frappe.delete_doc("Event", frappe.db.sql_list("""select name from `tabEvent`
-		where ref_type=%s and ref_name=%s""", (ref_type, ref_name)), for_reload=True)
+	events = frappe.db.sql_list(""" SELECT
+			distinct `tabEvent`.name
+		from
+			`tabEvent`, `tabEvent Participants`
+		where
+			`tabEvent`.name = `tabEvent Participants`.parent
+			and `tabEvent Participants`.reference_doctype = %s
+			and `tabEvent Participants`.reference_docname = %s
+		""", (ref_type, ref_name)) or []
+
+	if events:
+		frappe.delete_doc("Event", events, for_reload=True)
 
 def validate_uom_is_integer(doc, uom_field, qty_fields, child_dt=None):
 	if isinstance(qty_fields, string_types):