From 963bf3a963dfbce0663ad64d319f2eecea7b5ae6 Mon Sep 17 00:00:00 2001
From: David Trattnig <david@subsquare.at>
Date: Thu, 8 Aug 2024 12:21:36 +0200
Subject: [PATCH] test: update test cases and test data

---
 .../json/steering-api-v1-program-playout.json | 784 ++----------------
 tests/test_scheduling_api_fetcher.py          |   6 +-
 tests/test_scheduling_api_steering.py         |   5 +-
 tests/test_scheduling_domain.py               |   2 +-
 4 files changed, 87 insertions(+), 710 deletions(-)

diff --git a/tests/json/steering-api-v1-program-playout.json b/tests/json/steering-api-v1-program-playout.json
index 0232148..f2fa23f 100644
--- a/tests/json/steering-api-v1-program-playout.json
+++ b/tests/json/steering-api-v1-program-playout.json
@@ -1,769 +1,145 @@
 [
   {
     "id": "fbea8c8f-27fb-4a1b-8fbf-4c4b5f5f62b2",
-    "start": "2024-08-07T14:30:00+02:00",
-    "end": "2024-08-07T15:00:00+02:00",
-    "timeslotId": 7195,
-    "playlistId": null,
-    "showId": 935,
+    "start": "2024-07-25T18:00:10",
+    "end": "2024-07-25T19:00:00",
+    "timeslotId": 1,
+    "playlistId": 1,
+    "showId": 1,
     "timeslot": {
       "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-07T15:00:00+02:00",
-      "id": 7195,
+      "playlistId": 1,
+      "repetitionOfId": 18,
+      "end": "2024-07-25T19:00:00",
+      "id": 1,
       "noteId": 4425,
       "scheduleId": 15684,
-      "showId": 935,
-      "start": "2024-08-07T14:30:00+02:00"
+      "showId": 1,
+      "start": "2024-07-25T18:00:10"
     },
     "show": {
-      "id": 935,
-      "name": "SOL on Air",
-      "defaultPlaylistId": null
+      "id": 1,
+      "name": "Show 1",
+      "defaultPlaylistId": 1
     },
     "episode": {
       "id": 4425,
-      "title": ""
+      "title": "Episode 1"
     },
     "schedule": {
-      "id": 15684,
-      "defaultPlaylistId": null
+      "id": 9,
+      "defaultPlaylistId": 1
     }
   },
   {
     "id": "a6f3f57d-6830-415f-bf15-9fc715cab60d",
-    "start": "2024-08-07T15:00:00+02:00",
-    "end": "2024-08-07T16:00:00+02:00",
-    "timeslotId": 6510,
-    "playlistId": null,
-    "showId": 952,
+    "start": "2024-07-25T19:00:10",
+    "end": "2024-07-25T20:00:00",
+    "timeslotId": 2,
+    "playlistId": 2,
+    "showId": 2,
     "timeslot": {
       "memo": "",
-      "playlistId": null,
+      "playlistId": 2,
       "repetitionOfId": null,
-      "end": "2024-08-07T16:00:00+02:00",
-      "id": 6510,
-      "noteId": 4426,
-      "scheduleId": 15903,
-      "showId": 952,
-      "start": "2024-08-07T15:00:00+02:00"
+      "end": "2024-07-25T20:00:00",
+      "id": 2,
+      "noteId": 6,
+      "scheduleId": 21,
+      "showId": 3,
+      "start": "2024-07-25T19:00:10"
     },
     "show": {
-      "id": 952,
-      "name": "Radio Re:volt",
-      "defaultPlaylistId": null
+      "id": 2,
+      "name": "Show 2",
+      "defaultPlaylistId": 1
     },
     "episode": {
-      "id": 4426,
-      "title": ""
+      "id": 6,
+      "title": "Episode 6"
     },
     "schedule": {
-      "id": 15903,
-      "defaultPlaylistId": null
+      "id": 21,
+      "defaultPlaylistId": 1
     }
   },
   {
     "id": "98a7464d-4eec-4600-a1f4-25cdad30433e",
-    "start": "2024-08-07T16:00:00+02:00",
-    "end": "2024-08-07T17:00:00+02:00",
-    "timeslotId": 3011,
-    "playlistId": null,
-    "showId": 886,
+    "start": "2024-07-25T20:00:10",
+    "end": "2024-07-25T22:00:00",
+    "timeslotId": 3,
+    "playlistId": 3,
+    "showId": 3,
     "timeslot": {
       "memo": "",
-      "playlistId": null,
+      "playlistId": 3,
       "repetitionOfId": null,
-      "end": "2024-08-07T17:00:00+02:00",
-      "id": 3011,
-      "noteId": 4427,
-      "scheduleId": 14484,
-      "showId": 886,
-      "start": "2024-08-07T16:00:00+02:00"
+      "end": "2024-07-25T22:00:00",
+      "id": 3,
+      "noteId": 39,
+      "scheduleId": 19,
+      "showId": 3,
+      "start": "2024-07-25T20:00:10"
     },
     "show": {
-      "id": 886,
-      "name": "Forum Kinder:rechte",
+      "id": 3,
+      "name": "Show 3",
       "defaultPlaylistId": null
     },
     "episode": {
-      "id": 4427,
-      "title": ""
+      "id": 39,
+      "title": "Episode 39"
     },
     "schedule": {
-      "id": 14484,
+      "id": 19,
       "defaultPlaylistId": null
     }
   },
   {
     "id": "f69169dc-2e04-4504-bf9e-81db62c24d1c",
-    "start": "2024-08-07T17:00:00+02:00",
-    "end": "2024-08-07T17:55:00+02:00",
-    "timeslotId": 4056,
+    "start": "2024-07-25T22:00:10",
+    "end": "2024-07-25T22:30:00",
+    "timeslotId": null,
     "playlistId": null,
-    "showId": 948,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-07T17:55:00+02:00",
-      "id": 4056,
-      "noteId": 4428,
-      "scheduleId": 15858,
-      "showId": 948,
-      "start": "2024-08-07T17:00:00+02:00"
-    },
+    "showId": 4,
+    "timeslot": null,
     "show": {
-      "id": 948,
-      "name": "IndieRE 2.0",
-      "defaultPlaylistId": null
+      "id": 4,
+      "name": "Show 4 - Fallback show with virtual timeslot",
+      "defaultPlaylistId": 3
     },
-    "episode": {
-      "id": 4428,
-      "title": ""
-    },
-    "schedule": {
-      "id": 15858,
-      "defaultPlaylistId": null
-    }
+    "episode": null,
+    "schedule": null
   },
   {
     "id": "cfe03dba-599d-4f6c-b87f-4d13b5be3cb7",
-    "start": "2024-08-07T17:55:00+02:00",
-    "end": "2024-08-07T18:00:00+02:00",
-    "timeslotId": 4778,
-    "playlistId": null,
-    "showId": 946,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-07T18:00:00+02:00",
-      "id": 4778,
-      "noteId": 4429,
-      "scheduleId": 15850,
-      "showId": 946,
-      "start": "2024-08-07T17:55:00+02:00"
-    },
-    "show": {
-      "id": 946,
-      "name": "KULTURkalender",
-      "defaultPlaylistId": null
-    },
-    "episode": {
-      "id": 4429,
-      "title": ""
-    },
-    "schedule": {
-      "id": 15850,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "3a8224b8-266d-4de4-b2f3-83f7165eaa69",
-    "start": "2024-08-07T18:00:00+02:00",
-    "end": "2024-08-07T18:30:00+02:00",
-    "timeslotId": 8039,
-    "playlistId": 92,
-    "showId": 613,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-07T18:30:00+02:00",
-      "id": 8039,
-      "noteId": 4430,
-      "scheduleId": 8841,
-      "showId": 613,
-      "start": "2024-08-07T18:00:00+02:00"
-    },
-    "show": {
-      "id": 613,
-      "name": "VON UNTEN",
-      "defaultPlaylistId": 92
-    },
-    "episode": {
-      "id": 4430,
-      "title": ""
-    },
-    "schedule": {
-      "id": 8841,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "9f892557-25e3-45f6-a0f7-4962d2ef6031",
-    "start": "2024-08-07T18:30:00+02:00",
-    "end": "2024-08-07T19:00:00+02:00",
-    "timeslotId": 7258,
-    "playlistId": null,
-    "showId": 523,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-07T19:00:00+02:00",
-      "id": 7258,
-      "noteId": 4431,
-      "scheduleId": 7899,
-      "showId": 523,
-      "start": "2024-08-07T18:30:00+02:00"
-    },
-    "show": {
-      "id": 523,
-      "name": "Songbirds",
-      "defaultPlaylistId": null
-    },
-    "episode": {
-      "id": 4431,
-      "title": ""
-    },
-    "schedule": {
-      "id": 7899,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "9a8dbf60-1b8d-4858-9cd1-823aef95d42a",
-    "start": "2024-08-07T19:00:00+02:00",
-    "end": "2024-08-07T21:00:00+02:00",
-    "timeslotId": 6997,
-    "playlistId": 88,
-    "showId": 81,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-07T21:00:00+02:00",
-      "id": 6997,
-      "noteId": 4432,
-      "scheduleId": 15312,
-      "showId": 81,
-      "start": "2024-08-07T19:00:00+02:00"
-    },
-    "show": {
-      "id": 81,
-      "name": "Selchfleisch",
-      "defaultPlaylistId": 88
-    },
-    "episode": {
-      "id": 4432,
-      "title": ""
-    },
-    "schedule": {
-      "id": 15312,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "e6e11935-682f-422a-bb96-965a960f80e7",
-    "start": "2024-08-07T21:00:00+02:00",
-    "end": "2024-08-07T22:00:00+02:00",
-    "timeslotId": 8510,
-    "playlistId": 90,
-    "showId": 953,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-07T22:00:00+02:00",
-      "id": 8510,
-      "noteId": 4433,
-      "scheduleId": 16212,
-      "showId": 953,
-      "start": "2024-08-07T21:00:00+02:00"
-    },
-    "show": {
-      "id": 953,
-      "name": "YUbox",
-      "defaultPlaylistId": 90
-    },
-    "episode": {
-      "id": 4433,
-      "title": ""
-    },
-    "schedule": {
-      "id": 16212,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "fb2669cb-ba08-4b75-8e01-394297026af9",
-    "start": "2024-08-07T22:00:00+02:00",
-    "end": "2024-08-07T23:00:00+02:00",
-    "timeslotId": 1972,
-    "playlistId": null,
-    "showId": 538,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-07T23:00:00+02:00",
-      "id": 1972,
-      "noteId": 4434,
-      "scheduleId": 11523,
-      "showId": 538,
-      "start": "2024-08-07T22:00:00+02:00"
-    },
-    "show": {
-      "id": 538,
-      "name": "Café Manchester",
-      "defaultPlaylistId": null
-    },
-    "episode": {
-      "id": 4434,
-      "title": ""
-    },
-    "schedule": {
-      "id": 11523,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "08388b1b-e8b4-429b-8c34-51dbbcff171a",
-    "start": "2024-08-07T23:00:00+02:00",
-    "end": "2024-08-08T00:00:00+02:00",
-    "timeslotId": 4239,
-    "playlistId": null,
-    "showId": 964,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-08T00:00:00+02:00",
-      "id": 4239,
-      "noteId": 4436,
-      "scheduleId": 16123,
-      "showId": 964,
-      "start": "2024-08-07T23:00:00+02:00"
-    },
-    "show": {
-      "id": 964,
-      "name": "In-Tune with Paul O'Shea",
-      "defaultPlaylistId": null
-    },
-    "episode": {
-      "id": 4436,
-      "title": ""
-    },
-    "schedule": {
-      "id": 16123,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "cb2738a3-681f-407b-8b22-b32d5a045070",
-    "start": "2024-08-08T00:00:00+02:00",
-    "end": "2024-08-08T01:00:00+02:00",
-    "timeslotId": 1441,
-    "playlistId": null,
-    "showId": 294,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-08T01:00:00+02:00",
-      "id": 1441,
-      "noteId": 4437,
-      "scheduleId": 16122,
-      "showId": 294,
-      "start": "2024-08-08T00:00:00+02:00"
-    },
-    "show": {
-      "id": 294,
-      "name": "Anarchistisches Radio",
-      "defaultPlaylistId": null
-    },
-    "episode": {
-      "id": 4437,
-      "title": ""
-    },
-    "schedule": {
-      "id": 16122,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "2884f42c-e6b1-4758-a431-c91d31ceda20",
-    "start": "2024-08-08T01:00:00+02:00",
-    "end": "2024-08-08T02:00:00+02:00",
-    "timeslotId": 2572,
-    "playlistId": null,
-    "showId": 111,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-08T02:00:00+02:00",
-      "id": 2572,
-      "noteId": 4438,
-      "scheduleId": 4472,
-      "showId": 111,
-      "start": "2024-08-08T01:00:00+02:00"
-    },
-    "show": {
-      "id": 111,
-      "name": "Democracy Now!",
-      "defaultPlaylistId": null
-    },
-    "episode": {
-      "id": 4438,
-      "title": ""
-    },
-    "schedule": {
-      "id": 4472,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "7a8e623b-11a8-44f5-a2f4-cb07ac26c2c3",
-    "start": "2024-08-08T02:00:00+02:00",
-    "end": "2024-08-08T04:00:00+02:00",
-    "timeslotId": 1868,
-    "playlistId": null,
-    "showId": 888,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-08T04:00:00+02:00",
-      "id": 1868,
-      "noteId": 4439,
-      "scheduleId": 15831,
-      "showId": 888,
-      "start": "2024-08-08T02:00:00+02:00"
-    },
-    "show": {
-      "id": 888,
-      "name": "bum bum tschack x Gen Z",
-      "defaultPlaylistId": null
-    },
-    "episode": {
-      "id": 4439,
-      "title": ""
-    },
-    "schedule": {
-      "id": 15831,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "0dc5eb1a-f5cf-4897-a401-a7ff22432c2e",
-    "start": "2024-08-08T07:00:00+02:00",
-    "end": "2024-08-08T08:30:00+02:00",
-    "timeslotId": 3416,
-    "playlistId": 85,
-    "showId": 909,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-08T08:30:00+02:00",
-      "id": 3416,
-      "noteId": 4440,
-      "scheduleId": 16217,
-      "showId": 909,
-      "start": "2024-08-08T07:00:00+02:00"
-    },
-    "show": {
-      "id": 909,
-      "name": "GRRRLS CLUB",
-      "defaultPlaylistId": 85
-    },
-    "episode": {
-      "id": 4440,
-      "title": ""
-    },
-    "schedule": {
-      "id": 16217,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "382c4bf5-c0db-4c66-8b13-b059bcbbcf9e",
-    "start": "2024-08-08T08:30:00+02:00",
-    "end": "2024-08-08T09:00:00+02:00",
-    "timeslotId": 7987,
-    "playlistId": 92,
-    "showId": 613,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-08T09:00:00+02:00",
-      "id": 7987,
-      "noteId": 4441,
-      "scheduleId": 8842,
-      "showId": 613,
-      "start": "2024-08-08T08:30:00+02:00"
-    },
-    "show": {
-      "id": 613,
-      "name": "VON UNTEN",
-      "defaultPlaylistId": 92
-    },
-    "episode": {
-      "id": 4441,
-      "title": ""
-    },
-    "schedule": {
-      "id": 8842,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "e18bb958-a21b-4b83-9a43-ba41603dbc06",
-    "start": "2024-08-08T09:00:00+02:00",
-    "end": "2024-08-08T10:00:00+02:00",
-    "timeslotId": 8482,
-    "playlistId": 107,
-    "showId": 210,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-08T10:00:00+02:00",
-      "id": 8482,
-      "noteId": 4442,
-      "scheduleId": 7352,
-      "showId": 210,
-      "start": "2024-08-08T09:00:00+02:00"
-    },
-    "show": {
-      "id": 210,
-      "name": "Women on Air present: Globale Dialoge",
-      "defaultPlaylistId": 107
-    },
-    "episode": {
-      "id": 4442,
-      "title": ""
-    },
-    "schedule": {
-      "id": 7352,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "2312a1d5-236b-403b-992f-4c5a518aa142",
-    "start": "2024-08-08T10:00:00+02:00",
-    "end": "2024-08-08T11:00:00+02:00",
-    "timeslotId": 6879,
-    "playlistId": null,
-    "showId": 932,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-08T11:00:00+02:00",
-      "id": 6879,
-      "noteId": 4443,
-      "scheduleId": 15626,
-      "showId": 932,
-      "start": "2024-08-08T10:00:00+02:00"
-    },
-    "show": {
-      "id": 932,
-      "name": "RockCityRadio barner16 Radioshow",
-      "defaultPlaylistId": null
-    },
-    "episode": {
-      "id": 4443,
-      "title": ""
-    },
-    "schedule": {
-      "id": 15626,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "270176d5-737a-4b63-85c3-50d441a7b2a8",
-    "start": "2024-08-08T11:00:00+02:00",
-    "end": "2024-08-08T12:00:00+02:00",
-    "timeslotId": 6041,
-    "playlistId": null,
-    "showId": 604,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-08T12:00:00+02:00",
-      "id": 6041,
-      "noteId": 4444,
-      "scheduleId": 16219,
-      "showId": 604,
-      "start": "2024-08-08T11:00:00+02:00"
-    },
-    "show": {
-      "id": 604,
-      "name": "pussy*whipped",
-      "defaultPlaylistId": null
-    },
-    "episode": {
-      "id": 4444,
-      "title": ""
-    },
-    "schedule": {
-      "id": 16219,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "64146ed2-95cd-43f6-a739-8084a7ea79b0",
-    "start": "2024-08-08T12:00:00+02:00",
-    "end": "2024-08-08T13:00:00+02:00",
-    "timeslotId": 6710,
-    "playlistId": null,
-    "showId": 928,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-08T13:00:00+02:00",
-      "id": 6710,
-      "noteId": 4445,
-      "scheduleId": 15603,
-      "showId": 928,
-      "start": "2024-08-08T12:00:00+02:00"
-    },
-    "show": {
-      "id": 928,
-      "name": "Radio unlimited",
-      "defaultPlaylistId": null
-    },
-    "episode": {
-      "id": 4445,
-      "title": ""
-    },
-    "schedule": {
-      "id": 15603,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "90e71165-f8ed-4b44-8fec-d37d5b065710",
-    "start": "2024-08-08T13:00:00+02:00",
-    "end": "2024-08-08T13:30:00+02:00",
-    "timeslotId": 8091,
-    "playlistId": 92,
-    "showId": 613,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-08T13:30:00+02:00",
-      "id": 8091,
-      "noteId": 4446,
-      "scheduleId": 13652,
-      "showId": 613,
-      "start": "2024-08-08T13:00:00+02:00"
-    },
-    "show": {
-      "id": 613,
-      "name": "VON UNTEN",
-      "defaultPlaylistId": 92
-    },
-    "episode": {
-      "id": 4446,
-      "title": ""
-    },
-    "schedule": {
-      "id": 13652,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "6581d1e9-8870-483c-9a71-b058221ee0c6",
-    "start": "2024-08-08T13:30:00+02:00",
-    "end": "2024-08-08T13:35:00+02:00",
-    "timeslotId": 4108,
-    "playlistId": null,
-    "showId": 949,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-08T13:35:00+02:00",
-      "id": 4108,
-      "noteId": 4447,
-      "scheduleId": 15860,
-      "showId": 949,
-      "start": "2024-08-08T13:30:00+02:00"
-    },
-    "show": {
-      "id": 949,
-      "name": "IndieRE Featured Song",
-      "defaultPlaylistId": null
-    },
-    "episode": {
-      "id": 4447,
-      "title": ""
-    },
-    "schedule": {
-      "id": 15860,
-      "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "2dcf2954-ebc9-47f4-be96-52b226146aef",
-    "start": "2024-08-08T13:35:00+02:00",
-    "end": "2024-08-08T14:00:00+02:00",
-    "timeslotId": 5963,
-    "playlistId": null,
-    "showId": 604,
+    "start": "2024-07-25T22:30:00",
+    "end": "2024-07-25T23:59:59",
+    "timeslotId": 5,
+    "playlistId": 3,
+    "showId": 4,
     "timeslot": {
       "memo": "",
-      "playlistId": null,
+      "playlistId": 3,
       "repetitionOfId": null,
-      "end": "2024-08-08T14:00:00+02:00",
-      "id": 5963,
-      "noteId": 4448,
-      "scheduleId": 15957,
-      "showId": 604,
-      "start": "2024-08-08T13:35:00+02:00"
+      "end": "2024-07-25T22:30:00",
+      "id": 5,
+      "noteId": 3,
+      "scheduleId": 19,
+      "showId": 3,
+      "start": "2024-07-25T22:00:10"
     },
     "show": {
-      "id": 604,
-      "name": "pussy*whipped",
-      "defaultPlaylistId": null
-    },
-    "episode": {
-      "id": 4448,
-      "title": ""
-    },
-    "schedule": {
-      "id": 15957,
+      "id": 4,
+      "name": "Show 4 - Fallback Show",
       "defaultPlaylistId": null
-    }
-  },
-  {
-    "id": "f02cbe0b-e144-4260-b63c-18b69b77db14",
-    "start": "2024-08-08T14:00:00+02:00",
-    "end": "2024-08-08T16:00:00+02:00",
-    "timeslotId": 7606,
-    "playlistId": 86,
-    "showId": 763,
-    "timeslot": {
-      "memo": "",
-      "playlistId": null,
-      "repetitionOfId": null,
-      "end": "2024-08-08T16:00:00+02:00",
-      "id": 7606,
-      "noteId": 4449,
-      "scheduleId": 11725,
-      "showId": 763,
-      "start": "2024-08-08T14:00:00+02:00"
-    },
-    "show": {
-      "id": 763,
-      "name": "Sun People Radio Show",
-      "defaultPlaylistId": 86
     },
     "episode": {
-      "id": 4449,
-      "title": ""
+      "id": 3,
+      "title": "Episode 3 - Virtual Timeslot Override"
     },
     "schedule": {
-      "id": 11725,
+      "id": 20,
       "defaultPlaylistId": null
     }
   }
