simulate added to make_time_log in test_time_log
diff --git a/erpnext/manufacturing/doctype/production_order/test_production_order.py b/erpnext/manufacturing/doctype/production_order/test_production_order.py
index 838ef38..4d65337 100644
--- a/erpnext/manufacturing/doctype/production_order/test_production_order.py
+++ b/erpnext/manufacturing/doctype/production_order/test_production_order.py
@@ -5,10 +5,10 @@
 from __future__ import unicode_literals
 import unittest
 import frappe
-from frappe.utils import flt, get_datetime, time_diff_in_hours, now, add_days
+from frappe.utils import flt, time_diff_in_hours, now, add_days
 from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import set_perpetual_inventory
 from erpnext.manufacturing.doctype.production_order.production_order \
-	import make_stock_entry, make_time_log, ProductionNotApplicableError,ItemHasVariantError
+	import make_stock_entry, ProductionNotApplicableError,ItemHasVariantError
 from erpnext.stock.doctype.stock_entry import test_stock_entry
 from erpnext.projects.doctype.time_log.time_log import OverProductionLoggedError
 
@@ -68,6 +68,7 @@
 		self.assertRaises(StockOverProductionError, s.submit)
 
 	def test_make_time_log(self):
+		from erpnext.projects.doctype.time_log.test_time_log import make_time_log_test_record
 		prod_order = make_prod_order_test_record(item="_Test FG Item 2",
 			planned_start_date=now(), qty=1, do_not_save=True)
 
@@ -79,17 +80,13 @@
 
 		d.completed_qty = flt(d.completed_qty)
 
-		time_log = make_time_log(prod_order.name, d.operation, \
-			d.planned_start_time, d.planned_end_time, prod_order.qty - d.completed_qty,
-			operation_id=d.name)
+		time_log = make_time_log_test_record(hours=1, production_order= prod_order.name, operation= d.operation,
+			completed_qty= prod_order.qty - d.completed_qty, operation_id=d.name, for_manufacturing=1, simulate=True)
 
 		self.assertEqual(prod_order.name, time_log.production_order)
 		self.assertEqual((prod_order.qty - d.completed_qty), time_log.completed_qty)
 		self.assertEqual(time_diff_in_hours(d.planned_end_time, d.planned_start_time),time_log.hours)
-
-		time_log.save()
-		time_log.submit()
-
+		
 		manufacturing_settings = frappe.get_doc({
 			"doctype": "Manufacturing Settings",
 			"allow_production_on_holidays": 0
@@ -101,11 +98,6 @@
 		self.assertEqual(prod_order.operations[0].status, "Completed")
 		self.assertEqual(prod_order.operations[0].completed_qty, prod_order.qty)
 
-		self.assertEqual(get_datetime(prod_order.operations[0].actual_start_time),
-			get_datetime(time_log.from_time))
-		self.assertEqual(get_datetime(prod_order.operations[0].actual_end_time),
-			get_datetime(time_log.to_time))
-
 		self.assertEqual(prod_order.operations[0].actual_operation_time, 60)
 		self.assertEqual(prod_order.operations[0].actual_operating_cost, 100)
 
@@ -118,13 +110,9 @@
 		self.assertEqual(flt(prod_order.operations[0].actual_operation_time), 0)
 		self.assertEqual(flt(prod_order.operations[0].actual_operating_cost), 0)
 
-		time_log2 = frappe.copy_doc(time_log)
-		time_log2.update({
-			"completed_qty": 10,
-			"from_time": now(),
-			"to_time": add_days(now(), 1),
-			"docstatus": 0
-		})
+		time_log2 = make_time_log_test_record(from_time= add_days(time_log.to_time, 1) ,production_order= prod_order.name, operation= d.operation,
+			completed_qty= 5, operation_id=d.name, for_manufacturing=1, do_not_save=True)
+
 		self.assertRaises(OverProductionLoggedError, time_log2.save)
 
 	def test_planned_operating_cost(self):
diff --git a/erpnext/projects/doctype/time_log/test_time_log.py b/erpnext/projects/doctype/time_log/test_time_log.py
index c9cc51e..9bdf588 100644
--- a/erpnext/projects/doctype/time_log/test_time_log.py
+++ b/erpnext/projects/doctype/time_log/test_time_log.py
@@ -14,15 +14,12 @@
 
 class TestTimeLog(unittest.TestCase):
 	def test_duplication(self):
-		date = now_datetime()
-		tl1 = make_time_log_test_record(user= "test@example.com", employee= "_T-Employee-0002",
-			from_time= date, to_time= date + datetime.timedelta(seconds=1))
+		tl1 = make_time_log_test_record(user= "test@example.com", employee= "_T-Employee-0002", simulate= True)
 
 		tl2 = make_time_log_test_record(user= "test@example.com", employee= "_T-Employee-0002",
-			from_time= date, to_time= date + datetime.timedelta(seconds=1), do_not_save= 1)
+			from_time= tl1.from_time, to_time= tl1.to_time, do_not_save= 1)
 
 		self.assertRaises(OverlapError, tl2.insert)
-		tl1.cancel()
 
 	def test_production_order_status(self):
 		prod_order = make_prod_order_test_record(item= "_Test FG Item 2", qty= 1, do_not_submit= True)
@@ -30,7 +27,7 @@
 		prod_order.save()
 
 		time_log = make_time_log_test_record(for_manufacturing= 1, production_order= prod_order.name, qty= 1, 
-			employee= "_T-Employee-0003", do_not_save= True)
+			employee= "_T-Employee-0003", do_not_save= True, simulate=1)
 
 		self.assertRaises(NotSubmittedError, time_log.save)
 
