Esempio n. 1
0
    def test_project_template_having_dependent_tasks(self):
        project_name = "Test Project with Template - Dependent Tasks"
        frappe.db.sql(
            """ delete from tabTask where project = %s  """, project_name)
        frappe.delete_doc('Project', project_name)

        task1 = task_exists("Test Template Task for Dependency")
        if not task1:
            task1 = create_task(
                subject="Test Template Task for Dependency", is_template=1, begin=3, duration=1)

        task2 = task_exists("Test Template Task with Dependency")
        if not task2:
            task2 = create_task(subject="Test Template Task with Dependency",
                                depends_on=task1.name, is_template=1, begin=2, duration=2)

        template = make_project_template(
            "Test Project with Template - Dependent Tasks", [task1, task2])
        project = get_project(project_name, template)
        tasks = frappe.get_all('Task', ['subject', 'exp_end_date', 'depends_on_tasks', 'name'], dict(
            project=project.name), order_by='creation asc')

        self.assertEqual(tasks[1].subject,
                         'Test Template Task with Dependency')
        self.assertEqual(
            getdate(tasks[1].exp_end_date), calculate_end_date(project, 2, 2))
        self.assertTrue(tasks[1].depends_on_tasks.find(tasks[0].name) >= 0)

        self.assertEqual(tasks[0].subject, 'Test Template Task for Dependency')
        self.assertEqual(
            getdate(tasks[0].exp_end_date), calculate_end_date(project, 3, 1))

        self.assertEqual(len(tasks), 2)
Esempio n. 2
0
	def test_project_template_having_parent_child_tasks(self):
		project_name = "Test Project with Template - Tasks with Parent-Child Relation"
		frappe.db.sql(""" delete from tabTask where project = %s """, project_name)
		frappe.delete_doc('Project', project_name)

		task1 = task_exists("Test Template Task Parent")
		if not task1:
			task1 = create_task(subject="Test Template Task Parent", is_group=1, is_template=1, begin=1, duration=1)

		task2 = task_exists("Test Template Task Child 1")
		if not task2:
			task2 = create_task(subject="Test Template Task Child 1", parent_task=task1.name, is_template=1, begin=1, duration=3)

		task3 = task_exists("Test Template Task Child 2")
		if not task3:
			task3 = create_task(subject="Test Template 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 Relation", [task1, task2, task3])
		project = get_project(project_name, template)
		tasks = frappe.get_all('Task', ['subject','exp_end_date','depends_on_tasks', 'name', 'parent_task'], dict(project=project.name), order_by='creation asc')

		self.assertEqual(tasks[0].subject, 'Test Template Task Parent')
		self.assertEqual(getdate(tasks[0].exp_end_date), calculate_end_date(project, 1, 1))

		self.assertEqual(tasks[1].subject, 'Test Template Task Child 1')
		self.assertEqual(getdate(tasks[1].exp_end_date), calculate_end_date(project, 1, 3))
		self.assertEqual(tasks[1].parent_task, tasks[0].name)

		self.assertEqual(tasks[2].subject, 'Test Template Task Child 2')
		self.assertEqual(getdate(tasks[2].exp_end_date), calculate_end_date(project, 2, 3))
		self.assertEqual(tasks[2].parent_task, tasks[0].name)

		self.assertEqual(len(tasks), 3)
    def setUp(self):
        task1 = create_task("_Test Task 98", add_days(nowdate(), -10),
                            nowdate())
        create_task("_Test Task 99", add_days(nowdate(), -10),
                    add_days(nowdate(), -1))

        task1.status = "Completed"
        task1.completed_on = add_days(nowdate(), -1)
        task1.save()
Esempio n. 4
0
    def test_project_with_template_having_no_parent_and_depend_tasks(self):
        project_name = "Test Project with Template - No Parent and Dependend Tasks"
        frappe.db.sql(""" delete from tabTask where project = %s """,
                      project_name)
        frappe.delete_doc('Project', project_name)

        task1 = task_exists("Test Template Task with No Parent and Dependency")
        if not task1:
            task1 = create_task(
                subject="Test Template 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(project_name, template)
        tasks = frappe.get_all('Task',
                               ['subject', 'exp_end_date', 'depends_on_tasks'],
                               dict(project=project.name),
                               order_by='creation asc')

        self.assertEqual(tasks[0].subject,
                         'Test Template Task with No Parent and Dependency')
        self.assertEqual(getdate(tasks[0].exp_end_date),
                         calculate_end_date(project, 5, 3))
        self.assertEqual(len(tasks), 1)
Esempio n. 5
0
def make_project_template(project_template_name, project_tasks=[]):
    if not frappe.db.exists("Project Template", project_template_name):
        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),
        ]
        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)
Esempio n. 6
0
    def test_project_template_having_parent_child_tasks(self):
        project_name = "Test Project with Template - Tasks with Parent-Child Relation"

        if frappe.db.get_value("Project", {"project_name": project_name},
                               "name"):
            project_name = frappe.db.get_value("Project",
                                               {"project_name": project_name},
                                               "name")

        frappe.db.sql(""" delete from tabTask where project = %s """,
                      project_name)
        frappe.delete_doc("Project", project_name)

        task1 = task_exists("Test Template Task Parent")
        if not task1:
            task1 = create_task(subject="Test Template Task Parent",
                                is_group=1,
                                is_template=1,
                                begin=1,
                                duration=10)

        task2 = task_exists("Test Template Task Child 1")
        if not task2:
            task2 = create_task(
                subject="Test Template Task Child 1",
                parent_task=task1.name,
                is_template=1,
                begin=1,
                duration=3,
            )

        task3 = task_exists("Test Template Task Child 2")
        if not task3:
            task3 = create_task(
                subject="Test Template 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 Relation",
            [task1, task2, task3])
        project = get_project(project_name, template)
        tasks = frappe.get_all(
            "Task",
            [
                "subject", "exp_end_date", "depends_on_tasks", "name",
                "parent_task"
            ],
            dict(project=project.name),
            order_by="creation asc",
        )

        self.assertEqual(tasks[0].subject, "Test Template Task Parent")
        self.assertEqual(getdate(tasks[0].exp_end_date),
                         calculate_end_date(project, 1, 10))

        self.assertEqual(tasks[1].subject, "Test Template Task Child 1")
        self.assertEqual(getdate(tasks[1].exp_end_date),
                         calculate_end_date(project, 1, 3))
        self.assertEqual(tasks[1].parent_task, tasks[0].name)

        self.assertEqual(tasks[2].subject, "Test Template Task Child 2")
        self.assertEqual(getdate(tasks[2].exp_end_date),
                         calculate_end_date(project, 2, 3))
        self.assertEqual(tasks[2].parent_task, tasks[0].name)

        self.assertEqual(len(tasks), 3)