diff --git a/tableauserverclient/models/interval_item.py b/tableauserverclient/models/interval_item.py index 14cec187..0888441f 100644 --- a/tableauserverclient/models/interval_item.py +++ b/tableauserverclient/models/interval_item.py @@ -305,6 +305,7 @@ def interval(self, interval_values): "Fourth", "Fifth", "Last", + "Customized Monthly", ] for value in range(1, 32): VALID_INTERVALS.append(str(value)) diff --git a/test/assets/schedule_get_customized_monthly_id.xml b/test/assets/schedule_get_customized_monthly_id.xml new file mode 100644 index 00000000..cc2bf560 --- /dev/null +++ b/test/assets/schedule_get_customized_monthly_id.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/test/test_schedule.py b/test/test_schedule.py index 45e35ec2..823a8760 100644 --- a/test/test_schedule.py +++ b/test/test_schedule.py @@ -15,6 +15,7 @@ GET_DAILY_ID_XML = TEST_ASSET_DIR / "schedule_get_daily_id.xml" GET_MONTHLY_ID_XML = TEST_ASSET_DIR / "schedule_get_monthly_id.xml" GET_MONTHLY_ID_2_XML = TEST_ASSET_DIR / "schedule_get_monthly_id_2.xml" +GET_CUSTOMIZED_MONTHLY_ID_XML = TEST_ASSET_DIR / "schedule_get_customized_monthly_id.xml" GET_EMPTY_XML = TEST_ASSET_DIR / "schedule_get_empty.xml" CREATE_HOURLY_XML = TEST_ASSET_DIR / "schedule_create_hourly.xml" CREATE_DAILY_XML = TEST_ASSET_DIR / "schedule_create_daily.xml" @@ -178,6 +179,21 @@ def test_get_monthly_by_id_2(server: TSC.Server) -> None: assert ("Monday", "First") == schedule.interval_item.interval +def test_get_customized_monthly_by_id(server: TSC.Server) -> None: + server.version = "3.15" + response_xml = GET_CUSTOMIZED_MONTHLY_ID_XML.read_text() + with requests_mock.mock() as m: + schedule_id = "f048d794-90dc-40b0-bfad-2ca78e437369" + baseurl = f"{server.baseurl}/schedules/{schedule_id}" + m.get(baseurl, text=response_xml) + schedule = server.schedules.get_by_id(schedule_id) + assert schedule is not None + assert schedule_id == schedule.id + assert "Monthly customized" == schedule.name + assert "Active" == schedule.state + assert ("Customized Monthly",) == schedule.interval_item.interval + + def test_delete(server: TSC.Server) -> None: with requests_mock.mock() as m: m.delete(server.schedules.baseurl + "/c9cff7f9-309c-4361-99ff-d4ba8c9f5467", status_code=204)