fix: corrected tests
diff --git a/erpnext/projects/doctype/project/project.py b/erpnext/projects/doctype/project/project.py
index 04a0fb6..dfb54a2 100644
--- a/erpnext/projects/doctype/project/project.py
+++ b/erpnext/projects/doctype/project/project.py
@@ -54,17 +54,15 @@
 				self.project_type = template.project_type
 
 			# create tasks from template
+			project_tasks = []
 			for task in template.tasks:
 				template_task_details = frappe.get_doc("Task", task.task)
-				project_task = self.create_task_from_template(template_task_details)
+				project_tasks.append(self.create_task_from_template(template_task_details))
 				
-				if template_task_details.depends_on:
-					for child_task in template_task_details.depends_on:
-						child_task_details = frappe.get_doc("Task",child_task.task)
-						self.create_task_from_template(child_task_details, project_task)
+			#self.dependency_mapping(template.tasks, project_tasks)
 
-	def create_task_from_template(self, task_details, project_task=None):
-		doc = frappe.get_doc(dict(
+	def create_task_from_template(self, task_details):
+		return frappe.get_doc(dict(
 				doctype = 'Task',
 				subject = task_details.subject,
 				project = self.name,
@@ -75,14 +73,21 @@
 				task_weight = task_details.task_weight,
 				type = task_details.type,
 				issue = task_details.issue,
-				is_group = task_details.is_group
-			))
-		if task_details.parent_task and project_task:
-			doc.parent_task = project_task.name
-		if not task_details.is_group:
-			doc.depends_on = task_details.depends_on
-		doc.insert()
-		return doc
+				is_group = task_details.is_group,
+				start = task_details.start,
+				duration = task_details.duration
+			)).insert()
+
+	""" def dependency_mapping(self, template_tasks, project_tasks):
+		for tmp_task in template_tasks:
+			for prj_task in project_tasks:
+				if tmp_task.subject == prj_task.subject:
+					if tmp_task.depends_on and not prj_task.depends_on:
+						for child_task in tmp_task.depends_on:
+							child_task_detai
+						prj_task.depends_on = tmp_task.depends_on
+					 """
+
 
 	def is_row_updated(self, row, existing_task_data, fields):
 		if self.get("__islocal") or not existing_task_data: return True
diff --git a/erpnext/projects/doctype/project/test_project.py b/erpnext/projects/doctype/project/test_project.py
index 52f877b..f9bb1b3 100644
--- a/erpnext/projects/doctype/project/test_project.py
+++ b/erpnext/projects/doctype/project/test_project.py
@@ -20,15 +20,16 @@
 		frappe.db.sql('delete from tabTask where project = "Test Project with Templ - no parent and dependend tasks"')
 		frappe.delete_doc('Project', 'Test Project with Templ - no parent and dependend tasks')
 
-		if not frappe.db.exists("Task", "Test Temp Task with no parent and dependency"):
-			task1 = create_task(subject="Test Temp Task with no parent and dependency", is_template=1, begin=0, duration=3)
+		task1 = task_exists("Test Temp Task with no parent and dependency")
+		if not task1:
+			task1 = create_task(subject="Test Temp Task with no parent and dependency", is_template=1, begin=5, duration=3)
 
 		template = make_project_template("Test Project Template - no parent and dependend tasks", [task1])
 		project = get_project("Test Project with Templ - no parent and dependend tasks", template)
 		tasks = frappe.get_all('Task', '*', dict(project=project.name), order_by='creation asc')
 
 		self.assertEqual(tasks[0].subject, 'Test Temp Task with no parent and dependency')
-		self.assertEqual(getdate(tasks[0].exp_end_date), add_days(nowdate() + 0 + 3))
+		self.assertEqual(getdate(tasks[0].exp_end_date), calculate_end_date(project, tasks[0]))
 		self.assertEqual(len(tasks), 1)
 
 	def test_project_template_having_parent_child_tasks(self):
@@ -36,28 +37,31 @@
 		frappe.db.sql('delete from tabTask where project = "Test Project with Templ - tasks with parent-child"')
 		frappe.delete_doc('Project', 'Test Project with Templ - tasks with parent-child')
 
