diff --git a/erpnext/hr/doctype/attendance_request/attendance_request.py b/erpnext/hr/doctype/attendance_request/attendance_request.py
index 4cab11f..a4598a7 100644
--- a/erpnext/hr/doctype/attendance_request/attendance_request.py
+++ b/erpnext/hr/doctype/attendance_request/attendance_request.py
@@ -49,6 +49,7 @@
 	def validate_if_attendance_not_applicable(self, attendance_date):
 		# Check if attendance_date is a Holiday
 		if is_holiday(self.employee, attendance_date):
+			frappe.msgprint(_("Attendance not submitted for {0} as it is a Holiday.").format(attendance_date), alert=1)
 			return True
 
 		# Check if employee on Leave
@@ -56,6 +57,7 @@
 			where employee = %s and %s between from_date and to_date
 			and docstatus = 1""", (self.employee, attendance_date), as_dict=True)
 		if leave_record:
+			frappe.msgprint(_("Attendance not submitted for {0} as {1} on leave.").format(attendance_date, self.employee), alert=1)
 			return True
 
 		return False
diff --git a/erpnext/hr/doctype/attendance_request/test_attendance_request.py b/erpnext/hr/doctype/attendance_request/test_attendance_request.py
index d737699..a2c39d9 100644
--- a/erpnext/hr/doctype/attendance_request/test_attendance_request.py
+++ b/erpnext/hr/doctype/attendance_request/test_attendance_request.py
@@ -5,6 +5,34 @@
 
 import frappe
 import unittest
+from frappe.utils import nowdate
+from datetime import date
 
 class TestAttendanceRequest(unittest.TestCase):
-	pass
+	def setUp(self):
+		for doctype in ["Attendance Request", "Attendance"]:
+			frappe.db.sql("delete from `tab{doctype}`".format(doctype=doctype))
+
+	def test_attendance_request(self):
+		today = nowdate()
+		employee = get_employee()
+		attendance_request = frappe.new_doc("Attendance Request")
+		attendance_request.employee = employee.name
+		attendance_request.from_date = date(date.today().year, 1, 1)
+		attendance_request.to_date = date(date.today().year, 1, 2)
+		attendance_request.reason = "Work From Home"
+		attendance_request.company = "_Test Company"
+		attendance_request.insert()
+		attendance_request.submit()
+		attendance = frappe.get_doc('Attendance', {
+			'employee': employee.name,
+			'attendance_date': date(date.today().year, 1, 1),
+			'docstatus': 1
+		})
+		self.assertEqual(attendance.status, 'Present')
+		attendance_request.cancel()
+		attendance.reload()
+		self.assertEqual(attendance.docstatus, 2)
+
+def get_employee():
+	return frappe.get_doc("Employee", "_T-Employee-00001")
\ No newline at end of file
