Skip to content

Commit 95f4025

Browse files
committed
chore: pytestify table
1 parent e8890d6 commit 95f4025

File tree

1 file changed

+61
-55
lines changed

1 file changed

+61
-55
lines changed

test/test_table.py

Lines changed: 61 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,65 @@
1-
import unittest
1+
from pathlib import Path
22

3+
import pytest
34
import requests_mock
45

56
import tableauserverclient as TSC
6-
from ._utils import read_xml_asset
7-
8-
GET_XML = "table_get.xml"
9-
UPDATE_XML = "table_update.xml"
10-
11-
12-
class TableTests(unittest.TestCase):
13-
def setUp(self):
14-
self.server = TSC.Server("http://test", False)
15-
16-
# Fake signin
17-
self.server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67"
18-
self.server._auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM"
19-
self.server.version = "3.5"
20-
21-
self.baseurl = self.server.tables.baseurl
22-
23-
def test_get(self):
24-
response_xml = read_xml_asset(GET_XML)
25-
with requests_mock.mock() as m:
26-
m.get(self.baseurl, text=response_xml)
27-
all_tables, pagination_item = self.server.tables.get()
28-
29-
self.assertEqual(4, pagination_item.total_available)
30-
self.assertEqual("10224773-ecee-42ac-b822-d786b0b8e4d9", all_tables[0].id)
31-
self.assertEqual("dim_Product", all_tables[0].name)
32-
33-
self.assertEqual("53c77bc1-fb41-4342-a75a-f68ac0656d0d", all_tables[1].id)
34-
self.assertEqual("customer", all_tables[1].name)
35-
self.assertEqual("dbo", all_tables[1].schema)
36-
self.assertEqual("9324cf6b-ba72-4b8e-b895-ac3f28d2f0e0", all_tables[1].contact_id)
37-
self.assertEqual(False, all_tables[1].certified)
38-
39-
def test_update(self):
40-
response_xml = read_xml_asset(UPDATE_XML)
41-
with requests_mock.mock() as m:
42-
m.put(self.baseurl + "/10224773-ecee-42ac-b822-d786b0b8e4d9", text=response_xml)
43-
single_table = TSC.TableItem("test")
44-
single_table._id = "10224773-ecee-42ac-b822-d786b0b8e4d9"
45-
46-
single_table.contact_id = "8e1a8235-c9ee-4d61-ae82-2ffacceed8e0"
47-
single_table.certified = True
48-
single_table.certification_note = "Test"
49-
single_table = self.server.tables.update(single_table)
50-
51-
self.assertEqual("10224773-ecee-42ac-b822-d786b0b8e4d9", single_table.id)
52-
self.assertEqual("8e1a8235-c9ee-4d61-ae82-2ffacceed8e0", single_table.contact_id)
53-
self.assertEqual(True, single_table.certified)
54-
self.assertEqual("Test", single_table.certification_note)
55-
56-
def test_delete(self):
57-
with requests_mock.mock() as m:
58-
m.delete(self.baseurl + "/0448d2ed-590d-4fa0-b272-a2a8a24555b5", status_code=204)
59-
self.server.tables.delete("0448d2ed-590d-4fa0-b272-a2a8a24555b5")
7+
8+
TEST_ASSET_DIR = Path(__file__).parent / "assets"
9+
10+
GET_XML = TEST_ASSET_DIR / "table_get.xml"
11+
UPDATE_XML = TEST_ASSET_DIR / "table_update.xml"
12+
13+
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)
18+
19+
# Fake signin
20+
server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67"
21+
server._auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM"
22+
server.version = "3.5"
23+
24+
return server
25+
26+
27+
def test_get(server: TSC.Server) -> None:
28+
response_xml = GET_XML.read_text()
29+
with requests_mock.mock() as m:
30+
m.get(server.tables.baseurl, text=response_xml)
31+
all_tables, pagination_item = server.tables.get()
32+
33+
assert 4 == pagination_item.total_available
34+
assert "10224773-ecee-42ac-b822-d786b0b8e4d9" == all_tables[0].id
35+
assert "dim_Product" == all_tables[0].name
36+
37+
assert "53c77bc1-fb41-4342-a75a-f68ac0656d0d" == all_tables[1].id
38+
assert "customer" == all_tables[1].name
39+
assert "dbo" == all_tables[1].schema
40+
assert "9324cf6b-ba72-4b8e-b895-ac3f28d2f0e0" == all_tables[1].contact_id
41+
assert False == all_tables[1].certified
42+
43+
44+
def test_update(server: TSC.Server) -> None:
45+
response_xml = UPDATE_XML.read_text()
46+
with requests_mock.mock() as m:
47+
m.put(server.tables.baseurl + "/10224773-ecee-42ac-b822-d786b0b8e4d9", text=response_xml)
48+
single_table = TSC.TableItem("test")
49+
single_table._id = "10224773-ecee-42ac-b822-d786b0b8e4d9"
50+
51+
single_table.contact_id = "8e1a8235-c9ee-4d61-ae82-2ffacceed8e0"
52+
single_table.certified = True
53+
single_table.certification_note = "Test"
54+
single_table = server.tables.update(single_table)
55+
56+
assert "10224773-ecee-42ac-b822-d786b0b8e4d9" == single_table.id
57+
assert "8e1a8235-c9ee-4d61-ae82-2ffacceed8e0" == single_table.contact_id
58+
assert True == single_table.certified
59+
assert "Test" == single_table.certification_note
60+
61+
62+
def test_delete(server: TSC.Server) -> None:
63+
with requests_mock.mock() as m:
64+
m.delete(server.tables.baseurl + "/0448d2ed-590d-4fa0-b272-a2a8a24555b5", status_code=204)
65+
server.tables.delete("0448d2ed-590d-4fa0-b272-a2a8a24555b5")

0 commit comments

Comments
 (0)