-		if not frappe.db.exists("Task", "Test Temp Task parent"):
+		task1 = task_exists("Test Temp Task parent")
+		if not task1:
 			task1 = create_task(subject="Test Temp Task parent", is_group=1, is_template=1, begin=1, duration=1)
 
-		if not frappe.db.exists("Task", "Test Temp Task child 1"):
+		task2 = task_exists("Test Temp Task child 1")
+		if not task2:
 			task2 = create_task(subject="Test Temp Task child 1", parent_task=task1.name, is_template=1, begin=1, duration=3)
 		
-		if not frappe.db.exists("Task", "Test Temp Task child 2"):
+		task3 = task_exists("Test Temp Task child 2")
+		if not task3:
 			task3 = create_task(subject="Test Temp Task child 2", parent_task=task1.name, is_template=1, begin=2, duration=3)
 
-		template = make_project_template("Test Project Template  - tasks with parent-child", [task1, task2, task3])
+		template = make_project_template("Test Project Template  - tasks with parent-child", [task1])
 		project = get_project("Test Project with Templ - tasks with parent-child", template)
 		tasks = frappe.get_all('Task', '*', dict(project=project.name), order_by='creation asc')
-		print(tasks, type(tasks), len(tasks))
+		print(tasks[0].duration)
 		self.assertEqual(tasks[0].subject, 'Test Temp Task parent')
-		self.assertEqual(getdate(tasks[0].exp_end_date), add_days(nowdate()+ 1 + 1))
+		self.assertEqual(getdate(tasks[0].exp_end_date), calculate_end_date(project, tasks[0]))
 
 		self.assertEqual(tasks[1].subject, 'Test Temp Task child 1')
-		self.assertEqual(getdate(tasks[1].exp_end_date), add_days(nowdate()+ 1 + 3))
+		self.assertEqual(getdate(tasks[1].exp_end_date), calculate_end_date(project, tasks[1]))
 		self.assertEqual(tasks[1].parent_task, tasks[0].name)
 
 		self.assertEqual(tasks[2].subject, 'Test Temp Task child 2')
-		self.assertEqual(getdate(tasks[2].exp_end_date), add_days(nowdate()+ 2 + 3))
+		self.assertEqual(getdate(tasks[2].exp_end_date), calculate_end_date(project, tasks[2]))
 		self.assertEqual(tasks[2].parent_task, tasks[0].name)
 
 		self.assertEqual(len(tasks), 3)
@@ -67,22 +71,24 @@
 		frappe.db.sql('delete from tabTask where project = "Test Project with Templ - dependent tasks"')
 		frappe.delete_doc('Project', 'Test Project with Templ - dependent tasks')
 
-		if not frappe.db.exists("Task", "Test Temp Task for dependency"):
+		task1 = task_exists("Test Temp Task for dependency")
+		if not task1:
 			task1 = create_task(subject="Test Temp Task for dependency", is_template=1, begin=3, duration=1)
 
-		if not frappe.db.exists("Task", "Test Temp Task with dependency"):
+		task2 = task_exists("Test Temp Task with dependency")
+		if not task2:
 			task2 = create_task(subject="Test Temp Task with dependency", depends_on=task1.name, is_template=1, begin=2, duration=2)
 		
-		template = make_project_template("Test Project Template  - tasks with parent-child", [task1, task2])
+		template = make_project_template("Test Project with Templ - dependent tasks", [task2])
 		project = get_project("Test Project with Templ - tasks with parent-child", template)
 		tasks = frappe.get_all('Task', '*', dict(project=project.name), order_by='creation asc')
 
-		self.assertEqual(tasks[0].subject, 'Test Temp Task for dependency')
-		self.assertEqual(getdate(tasks[0].exp_end_date), add_days(nowdate()+ 3 + 1))
+		self.assertEqual(tasks[0].subject, 'Test Temp Task with dependency')
+		self.assertEqual(getdate(tasks[0].exp_end_date), calculate_end_date(project, tasks[0]))
+		self.assertEqual(tasks[0].depends_on, tasks[1].name)
 
