diff --git a/test/test_datasource.py b/test/test_datasource.py index 7f4cca75..56eb11ab 100644 --- a/test/test_datasource.py +++ b/test/test_datasource.py @@ -895,7 +895,8 @@ def test_publish_description(server: TSC.Server) -> None: ds_elem = body.find(".//datasource") assert ds_elem is not None assert ds_elem.attrib["description"] == "Sample description" - + + def test_get_datasource_no_owner(server: TSC.Server) -> None: with requests_mock.mock() as m: m.get(server.datasources.baseurl, text=GET_NO_OWNER.read_text()) diff --git a/test/test_table.py b/test/test_table.py index 8c6c71f7..2f3c3c8d 100644 --- a/test/test_table.py +++ b/test/test_table.py @@ -1,59 +1,65 @@ -import unittest +from pathlib import Path +import pytest import requests_mock import tableauserverclient as TSC -from ._utils import read_xml_asset - -GET_XML = "table_get.xml" -UPDATE_XML = "table_update.xml" - - -class TableTests(unittest.TestCase): - def setUp(self): - self.server = TSC.Server("http://test", False) - - # Fake signin - self.server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67" - self.server._auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM" - self.server.version = "3.5" - - self.baseurl = self.server.tables.baseurl - - def test_get(self): - response_xml = read_xml_asset(GET_XML) - with requests_mock.mock() as m: - m.get(self.baseurl, text=response_xml) - all_tables, pagination_item = self.server.tables.get() - - self.assertEqual(4, pagination_item.total_available) - self.assertEqual("10224773-ecee-42ac-b822-d786b0b8e4d9", all_tables[0].id) - self.assertEqual("dim_Product", all_tables[0].name) - - self.assertEqual("53c77bc1-fb41-4342-a75a-f68ac0656d0d", all_tables[1].id) - self.assertEqual("customer", all_tables[1].name) - self.assertEqual("dbo", all_tables[1].schema) - self.assertEqual("9324cf6b-ba72-4b8e-b895-ac3f28d2f0e0", all_tables[1].contact_id) - self.assertEqual(False, all_tables[1].certified) - - def test_update(self): - response_xml = read_xml_asset(UPDATE_XML) - with requests_mock.mock() as m: - m.put(self.baseurl + "/10224773-ecee-42ac-b822-d786b0b8e4d9", text=response_xml) - single_table = TSC.TableItem("test") - single_table._id = "10224773-ecee-42ac-b822-d786b0b8e4d9" - - single_table.contact_id = "8e1a8235-c9ee-4d61-ae82-2ffacceed8e0" - single_table.certified = True - single_table.certification_note = "Test" - single_table = self.server.tables.update(single_table) - - self.assertEqual("10224773-ecee-42ac-b822-d786b0b8e4d9", single_table.id) - self.assertEqual("8e1a8235-c9ee-4d61-ae82-2ffacceed8e0", single_table.contact_id) - self.assertEqual(True, single_table.certified) - self.assertEqual("Test", single_table.certification_note) - - def test_delete(self): - with requests_mock.mock() as m: - m.delete(self.baseurl + "/0448d2ed-590d-4fa0-b272-a2a8a24555b5", status_code=204) - self.server.tables.delete("0448d2ed-590d-4fa0-b272-a2a8a24555b5") + +TEST_ASSET_DIR = Path(__file__).parent / "assets" + +GET_XML = TEST_ASSET_DIR / "table_get.xml" +UPDATE_XML = TEST_ASSET_DIR / "table_update.xml" + + +@pytest.fixture(scope="function") +def server(): + """Fixture to create a TSC.Server instance for testing.""" + server = TSC.Server("http://test", False) + + # Fake signin + server._site_id = "dad65087-b08b-4603-af4e-2887b8aafc67" + server._auth_token = "j80k54ll2lfMZ0tv97mlPvvSCRyD0DOM" + server.version = "3.5" + + return server + + +def test_get(server: TSC.Server) -> None: + response_xml = GET_XML.read_text() + with requests_mock.mock() as m: + m.get(server.tables.baseurl, text=response_xml) + all_tables, pagination_item = server.tables.get() + + assert 4 == pagination_item.total_available + assert "10224773-ecee-42ac-b822-d786b0b8e4d9" == all_tables[0].id + assert "dim_Product" == all_tables[0].name + + assert "53c77bc1-fb41-4342-a75a-f68ac0656d0d" == all_tables[1].id + assert "customer" == all_tables[1].name + assert "dbo" == all_tables[1].schema + assert "9324cf6b-ba72-4b8e-b895-ac3f28d2f0e0" == all_tables[1].contact_id + assert False == all_tables[1].certified + + +def test_update(server: TSC.Server) -> None: + response_xml = UPDATE_XML.read_text() + with requests_mock.mock() as m: + m.put(server.tables.baseurl + "/10224773-ecee-42ac-b822-d786b0b8e4d9", text=response_xml) + single_table = TSC.TableItem("test") + single_table._id = "10224773-ecee-42ac-b822-d786b0b8e4d9" + + single_table.contact_id = "8e1a8235-c9ee-4d61-ae82-2ffacceed8e0" + single_table.certified = True + single_table.certification_note = "Test" + single_table = server.tables.update(single_table) + + assert "10224773-ecee-42ac-b822-d786b0b8e4d9" == single_table.id + assert "8e1a8235-c9ee-4d61-ae82-2ffacceed8e0" == single_table.contact_id + assert True == single_table.certified + assert "Test" == single_table.certification_note + + +def test_delete(server: TSC.Server) -> None: + with requests_mock.mock() as m: + m.delete(server.tables.baseurl + "/0448d2ed-590d-4fa0-b272-a2a8a24555b5", status_code=204) + server.tables.delete("0448d2ed-590d-4fa0-b272-a2a8a24555b5")