Skip to content

Commit 4d9443d

Browse files
[TASKSCLOUD-330] - Added tests for tasks endpoints.
1 parent 570df58 commit 4d9443d

File tree

1 file changed

+182
-0
lines changed

1 file changed

+182
-0
lines changed

test/test_tasks.py

Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
#
2+
# --------------------------------------------------------------------------------------------------------------------
3+
# <copyright company="Aspose" file="test_tasks.py">
4+
# Copyright (c) 2020 Aspose.Tasks Cloud
5+
# </copyright>
6+
# <summary>
7+
# Permission is hereby granted, free of charge, to any person obtaining a copy
8+
# of this software and associated documentation files (the "Software"), to deal
9+
# in the Software without restriction, including without limitation the rights
10+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11+
# copies of the Software, and to permit persons to whom the Software is
12+
# furnished to do so, subject to the following conditions:
13+
#
14+
# The above copyright notice and this permission notice shall be included in all
15+
# copies or substantial portions of the Software.
16+
#
17+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23+
# SOFTWARE.
24+
# </summary>
25+
# --------------------------------------------------------------------------------------------------------------------
26+
#
27+
import json
28+
from datetime import datetime
29+
30+
from asposetaskscloud import GetTasksRequest, TaskItemsResponse, GetTaskRequest, TaskResponse, DeleteTaskRequest, \
31+
AsposeResponse, PostTaskRequest, TaskItemResponse, PutTaskRequest, CalculationMode, GetTaskAssignmentsRequest, \
32+
AssignmentsResponse, PutMoveTaskRequest, PutMoveTaskToSiblingRequest
33+
from asposetaskscloud.rest import ApiException
34+
from test.base_test_context import BaseTestContext
35+
36+
37+
class TestTasks(BaseTestContext):
38+
39+
def test_get_tasks(self):
40+
filename = 'Project2016.mpp'
41+
self.upload_file(filename)
42+
get_request = GetTasksRequest(filename)
43+
get_result = self.tasks_api.get_tasks(get_request)
44+
self.assertIsNotNone(get_result)
45+
self.assertIsInstance(get_result, TaskItemsResponse)
46+
self.assertIsNotNone(get_result.tasks)
47+
self.assertEqual(6, len(get_result.tasks.task_item))
48+
first_task = next(t for t in get_result.tasks.task_item if t.uid == 5)
49+
self.assertEqual('Summary Task 1', first_task.name)
50+
self.assertEqual(datetime(2015, 8, 3, 8, 0, 0), first_task.start)
51+
self.assertEqual(datetime(2015, 8, 6, 17, 0, 0), first_task.finish)
52+
self.assertEqual('/5', first_task.link.href)
53+
54+
def test_get_task(self):
55+
filename = 'Project2016.mpp'
56+
self.upload_file(filename)
57+
get_request = GetTaskRequest(filename, 5)
58+
get_result = self.tasks_api.get_task(get_request)
59+
self.assertIsNotNone(get_result)
60+
self.assertIsInstance(get_result, TaskResponse)
61+
self.assertIsNotNone(get_result.task)
62+
self.assertEqual(5, get_result.task.uid)
63+
self.assertEqual([1, 2, 3, 4], get_result.task.subtasks_uids)
64+
self.assertEqual('Summary Task 1', get_result.task.name)
65+
self.assertEqual(datetime(2015, 8, 3, 8, 0, 0), get_result.task.start)
66+
self.assertEqual(datetime(2015, 8, 6, 17, 0, 0), get_result.task.finish)
67+
self.assertEqual('1.08:00:00', get_result.task.remaining_work)
68+
self.assertEqual(1920, get_result.task.work_variance)
69+
70+
def test_delete_task(self):
71+
filename = 'Project2016.mpp'
72+
self.upload_file(filename)
73+
delete_request = DeleteTaskRequest(filename, 4)
74+
delete_result = self.tasks_api.delete_task(delete_request)
75+
self.assertIsNotNone(delete_result)
76+
self.assertIsInstance(delete_result, AsposeResponse)
77+
78+
get_request = GetTasksRequest(filename)
79+
get_result = self.tasks_api.get_tasks(get_request)
80+
self.assertIsNotNone(get_result)
81+
self.assertIsInstance(get_result, TaskItemsResponse)
82+
self.assertIsNotNone(get_result.tasks)
83+
self.assertEqual(5, len(get_result.tasks.task_item))
84+
deleted_task = next((t for t in get_result.tasks.task_item if t.uid == 4), None)
85+
self.assertIsNone(deleted_task)
86+
87+
def test_post_task(self):
88+
filename = 'Project2016.mpp'
89+
self.upload_file(filename)
90+
post_request = PostTaskRequest(filename, 'New task name', 4)
91+
post_result = self.tasks_api.post_task(post_request)
92+
self.assertIsNotNone(post_result)
93+
self.assertIsInstance(post_result, TaskItemResponse)
94+
self.assertIsNotNone(post_result.task_item)
95+
96+
get_request = GetTaskRequest(filename, post_result.task_item.uid)
97+
get_result = self.tasks_api.get_task(get_request)
98+
self.assertIsNotNone(get_result)
99+
self.assertIsInstance(get_result, TaskResponse)
100+
self.assertIsNotNone(get_result.task)
101+
102+
def test_put_task(self):
103+
filename = 'Project2016.mpp'
104+
self.upload_file(filename)
105+
get_request = GetTaskRequest(filename, 4)
106+
get_result = self.tasks_api.get_task(get_request)
107+
self.assertIsNotNone(get_result)
108+
self.assertIsInstance(get_result, TaskResponse)
109+
110+
get_result.task.name = "Modified task name"
111+
get_result.task.is_manual = True
112+
get_result.task.manual_start = datetime(2015, 10, 1, 9, 15, 0)
113+
get_result.task.manual_finish = datetime(2015, 10, 1, 17, 15, 0)
114+
put_request = PutTaskRequest(filename, 4, get_result.task, CalculationMode.NONE, False)
115+
put_result = self.tasks_api.put_task(put_request)
116+
self.assertIsNotNone(put_result)
117+
self.assertIsInstance(put_result, TaskResponse)
118+
119+
get_result = self.tasks_api.get_task(get_request)
120+
self.assertIsNotNone(get_result)
121+
self.assertIsInstance(get_result, TaskResponse)
122+
self.assertIsNotNone(get_result.task)
123+
self.assertEqual('Modified task name', get_result.task.name)
124+
self.assertTrue(get_result.task.is_manual)
125+
self.assertEqual(datetime(2015, 10, 1, 9, 15, 0), get_result.task.manual_start)
126+
self.assertEqual(datetime(2015, 10, 1, 17, 15, 0), get_result.task.manual_finish)
127+
128+
def test_get_task_assignments(self):
129+
filename = 'Home_move_plan.mpp'
130+
self.upload_file(filename)
131+
get_request = GetTaskAssignmentsRequest(filename, 1)
132+
get_result = self.tasks_api.get_task_assignments(get_request)
133+
self.assertIsNotNone(get_result)
134+
self.assertIsInstance(get_result, AssignmentsResponse)
135+
self.assertIsNotNone(get_result.assignments)
136+
137+
def test_put_move_task(self):
138+
filename = 'sample.mpp'
139+
self.upload_file(filename)
140+
get_request = GetTaskRequest(filename, 6)
141+
get_result = self.tasks_api.get_task(get_request)
142+
self.assertIsNotNone(get_result)
143+
self.assertIsInstance(get_result, TaskResponse)
144+
self.assertIsNone(next((s for s in get_result.task.subtasks_uids if s == 10), None))
145+
146+
put_request = PutMoveTaskRequest(filename, 10, 6)
147+
put_result = self.tasks_api.put_move_task(put_request)
148+
self.assertIsNotNone(put_result)
149+
self.assertIsInstance(put_result, AsposeResponse)
150+
151+
get_result = self.tasks_api.get_task(get_request)
152+
self.assertIsNotNone(get_result)
153+
self.assertIsInstance(get_result, TaskResponse)
154+
self.assertIsNotNone(next((s for s in get_result.task.subtasks_uids if s == 10), None))
155+
156+
def test_put_move_task_to_sibling(self):
157+
filename = 'NewProductDev.mpp'
158+
self.upload_file(filename)
159+
put_request = PutMoveTaskToSiblingRequest(filename, 40, 41)
160+
put_result = self.tasks_api.put_move_task_to_sibling(put_request)
161+
self.assertIsNotNone(put_result)
162+
self.assertIsInstance(put_result, AsposeResponse)
163+
164+
get_request = GetTaskRequest(filename, 38)
165+
get_result = self.tasks_api.get_task(get_request)
166+
self.assertIsNotNone(get_result)
167+
self.assertIsInstance(get_result, TaskResponse)
168+
self.assertEqual([39, 40, 41], get_result.task.subtasks_uids)
169+
170+
def test_put_move_task_to_sibling_negative(self):
171+
filename = 'NewProductDev.mpp'
172+
self.upload_file(filename)
173+
put_request = PutMoveTaskToSiblingRequest(filename, 99999, -1)
174+
put_result = None
175+
try:
176+
put_result = self.tasks_api.put_move_task_to_sibling(put_request)
177+
except ApiException as e:
178+
self.assertEqual("Not Found", e.reason)
179+
error_body = json.loads(e.body)
180+
self.assertEqual("TaskDoesntExist", error_body['Error']['Code'])
181+
self.assertEqual("Task with 99999 Uid doesn't exist", error_body['Error']['Message'])
182+
self.assertIsNone(put_result, 'the result of operation should not be obtained')

0 commit comments

Comments
 (0)