-		self.assertEqual(tasks[1].subject, 'Test Temp Task with dependency')
-		self.assertEqual(getdate(tasks[1].exp_end_date), add_days(nowdate()+ 2 + 2))
-		self.assertEqual(tasks[1].depends_on, tasks[0].name)
+		self.assertEqual(tasks[1].subject, 'Test Temp Task for dependency')
+		self.assertEqual(getdate(tasks[1].exp_end_date), calculate_end_date(project, tasks[1]) )
 
 		self.assertEqual(len(tasks), 2)
 
@@ -93,7 +99,7 @@
 		project_name = name,
 		status = 'Open',
 		project_template = template.name,
-		expected_start_date = '2019-01-01'
+		expected_start_date = nowdate()
 	)).insert()
 
 	return project
@@ -114,4 +120,13 @@
 	if not frappe.db.exists("Project", args.project_name):
 		project.insert()
 
-	return project
\ No newline at end of file
+	return project
+
+def task_exists(subject):
+	result = frappe.db.get_list("Task", filters={"subject": subject},fields=["name"])
+	if not len(result):
+		return False
+	return frappe.get_doc("Task", result[0].name)
+
+def calculate_end_date(project, task):
+	return getdate(add_days(project.expected_start_date, task.start + task.duration))
\ No newline at end of file
diff --git a/erpnext/projects/doctype/project_template/test_project_template.py b/erpnext/projects/doctype/project_template/test_project_template.py
index 379365f..6c6b783 100644
--- a/erpnext/projects/doctype/project_template/test_project_template.py
+++ b/erpnext/projects/doctype/project_template/test_project_template.py
@@ -17,9 +17,7 @@
 			name = project_template_name,
 			tasks = project_tasks or [
 				create_task(subject="_Test Template Task 1", is_template=1, begin=0, duration=3),
-				create_task(subject="_Test Template Task 2", is_template=1, begin=0, duration=2),
-				create_task(subject="_Test Template Task 3", is_template=1, begin=2, duration=4),
-				create_task(subject="_Test Template Task 4", is_template=1, begin=3, duration=2),
+				create_task(subject="_Test Template Task 2", is_template=1, begin=0, duration=2)
 			]
 		)).insert()
 
@@ -27,13 +25,18 @@
 
 def make_project_template(project_template_name, project_tasks=[]):
 	if not frappe.db.exists('Project Template', project_template_name):
-		frappe.get_doc(dict(
-			doctype = 'Project Template',
-			name = project_template_name,
-			tasks = project_tasks or [
+		project_tasks = project_tasks or [
 				create_task(subject="_Test Template Task 1", is_template=1, begin=0, duration=3),
 				create_task(subject="_Test Template Task 2", is_template=1, begin=0, duration=2),
 			]
-		)).insert()
+		doc = frappe.get_doc(dict(
+			doctype = 'Project Template',
+			name = project_template_name
+		))
+		for task in project_tasks:
+			doc.append("tasks",{
+				"task": task.name
+			})
+		doc.insert()
 
 	return frappe.get_doc('Project Template', project_template_name)
\ No newline at end of file
diff --git a/erpnext/projects/doctype/task/test_task.py b/erpnext/projects/doctype/task/test_task.py
index 181a2dc..d43d132 100644
--- a/erpnext/projects/doctype/task/test_task.py
+++ b/erpnext/projects/doctype/task/test_task.py
@@ -104,11 +104,12 @@
 		task.subject = subject
 		task.exp_start_date = start or nowdate()
 		task.exp_end_date = end or nowdate()
-		task.project = project or "_Test Project"
-		task.is_template = is_template,
+		task.project = project
+		task.is_template = is_template
 		task.start = begin
-		task.duration = duration,
+		task.duration = duration
 		task.is_group = is_group
+		task.parent_task = parent_task
 		if save:
 			task.save()
 	else:
@@ -120,5 +121,4 @@
 		})
 		if save:
 			task.save()
-
 	return task