Skip to content

Conversation

@bcantoni
Copy link
Contributor

@bcantoni bcantoni commented Oct 17, 2025

Add handling to recognize "Customized Monthly" as a possible interval type that can be returned for schedules.

Also add a test with a simulated xml response to confirm.

Fixes #1365

@github-actions
Copy link

github-actions bot commented Oct 17, 2025

Coverage

Coverage Report
FileStmtsMissCoverMissing
tableauserverclient
   __init__.py70100% 
   config.py150100% 
   datetime_helpers.py2511 96%
   exponential_backoff.py200100% 
   filesys_helpers.py310100% 
   namespace.py2633 88%
tableauserverclient/bin
   _version.py358212212 41%
tableauserverclient/helpers
   __init__.py10100% 
   headers.py1388 38%
   logging.py20100% 
   strings.py3111 97%
tableauserverclient/models
   __init__.py450100% 
   collection_item.py4277 83%
   column_item.py553232 42%
   connection_credentials.py351111 69%
   connection_item.py861212 86%
   custom_view_item.py1381313 91%
   data_acceleration_report_item.py5411 98%
   data_alert_item.py15933 98%
   data_freshness_policy_item.py1561515 90%
   database_item.py2073636 83%
   datasource_item.py3011111 96%
   dqw_item.py10455 95%
   exceptions.py40100% 
   extract_item.py4544 91%
   favorites_item.py6988 88%
   fileupload_item.py190100% 
   flow_item.py1491010 93%
   flow_run_item.py720100% 
   group_item.py8955 94%
   groupset_item.py5044 92%
   interval_item.py1823232 82%
   job_item.py1881010 95%
   linked_tasks_item.py8011 99%
   location_item.py3011 97%
   metric_item.py1301212 91%
   oidc_item.py6422 97%
   pagination_item.py340100% 
   permissions_item.py1121212 89%
   project_item.py2073030 86%
   property_decorators.py1001818 82%
   reference_item.py2622 92%
   revision_item.py600100% 
   schedule_item.py20966 97%
   server_info_item.py3744 89%
   site_item.py6361212 98%
   subscription_item.py10122 98%
   table_item.py1191818 85%
   tableau_auth.py622525 60%
   tableau_types.py2711 96%
   tag_item.py150100% 
   target.py60100% 
   task_item.py5722 96%
   user_item.py3101818 94%
   view_item.py2201515 93%
   virtual_connection_item.py6488 88%
   webhook_item.py660100% 
   workbook_item.py3621616 96%
tableauserverclient/server
   __init__.py90100% 
   exceptions.py40100% 
   filter.py2111 95%
   pager.py3311 97%
   query.py1431818 87%
   request_factory.py1275183183 86%
   request_options.py37355 99%
   server.py1881919 90%
   sort.py60100% 
tableauserverclient/server/endpoint
   __init__.py340100% 
   auth_endpoint.py751010 87%
   custom_views_endpoint.py1471212 92%
   data_acceleration_report_endpoint.py210100% 
   data_alert_endpoint.py942323 76%
   databases_endpoint.py1113030 73%
   datasources_endpoint.py3303434 90%
   default_permissions_endpoint.py4433 93%
   dqw_endpoint.py451616 64%
   endpoint.py1871818 90%
   exceptions.py7066 91%
   favorites_endpoint.py952222 77%
   fileuploads_endpoint.py510100% 
   flow_runs_endpoint.py6299 85%
   flow_task_endpoint.py2122 90%
   flows_endpoint.py2125454 75%
   groups_endpoint.py12699 93%
   groupsets_endpoint.py7277 90%
   jobs_endpoint.py6899 87%
   linked_tasks_endpoint.py380100% 
   metadata_endpoint.py881414 84%
   metrics_endpoint.py5566 89%
   oidc_endpoint.py4211 98%
   permissions_endpoint.py4433 93%
   projects_endpoint.py1502424 84%
   resource_tagger.py1273636 72%
   schedules_endpoint.py1191111 91%
   server_info_endpoint.py361010 72%
   sites_endpoint.py1302727 79%
   subscriptions_endpoint.py561414 75%
   tables_endpoint.py1103636 67%
   tasks_endpoint.py6366 90%
   users_endpoint.py18499 95%
   views_endpoint.py14699 94%
   virtual_connections_endpoint.py1131010 91%
   webhooks_endpoint.py5499 83%
   workbooks_endpoint.py3452424 93%
TOTAL11729138988% 

@jacalata jacalata requested a review from Copilot October 29, 2025 04:42
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds support for parsing "Customized Monthly" schedules in the Tableau Server Client. The change handles a new monthly interval type that can be returned by the Tableau API.

  • Added "Customized Monthly" as a valid monthly interval value
  • Added test coverage for parsing customized monthly schedules
  • Created test fixture for customized monthly schedule XML response

Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
tableauserverclient/models/interval_item.py Added "Customized Monthly" to the list of valid monthly interval values
test/test_schedule.py Added test case and test fixture constant for customized monthly schedule
test/assets/schedule_get_customized_monthly_id.xml Added XML fixture representing a customized monthly schedule response

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@bcantoni bcantoni changed the title Draft: Add support for receiving "Customized Monthly" schedule intervals Add support for receiving "Customized Monthly" schedule intervals Nov 5, 2025
Copy link
Contributor

@jorwoods jorwoods left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not able to recreate a server responding with "Customized Monthly", but I see no issues with adding it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Invalid interval value for a monthly frequency: Customized Monthly.

3 participants