@@ -114,11 +111,8 @@
 	time_log = frappe.new_doc("Time Log")
 	
 	time_log.from_time = args.from_time or now_datetime()
-	time_log.to_time = args.to_time or time_log.from_time + datetime.timedelta(seconds=1)
-	
-	if args.hours>0:
-		time_log.hours = args.hours
-		time_log.to_time = time_log.from_time + datetime.timedelta(hours= args.hours)
+	time_log.hours = args.hours or 1
+	time_log.to_time = args.to_time or time_log.from_time + datetime.timedelta(hours= time_log.hours)
 	
 	time_log.project = args.project
 	time_log.task = args.task
@@ -127,14 +121,23 @@
 	time_log.operation = args.operation
 	time_log.operation_id = args.operation_id
 	time_log.workstation = args.workstation
-	time_log.qty = args.qty or 1
+	time_log.completed_qty = args.completed_qty
 	time_log.activity_type = args.activity_type or "_Test Activity Type"
 	time_log.billable = args.billable or 1
 	time_log.employee = args.employee
 	time_log.user = args.user
 	
 	if not args.do_not_save:
-		time_log.insert()
+		if args.simulate:
+			while True:
+				try:
+					time_log.save()
+					break
+				except OverlapError:
+					time_log.from_time = time_log.from_time + datetime.timedelta(minutes=10)
+					time_log.to_time = time_log.from_time + datetime.timedelta(hours= time_log.hours)
+		else:
+			time_log.save()
 		if not args.do_not_submit:
 			time_log.submit()
 
diff --git a/erpnext/projects/doctype/time_log_batch/test_time_log_batch.py b/erpnext/projects/doctype/time_log_batch/test_time_log_batch.py
index 1166c76..9f3591d 100644
--- a/erpnext/projects/doctype/time_log_batch/test_time_log_batch.py
+++ b/erpnext/projects/doctype/time_log_batch/test_time_log_batch.py
@@ -7,7 +7,7 @@
 
 class TimeLogBatchTest(unittest.TestCase):
 	def test_time_log_status(self):
-		time_log = make_time_log_test_record(employee= "_T-Employee-0002")
+		time_log = make_time_log_test_record(simulate=True)
 
 		self.assertEquals(frappe.db.get_value("Time Log", time_log.name, "status"), "Submitted")