Skip to content

Commit 82a5c50

Browse files
authored
chore: pytestify flowtask (#1678)
* fix: black ci errors * chore: pytestify flowtask --------- Co-authored-by: Jordan Woods <[email protected]>
1 parent d4de5bd commit 82a5c50

File tree

2 files changed

+30
-31
lines changed

2 files changed

+30
-31
lines changed

tableauserverclient/server/endpoint/flow_task_endpoint.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def baseurl(self) -> str:
1818
return f"{self.parent_srv.baseurl}/sites/{self.parent_srv.site_id}/tasks/flows"
1919

2020
@api(version="3.22")
21-
def create(self, flow_item: TaskItem) -> TaskItem:
21+
def create(self, flow_item: TaskItem) -> bytes:
2222
if not flow_item:
2323
error = "No flow provided"
2424
raise ValueError(error)

test/test_flowtask.py

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,46 @@
1-
import os
2-
import unittest
31
from datetime import time
42
from pathlib import Path
53

4+
import pytest
65
import requests_mock
76

87
import tableauserverclient as TSC
9-
from tableauserverclient.datetime_helpers import parse_datetime
108
from tableauserverclient.models.task_item import TaskItem
119

1210
TEST_ASSET_DIR = Path(__file__).parent / "assets"
13-
GET_XML_CREATE_FLOW_TASK_RESPONSE = os.path.join(TEST_ASSET_DIR, "tasks_create_flow_task.xml")
11+
GET_XML_CREATE_FLOW_TASK_RESPONSE = TEST_ASSET_DIR / "tasks_create_flow_task.xml"
1412

1513

16-
class TaskTests(unittest.TestCase):
17-
def setUp(self):
18-
self.server = TSC.Server("http://test", False)
19-
self.server.version = "3.22"
14+
@pytest.fixture(scope="function")
15+
def server():
16+
"""Fixture to create a TSC.Server instance for testing."""
17+
server = TSC.Server("http://test", False)
2018

21-
# Fake Signin
22-
self.server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67"
23-
self.server._auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM"
19+
# Fake signin
20+
server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67"
21+
server._auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM"
22+
server.version = "3.22"
2423

25-
self.baseurl = self.server.flow_tasks.baseurl
24+
return server
2625

27-
def test_create_flow_task(self):
28-
monthly_interval = TSC.MonthlyInterval(start_time=time(23, 30), interval_value=15)
29-
monthly_schedule = TSC.ScheduleItem(
30-
"Monthly Schedule",
31-
50,
32-
TSC.ScheduleItem.Type.Flow,
33-
TSC.ScheduleItem.ExecutionOrder.Parallel,
34-
monthly_interval,
35-
)
36-
target_item = TSC.Target("flow_id", "flow")
3726

38-
task = TaskItem(None, "RunFlow", None, schedule_item=monthly_schedule, target=target_item)
27+
def test_create_flow_task(server: TSC.Server) -> None:
28+
monthly_interval = TSC.MonthlyInterval(start_time=time(23, 30), interval_value=15)
29+
monthly_schedule = TSC.ScheduleItem(
30+
"Monthly Schedule",
31+
50,
32+
TSC.ScheduleItem.Type.Flow,
33+
TSC.ScheduleItem.ExecutionOrder.Parallel,
34+
monthly_interval,
35+
)
36+
target_item = TSC.Target("flow_id", "flow")
3937

40-
with open(GET_XML_CREATE_FLOW_TASK_RESPONSE, "rb") as f:
41-
response_xml = f.read().decode("utf-8")
42-
with requests_mock.mock() as m:
43-
m.post(f"{self.baseurl}", text=response_xml)
44-
create_response_content = self.server.flow_tasks.create(task).decode("utf-8")
38+
task = TaskItem("", "RunFlow", 0, schedule_item=monthly_schedule, target=target_item)
4539

46-
self.assertTrue("schedule_id" in create_response_content)
47-
self.assertTrue("flow_id" in create_response_content)
40+
response_xml = GET_XML_CREATE_FLOW_TASK_RESPONSE.read_text()
41+
with requests_mock.mock() as m:
42+
m.post(f"{server.flow_tasks.baseurl}", text=response_xml)
43+
create_response_content = server.flow_tasks.create(task).decode("utf-8")
44+
45+
assert "schedule_id" in create_response_content
46+
assert "flow_id" in create_response_content

0 commit comments

Comments
 (0)