diff --git a/tests/test_scheduling_api_fetcher.py b/tests/test_scheduling_api_fetcher.py
index 381fd96..79e20dc 100644
--- a/tests/test_scheduling_api_fetcher.py
+++ b/tests/test_scheduling_api_fetcher.py
@@ -107,7 +107,7 @@ class TestSchedulingApiFetcher(unittest.TestCase):
 
         self.api_fetcher.m3u_processor.playlist_folder = "./tests/m3u/"
 
-        with open("./tests/json/steering-api-v1-playout.json", "r") as file:
+        with open("./tests/json/steering-api-v1-program-playout.json", "r") as file:
             TestSchedulingApiFetcher.mocked_steering_json = json.load(file)
         with open("./tests/json/tank-api-v1-playlists-1.json", "r") as file:
             TestSchedulingApiFetcher.mocked_tank_json1 = json.load(file)
@@ -321,8 +321,8 @@ class TestSchedulingApiFetcher(unittest.TestCase):
         # Test Timeslot 4
         ts: Timeslot = response.timeslots[3]
         self.assertEqual(4, ts.show.id)
-        self.assertEqual("Show 4", ts.show.name)
-        self.assertEqual("Episode 11", ts.episode.title)
+        self.assertEqual("Show 4 - Fallback show with virtual timeslot", ts.show.name)
+        self.assertIsNone(ts.episode)
 
         # Test Timeslot 1 - there are no playlists assigned
         self.assertIsNone(ts.playlists.timeslot)
