Skip to content

Commit 94258ec

Browse files
[TASKSCLOUD-331] - Added tests for tasks extended attributes endpoints.
1 parent 4d9443d commit 94258ec

File tree

1 file changed

+292
-0
lines changed

1 file changed

+292
-0
lines changed
Lines changed: 292 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,292 @@
1+
#
2+
# --------------------------------------------------------------------------------------------------------------------
3+
# <copyright company="Aspose" file="test_tasks_extended_attributes.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+
from datetime import datetime
28+
29+
from asposetaskscloud import Value, ExtendedAttributeDefinition, CalculationType, CustomFieldType, ElementType, \
30+
PutExtendedAttributeRequest, ExtendedAttributeItemResponse, GetTaskRequest, TaskResponse, ExtendedAttribute, \
31+
PutTaskRequest, Duration, TimeUnitType
32+
from test.base_test_context import BaseTestContext
33+
34+
35+
class TestTasksExtendedAttributes(BaseTestContext):
36+
37+
def test_put_extended_attribute(self):
38+
filename = 'NewProductDev.mpp'
39+
self.upload_file(filename)
40+
first_value = Value()
41+
first_value.description = "descr1"
42+
first_value.val = "Internal"
43+
first_value.id = 111
44+
second_value = Value()
45+
second_value.description = "descr2"
46+
second_value.val = "External"
47+
second_value.id = 112
48+
new_extended_attribute = ExtendedAttributeDefinition()
49+
new_extended_attribute.calculation_type = CalculationType.LOOKUP
50+
new_extended_attribute.cf_type = CustomFieldType.TEXT
51+
new_extended_attribute.field_name = "Text3"
52+
new_extended_attribute.element_type = ElementType.TASK
53+
new_extended_attribute.alias = "New Field"
54+
new_extended_attribute.value_list = [first_value, second_value]
55+
put_request = PutExtendedAttributeRequest(new_extended_attribute, filename)
56+
put_result = self.tasks_api.put_extended_attribute(put_request)
57+
self.assertIsNotNone(put_result)
58+
self.assertIsInstance(put_result, ExtendedAttributeItemResponse)
59+
60+
get_request = GetTaskRequest(filename, 27)
61+
get_result = self.tasks_api.get_task(get_request)
62+
self.assertIsNotNone(get_result)
63+
self.assertIsInstance(get_result, TaskResponse)
64+
65+
new_extended_attribute = ExtendedAttribute(put_result.extended_attribute.field_id, lookup_value_id=112)
66+
get_result.task.extended_attributes.append(new_extended_attribute)
67+
get_result.task.baselines[0].start = datetime.now()
68+
get_result.task.baselines[0].finish = datetime.now()
69+
put_request = PutTaskRequest(filename, 27, get_result.task)
70+
put_result = self.tasks_api.put_task(put_request)
71+
self.assertIsNotNone(put_result)
72+
self.assertIsInstance(put_result, TaskResponse)
73+
74+
get_result = self.tasks_api.get_task(get_request)
75+
self.assertIsNotNone(get_result)
76+
self.assertIsInstance(get_result, TaskResponse)
77+
self.assertEqual('188743737', get_result.task.extended_attributes[0].field_id)
78+
self.assertEqual(112, get_result.task.extended_attributes[0].lookup_value_id)
79+
80+
def test_put_extended_attribute_second_case_with_uniform_date_value(self):
81+
filename = 'NewProductDev.mpp'
82+
self.upload_file(filename)
83+
new_extended_attribute = ExtendedAttributeDefinition()
84+
new_extended_attribute.calculation_type = CalculationType.NONE
85+
new_extended_attribute.cf_type = CustomFieldType.FINISH
86+
new_extended_attribute.field_name = "Finish4"
87+
new_extended_attribute.element_type = ElementType.TASK
88+
new_extended_attribute.alias = "Custom Finish Field"
89+
put_request = PutExtendedAttributeRequest(new_extended_attribute, filename)
90+
put_result = self.tasks_api.put_extended_attribute(put_request)
91+
self.assertIsNotNone(put_result)
92+
self.assertIsInstance(put_result, ExtendedAttributeItemResponse)
93+
94+
get_request = GetTaskRequest(filename, 27)
95+
get_result = self.tasks_api.get_task(get_request)
96+
self.assertIsNotNone(get_result)
97+
self.assertIsInstance(get_result, TaskResponse)
98+
99+
new_extended_attribute = ExtendedAttribute('188743742', date_value=datetime(2018, 3, 4, 12, 30, 0))
100+
get_result.task.extended_attributes.append(new_extended_attribute)
101+
get_result.task.baselines[0].start = datetime.now()
102+
get_result.task.baselines[0].finish = datetime.now()
103+
put_request = PutTaskRequest(filename, 27, get_result.task)
104+
put_result = self.tasks_api.put_task(put_request)
105+
self.assertIsNotNone(put_result)
106+
self.assertIsInstance(put_result, TaskResponse)
107+
108+
get_result = self.tasks_api.get_task(get_request)
109+
self.assertIsNotNone(get_result)
110+
self.assertIsInstance(get_result, TaskResponse)
111+
self.assertEqual(1, len(get_result.task.extended_attributes))
112+
self.assertEqual('188743742', get_result.task.extended_attributes[0].field_id)
113+
self.assertEqual(datetime(2018, 3, 4, 12, 30, 0), get_result.task.extended_attributes[0].date_value)
114+
115+
def test_put_extended_attribute_third_case_with_uniform_duration_value(self):
116+
filename = 'NewProductDev.mpp'
117+
self.upload_file(filename)
118+
new_extended_attribute = ExtendedAttributeDefinition()
119+
new_extended_attribute.calculation_type = CalculationType.NONE
120+
new_extended_attribute.cf_type = CustomFieldType.DURATION
121+
new_extended_attribute.field_name = "Duration3"
122+
new_extended_attribute.element_type = ElementType.TASK
123+
new_extended_attribute.alias = "Custom Duration Field"
124+
put_request = PutExtendedAttributeRequest(new_extended_attribute, filename)
125+
put_result = self.tasks_api.put_extended_attribute(put_request)
126+
self.assertIsNotNone(put_result)
127+
self.assertIsInstance(put_result, ExtendedAttributeItemResponse)
128+
129+
get_request = GetTaskRequest(filename, 27)
130+
get_result = self.tasks_api.get_task(get_request)
131+
self.assertIsNotNone(get_result)
132+
self.assertIsInstance(get_result, TaskResponse)
133+
134+
duration = Duration()
135+
duration.time_span = '04:00:00'
136+
duration.time_unit = TimeUnitType.MINUTE
137+
new_extended_attribute = ExtendedAttribute('188743785', duration_value=duration)
138+
get_result.task.extended_attributes.append(new_extended_attribute)
139+
get_result.task.baselines[0].start = datetime.now()
140+
get_result.task.baselines[0].finish = datetime.now()
141+
put_request = PutTaskRequest(filename, 27, get_result.task)
142+
put_result = self.tasks_api.put_task(put_request)
143+
self.assertIsNotNone(put_result)
144+
self.assertIsInstance(put_result, TaskResponse)
145+
146+
get_result = self.tasks_api.get_task(get_request)
147+
self.assertIsNotNone(get_result)
148+
self.assertIsInstance(get_result, TaskResponse)
149+
self.assertEqual(1, len(get_result.task.extended_attributes))
150+
self.assertEqual('188743785', get_result.task.extended_attributes[0].field_id)
151+
self.assertIsNotNone(get_result.task.extended_attributes[0].duration_value)
152+
self.assertEqual('04:00:00', get_result.task.extended_attributes[0].duration_value.time_span)
153+
154+
def test_put_extended_attribute_fourth_case_with_uniform_flag_value(self):
155+
filename = 'NewProductDev.mpp'
156+
self.upload_file(filename)
157+
new_extended_attribute = ExtendedAttributeDefinition()
158+
new_extended_attribute.calculation_type = CalculationType.NONE
159+
new_extended_attribute.cf_type = CustomFieldType.FLAG
160+
new_extended_attribute.field_name = "Flag12"
161+
new_extended_attribute.element_type = ElementType.TASK
162+
new_extended_attribute.alias = "Custom Flag Field"
163+
put_request = PutExtendedAttributeRequest(new_extended_attribute, filename)
164+
put_result = self.tasks_api.put_extended_attribute(put_request)
165+
self.assertIsNotNone(put_result)
166+
self.assertIsInstance(put_result, ExtendedAttributeItemResponse)
167+
168+
get_request = GetTaskRequest(filename, 27)
169+
get_result = self.tasks_api.get_task(get_request)
170+
self.assertIsNotNone(get_result)
171+
self.assertIsInstance(get_result, TaskResponse)
172+
173+
new_extended_attribute = ExtendedAttribute('188743973', flag_value=True)
174+
get_result.task.extended_attributes.append(new_extended_attribute)
175+
get_result.task.baselines[0].start = datetime.now()
176+
get_result.task.baselines[0].finish = datetime.now()
177+
put_request = PutTaskRequest(filename, 27, get_result.task)
178+
put_result = self.tasks_api.put_task(put_request)
179+
self.assertIsNotNone(put_result)
180+
self.assertIsInstance(put_result, TaskResponse)
181+
182+
get_result = self.tasks_api.get_task(get_request)
183+
self.assertIsNotNone(get_result)
184+
self.assertIsInstance(get_result, TaskResponse)
185+
self.assertEqual(1, len(get_result.task.extended_attributes))
186+
self.assertEqual('188743973', get_result.task.extended_attributes[0].field_id)
187+
self.assertTrue(get_result.task.extended_attributes[0].flag_value)
188+
189+
def test_put_extended_attribute_fifth_case_with_uniform_cost_value(self):
190+
filename = 'NewProductDev.mpp'
191+
self.upload_file(filename)
192+
new_extended_attribute = ExtendedAttributeDefinition()
193+
new_extended_attribute.calculation_type = CalculationType.NONE
194+
new_extended_attribute.cf_type = CustomFieldType.COST
195+
new_extended_attribute.field_name = "Cost10"
196+
new_extended_attribute.element_type = ElementType.TASK
197+
new_extended_attribute.alias = "Custom Cost Field"
198+
put_request = PutExtendedAttributeRequest(new_extended_attribute, filename)
199+
put_result = self.tasks_api.put_extended_attribute(put_request)
200+
self.assertIsNotNone(put_result)
201+
self.assertIsInstance(put_result, ExtendedAttributeItemResponse)
202+
203+
get_request = GetTaskRequest(filename, 27)
204+
get_result = self.tasks_api.get_task(get_request)
205+
self.assertIsNotNone(get_result)
206+
self.assertIsInstance(get_result, TaskResponse)
207+
208+
new_extended_attribute = ExtendedAttribute('188743944', numeric_value=115.99)
209+
get_result.task.extended_attributes.append(new_extended_attribute)
210+
get_result.task.baselines[0].start = datetime.now()
211+
get_result.task.baselines[0].finish = datetime.now()
212+
put_request = PutTaskRequest(filename, 27, get_result.task)
213+
put_result = self.tasks_api.put_task(put_request)
214+
self.assertIsNotNone(put_result)
215+
self.assertIsInstance(put_result, TaskResponse)
216+
217+
get_result = self.tasks_api.get_task(get_request)
218+
self.assertIsNotNone(get_result)
219+
self.assertIsInstance(get_result, TaskResponse)
220+
self.assertEqual(1, len(get_result.task.extended_attributes))
221+
self.assertEqual('188743944', get_result.task.extended_attributes[0].field_id)
222+
self.assertEqual(115.99, get_result.task.extended_attributes[0].numeric_value)
223+
224+
def test_put_extended_attribute_sixth_case_with_uniform_number_value(self):
225+
filename = 'NewProductDev.mpp'
226+
self.upload_file(filename)
227+
new_extended_attribute = ExtendedAttributeDefinition()
228+
new_extended_attribute.calculation_type = CalculationType.NONE
229+
new_extended_attribute.cf_type = CustomFieldType.NUMBER
230+
new_extended_attribute.field_name = "Number9"
231+
new_extended_attribute.element_type = ElementType.TASK
232+
new_extended_attribute.alias = "Custom Number Field"
233+
put_request = PutExtendedAttributeRequest(new_extended_attribute, filename)
234+
put_result = self.tasks_api.put_extended_attribute(put_request)
235+
self.assertIsNotNone(put_result)
236+
self.assertIsInstance(put_result, ExtendedAttributeItemResponse)
237+
238+
get_request = GetTaskRequest(filename, 27)
239+
get_result = self.tasks_api.get_task(get_request)
240+
self.assertIsNotNone(get_result)
241+
self.assertIsInstance(get_result, TaskResponse)
242+
243+
new_extended_attribute = ExtendedAttribute('188743985', numeric_value=99.99)
244+
get_result.task.extended_attributes.append(new_extended_attribute)
245+
get_result.task.baselines[0].start = datetime.now()
246+
get_result.task.baselines[0].finish = datetime.now()
247+
put_request = PutTaskRequest(filename, 27, get_result.task)
248+
put_result = self.tasks_api.put_task(put_request)
249+
self.assertIsNotNone(put_result)
250+
self.assertIsInstance(put_result, TaskResponse)
251+
252+
get_result = self.tasks_api.get_task(get_request)
253+
self.assertIsNotNone(get_result)
254+
self.assertIsInstance(get_result, TaskResponse)
255+
self.assertEqual(1, len(get_result.task.extended_attributes))
256+
self.assertEqual('188743985', get_result.task.extended_attributes[0].field_id)
257+
self.assertEqual(99.99, get_result.task.extended_attributes[0].numeric_value)
258+
259+
def test_put_extended_attribute_seventh_case_with_uniform_text_value(self):
260+
filename = 'NewProductDev.mpp'
261+
self.upload_file(filename)
262+
new_extended_attribute = ExtendedAttributeDefinition()
263+
new_extended_attribute.calculation_type = CalculationType.NONE
264+
new_extended_attribute.cf_type = CustomFieldType.TEXT
265+
new_extended_attribute.field_name = "Text1"
266+
new_extended_attribute.element_type = ElementType.TASK
267+
new_extended_attribute.alias = "Custom Text Field"
268+
put_request = PutExtendedAttributeRequest(new_extended_attribute, filename)
269+
put_result = self.tasks_api.put_extended_attribute(put_request)
270+
self.assertIsNotNone(put_result)
271+
self.assertIsInstance(put_result, ExtendedAttributeItemResponse)
272+
273+
get_request = GetTaskRequest(filename, 27)
274+
get_result = self.tasks_api.get_task(get_request)
275+
self.assertIsNotNone(get_result)
276+
self.assertIsInstance(get_result, TaskResponse)
277+
278+
new_extended_attribute = ExtendedAttribute('188743731', text_value='Test value')
279+
get_result.task.extended_attributes.append(new_extended_attribute)
280+
get_result.task.baselines[0].start = datetime.now()
281+
get_result.task.baselines[0].finish = datetime.now()
282+
put_request = PutTaskRequest(filename, 27, get_result.task)
283+
put_result = self.tasks_api.put_task(put_request)
284+
self.assertIsNotNone(put_result)
285+
self.assertIsInstance(put_result, TaskResponse)
286+
287+
get_result = self.tasks_api.get_task(get_request)
288+
self.assertIsNotNone(get_result)
289+
self.assertIsInstance(get_result, TaskResponse)
290+
self.assertEqual(1, len(get_result.task.extended_attributes))
291+
self.assertEqual('188743731', get_result.task.extended_attributes[0].field_id)
292+
self.assertEqual('Test value', get_result.task.extended_attributes[0].text_value)

0 commit comments

Comments
 (0)