Skip to content

Commit bbdec9a

Browse files
committed
chore: pytestify linked_tasks
1 parent 4417beb commit bbdec9a

File tree

1 file changed

+121
-113
lines changed

1 file changed

+121
-113
lines changed

test/test_linked_tasks.py

Lines changed: 121 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
from pathlib import Path
2-
import unittest
32

43
from defusedxml.ElementTree import fromstring
54
import pytest
@@ -15,115 +14,124 @@
1514
RUN_LINKED_TASK_NOW = asset_dir / "linked_tasks_run_now.xml"
1615

1716

18-
class TestLinkedTasks(unittest.TestCase):
19-
def setUp(self) -> None:
20-
self.server = TSC.Server("http://test", False)
21-
self.server.version = "3.15"
22-
23-
# Fake signin
24-
self.server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67"
25-
self.server._auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM"
26-
27-
self.baseurl = self.server.linked_tasks.baseurl
28-
29-
def test_parse_linked_task_flow_run(self):
30-
xml = fromstring(GET_LINKED_TASKS.read_bytes())
31-
task_runs = LinkedTaskFlowRunItem._parse_element(xml, self.server.namespace)
32-
assert 1 == len(task_runs)
33-
task = task_runs[0]
34-
assert task.flow_run_id == "e3d1fc25-5644-4e32-af35-58dcbd1dbd73"
35-
assert task.flow_run_priority == 1
36-
assert task.flow_run_consecutive_failed_count == 3
37-
assert task.flow_run_task_type == "runFlow"
38-
assert task.flow_id == "ab1231eb-b8ca-461e-a131-83f3c2b6a673"
39-
assert task.flow_name == "flow-name"
40-
41-
def test_parse_linked_task_step(self):
42-
xml = fromstring(GET_LINKED_TASKS.read_bytes())
43-
steps = LinkedTaskStepItem.from_task_xml(xml, self.server.namespace)
44-
assert 1 == len(steps)
45-
step = steps[0]
46-
assert step.id == "f554a4df-bb6f-4294-94ee-9a709ef9bda0"
47-
assert step.stop_downstream_on_failure
48-
assert step.step_number == 1
49-
assert 1 == len(step.task_details)
50-
task = step.task_details[0]
51-
assert task.flow_run_id == "e3d1fc25-5644-4e32-af35-58dcbd1dbd73"
52-
assert task.flow_run_priority == 1
53-
assert task.flow_run_consecutive_failed_count == 3
54-
assert task.flow_run_task_type == "runFlow"
55-
assert task.flow_id == "ab1231eb-b8ca-461e-a131-83f3c2b6a673"
56-
assert task.flow_name == "flow-name"
57-
58-
def test_parse_linked_task(self):
59-
tasks = LinkedTaskItem.from_response(GET_LINKED_TASKS.read_bytes(), self.server.namespace)
60-
assert 1 == len(tasks)
61-
task = tasks[0]
62-
assert task.id == "1b8211dc-51a8-45ce-a831-b5921708e03e"
63-
assert task.num_steps == 1
64-
assert task.schedule is not None
65-
assert task.schedule.id == "be077332-d01d-481b-b2f3-917e463d4dca"
66-
67-
def test_get_linked_tasks(self):
68-
with requests_mock.mock() as m:
69-
m.get(self.baseurl, text=GET_LINKED_TASKS.read_text())
70-
tasks, pagination_item = self.server.linked_tasks.get()
71-
72-
assert 1 == len(tasks)
73-
task = tasks[0]
74-
assert task.id == "1b8211dc-51a8-45ce-a831-b5921708e03e"
75-
assert task.num_steps == 1
76-
assert task.schedule is not None
77-
assert task.schedule.id == "be077332-d01d-481b-b2f3-917e463d4dca"
78-
79-
def test_get_by_id_str_linked_task(self):
80-
id_ = "1b8211dc-51a8-45ce-a831-b5921708e03e"
81-
82-
with requests_mock.mock() as m:
83-
m.get(f"{self.baseurl}/{id_}", text=GET_LINKED_TASKS.read_text())
84-
task = self.server.linked_tasks.get_by_id(id_)
85-
86-
assert task.id == "1b8211dc-51a8-45ce-a831-b5921708e03e"
87-
assert task.num_steps == 1
88-
assert task.schedule is not None
89-
assert task.schedule.id == "be077332-d01d-481b-b2f3-917e463d4dca"
90-
91-
def test_get_by_id_obj_linked_task(self):
92-
id_ = "1b8211dc-51a8-45ce-a831-b5921708e03e"
93-
in_task = LinkedTaskItem()
94-
in_task.id = id_
95-
96-
with requests_mock.mock() as m:
97-
m.get(f"{self.baseurl}/{id_}", text=GET_LINKED_TASKS.read_text())
98-
task = self.server.linked_tasks.get_by_id(in_task)
99-
100-
assert task.id == "1b8211dc-51a8-45ce-a831-b5921708e03e"
101-
assert task.num_steps == 1
102-
assert task.schedule is not None
103-
assert task.schedule.id == "be077332-d01d-481b-b2f3-917e463d4dca"
104-
105-
def test_run_now_str_linked_task(self):
106-
id_ = "1b8211dc-51a8-45ce-a831-b5921708e03e"
107-
108-
with requests_mock.mock() as m:
109-
m.post(f"{self.baseurl}/{id_}/runNow", text=RUN_LINKED_TASK_NOW.read_text())
110-
job = self.server.linked_tasks.run_now(id_)
111-
112-
assert job.id == "269a1e5a-1220-4a13-ac01-704982693dd8"
113-
assert job.status == "InProgress"
114-
assert job.created_at == parse_datetime("2022-02-15T00:22:22Z")
115-
assert job.linked_task_id == id_
116-
117-
def test_run_now_obj_linked_task(self):
118-
id_ = "1b8211dc-51a8-45ce-a831-b5921708e03e"
119-
in_task = LinkedTaskItem()
120-
in_task.id = id_
121-
122-
with requests_mock.mock() as m:
123-
m.post(f"{self.baseurl}/{id_}/runNow", text=RUN_LINKED_TASK_NOW.read_text())
124-
job = self.server.linked_tasks.run_now(in_task)
125-
126-
assert job.id == "269a1e5a-1220-4a13-ac01-704982693dd8"
127-
assert job.status == "InProgress"
128-
assert job.created_at == parse_datetime("2022-02-15T00:22:22Z")
129-
assert job.linked_task_id == id_
17+
@pytest.fixture(scope="function")
18+
def server():
19+
"""Fixture to create a TSC.Server instance for testing."""
20+
server = TSC.Server("http://test", False)
21+
22+
# Fake signin
23+
server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67"
24+
server._auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM"
25+
server.version = "3.15"
26+
27+
return server
28+
29+
30+
def test_parse_linked_task_flow_run(server: TSC.Server) -> None:
31+
xml = fromstring(GET_LINKED_TASKS.read_bytes())
32+
task_runs = LinkedTaskFlowRunItem._parse_element(xml, server.namespace)
33+
assert 1 == len(task_runs)
34+
task = task_runs[0]
35+
assert task.flow_run_id == "e3d1fc25-5644-4e32-af35-58dcbd1dbd73"
36+
assert task.flow_run_priority == 1
37+
assert task.flow_run_consecutive_failed_count == 3
38+
assert task.flow_run_task_type == "runFlow"
39+
assert task.flow_id == "ab1231eb-b8ca-461e-a131-83f3c2b6a673"
40+
assert task.flow_name == "flow-name"
41+
42+
43+
def test_parse_linked_task_step(server: TSC.Server) -> None:
44+
xml = fromstring(GET_LINKED_TASKS.read_bytes())
45+
steps = LinkedTaskStepItem.from_task_xml(xml, server.namespace)
46+
assert 1 == len(steps)
47+
step = steps[0]
48+
assert step.id == "f554a4df-bb6f-4294-94ee-9a709ef9bda0"
49+
assert step.stop_downstream_on_failure
50+
assert step.step_number == 1
51+
assert 1 == len(step.task_details)
52+
task = step.task_details[0]
53+
assert task.flow_run_id == "e3d1fc25-5644-4e32-af35-58dcbd1dbd73"
54+
assert task.flow_run_priority == 1
55+
assert task.flow_run_consecutive_failed_count == 3
56+
assert task.flow_run_task_type == "runFlow"
57+
assert task.flow_id == "ab1231eb-b8ca-461e-a131-83f3c2b6a673"
58+
assert task.flow_name == "flow-name"
59+
60+
61+
def test_parse_linked_task(server: TSC.Server) -> None:
62+
tasks = LinkedTaskItem.from_response(GET_LINKED_TASKS.read_bytes(), server.namespace)
63+
assert 1 == len(tasks)
64+
task = tasks[0]
65+
assert task.id == "1b8211dc-51a8-45ce-a831-b5921708e03e"
66+
assert task.num_steps == 1
67+
assert task.schedule is not None
68+
assert task.schedule.id == "be077332-d01d-481b-b2f3-917e463d4dca"
69+
70+
71+
def test_get_linked_tasks(server: TSC.Server) -> None:
72+
with requests_mock.mock() as m:
73+
m.get(server.linked_tasks.baseurl, text=GET_LINKED_TASKS.read_text())
74+
tasks, pagination_item = server.linked_tasks.get()
75+
76+
assert 1 == len(tasks)
77+
task = tasks[0]
78+
assert task.id == "1b8211dc-51a8-45ce-a831-b5921708e03e"
79+
assert task.num_steps == 1
80+
assert task.schedule is not None
81+
assert task.schedule.id == "be077332-d01d-481b-b2f3-917e463d4dca"
82+
83+
84+
def test_get_by_id_str_linked_task(server: TSC.Server) -> None:
85+
id_ = "1b8211dc-51a8-45ce-a831-b5921708e03e"
86+
87+
with requests_mock.mock() as m:
88+
m.get(f"{server.linked_tasks.baseurl}/{id_}", text=GET_LINKED_TASKS.read_text())
89+
task = server.linked_tasks.get_by_id(id_)
90+
91+
assert task.id == "1b8211dc-51a8-45ce-a831-b5921708e03e"
92+
assert task.num_steps == 1
93+
assert task.schedule is not None
94+
assert task.schedule.id == "be077332-d01d-481b-b2f3-917e463d4dca"
95+
96+
97+
def test_get_by_id_obj_linked_task(server: TSC.Server) -> None:
98+
id_ = "1b8211dc-51a8-45ce-a831-b5921708e03e"
99+
in_task = LinkedTaskItem()
100+
in_task.id = id_
101+
102+
with requests_mock.mock() as m:
103+
m.get(f"{server.linked_tasks.baseurl}/{id_}", text=GET_LINKED_TASKS.read_text())
104+
task = server.linked_tasks.get_by_id(in_task)
105+
106+
assert task.id == "1b8211dc-51a8-45ce-a831-b5921708e03e"
107+
assert task.num_steps == 1
108+
assert task.schedule is not None
109+
assert task.schedule.id == "be077332-d01d-481b-b2f3-917e463d4dca"
110+
111+
112+
def test_run_now_str_linked_task(server: TSC.Server) -> None:
113+
id_ = "1b8211dc-51a8-45ce-a831-b5921708e03e"
114+
115+
with requests_mock.mock() as m:
116+
m.post(f"{server.linked_tasks.baseurl}/{id_}/runNow", text=RUN_LINKED_TASK_NOW.read_text())
117+
job = server.linked_tasks.run_now(id_)
118+
119+
assert job.id == "269a1e5a-1220-4a13-ac01-704982693dd8"
120+
assert job.status == "InProgress"
121+
assert job.created_at == parse_datetime("2022-02-15T00:22:22Z")
122+
assert job.linked_task_id == id_
123+
124+
125+
def test_run_now_obj_linked_task(server: TSC.Server) -> None:
126+
id_ = "1b8211dc-51a8-45ce-a831-b5921708e03e"
127+
in_task = LinkedTaskItem()
128+
in_task.id = id_
129+
130+
with requests_mock.mock() as m:
131+
m.post(f"{server.linked_tasks.baseurl}/{id_}/runNow", text=RUN_LINKED_TASK_NOW.read_text())
132+
job = server.linked_tasks.run_now(in_task)
133+
134+
assert job.id == "269a1e5a-1220-4a13-ac01-704982693dd8"
135+
assert job.status == "InProgress"
136+
assert job.created_at == parse_datetime("2022-02-15T00:22:22Z")
137+
assert job.linked_task_id == id_

0 commit comments

Comments
 (0)