diff --git a/tests/test_scheduling_api_steering.py b/tests/test_scheduling_api_steering.py
index a978d2b..8ab845e 100644
--- a/tests/test_scheduling_api_steering.py
+++ b/tests/test_scheduling_api_steering.py
@@ -36,7 +36,7 @@ class TestApiSteering(unittest.TestCase):
 
     def setUp(self):
         self.config = AuraConfig.instance.config
-        with open("./tests/json/steering-api-v1-playout.json", "r") as file:
+        with open("./tests/json/steering-api-v1-program-playout.json", "r") as file:
             self.mocked_steering_json = json.load(file)
 
     def test_api_steering_timeslot_model(self):
@@ -58,6 +58,7 @@ class TestApiSteering(unittest.TestCase):
         self.assertEqual(9, t1.schedule.id)
         self.assertEqual(18, t1.timeslot.repetition_of_id)
         self.assertEqual(1, t1.playlist_id)
+        self.assertEqual(1, t1.timeslot.playlist_id)
         # self.assertEqual(None, t1.schedule.default_playlist_id)
         self.assertEqual(1, t1.show.default_playlist_id)
         self.assertEqual(1, t1.show.id)
@@ -69,7 +70,7 @@ class TestApiSteering(unittest.TestCase):
         with open("./tests/json/steering-api-v1-program-playout.json", "r") as file:
             playout_json = json.load(file)
             for obj in playout_json:
-                t = PlayoutProgramEntry.from_dict(obj)
+                _t = PlayoutProgramEntry.from_dict(obj)
 
 
 if __name__ == "__main__":
diff --git a/tests/test_scheduling_domain.py b/tests/test_scheduling_domain.py
index 67a3371..f9e468e 100644
--- a/tests/test_scheduling_domain.py
+++ b/tests/test_scheduling_domain.py
@@ -328,7 +328,7 @@ class TestDomain(unittest.TestCase):
         self.assertFalse(item.play.is_done())
         self.assertIsNotNone(item.play.play_start)
         item.play.play_start = 1710445690.0
-        self.assertEquals(1710445690.0, item.play.get_play_start())
+        self.assertEqual(1710445690.0, item.play.get_play_start())
 
         item.play.set_done()
 
-- 
GitLab