def test_delete_podcast(self): with self.app() as client: with self.app_context(): test_id = 1 # Check record exists before deleting self.assertIsNotNone(Podcast.find_by_id(test_id)) request = client.delete(f"/podcast/{test_id}") # Check record doesn't exist after deleting self.assertIsNone(Podcast.find_by_id(test_id))
def test_update_podcast(self): podcast = Podcast(**self.data) podcast.save_to_db() # Get the record and check field values record = Podcast.find_by_name(self.data["name"]) self.assertIsNotNone(record) self.assertEqual(record.name, self.data["name"]) self.assertEqual(record.duration, self.data["duration"]) # Update field values update_data = { "name": "Updated Test Podcast", "duration": 120, "host": Host("Updated host"), "participants": [ Participant("Rohan") ] } Podcast.update(update_data, record) # Check updated field values updated_record = Podcast.find_by_id(record.id) self.assertIsNotNone(updated_record) self.assertEqual(updated_record.name, update_data["name"]) self.assertEqual(updated_record.duration, update_data["duration"]) self.assertIsInstance(updated_record.host, Host) self.assertEqual(str(updated_record.host.name), update_data["host"].name) self.assertEqual(len(updated_record.participants), 1) self.assertEqual(updated_record.participants[0].name, update_data["participants"][0].name)
def get(self, audioFileType, audioFileID): if self.isValidInput(audioFileType, audioFileID): responseData = None audioFileID = int(audioFileID) if audioFileType == 'song': schema = SongSchema() song = Song.find_by_id(audioFileID) if song: responseData = schema.dump(song) elif audioFileType == 'podcast': schema = PodcastSchema() podcast = Podcast.find_by_id(audioFileID) if podcast: responseData = schema.dump(podcast) elif audioFileType == 'audiobook': schema = AudioBookSchema() audiobook = AudioBook.find_by_id(audioFileID) if audiobook: responseData = schema.dump(audiobook) if responseData: return responseData, 200 logging.warn(f"File with ID: {audioFileID} not found") return {'Message': 'File not found'}, 400 logging.warn(f"AudioFileType or AudioFileID is not validd") return {'Message': 'AudioFileType or AudioFileID is not valid'}, 400
def test_get_podcast(self): with self.app() as client: with self.app_context(): test_id = 1 request = client.get(f"/podcast/{test_id}") self.assertEqual(request.status_code, 200) self.assertDictEqual( PodcastSchema().dump(Podcast.find_by_id(1)), json.loads(request.data) )
def test_get_podcast_by_id_or_name(self): # Check a record exists in the db podcast = Podcast(**self.data) podcast.save_to_db() podcast_byname = Podcast.find_by_name(self.data["name"]) self.assertIsNotNone(podcast_byname) id = podcast_byname.id # Check find_by_id method podcast_byid = Podcast.find_by_id(id) self.assertIsNotNone(podcast_byid) self.assertEqual(podcast_byid.name, podcast_byname.name) self.assertEqual(podcast_byid.uploaded_time, podcast_byname.uploaded_time)
def test_update_podcast(self): with self.app() as client: with self.app_context(): test_id = 1 # Check record exists self.assertIsNotNone(Podcast.find_by_id(test_id)) request = client.put(f"/podcast/{test_id}", \ data=json.dumps(self.update_data),\ headers={'content-type': 'application/json'}) self.assertEqual(request.status_code, 200) record = Podcast.find_by_id(test_id) self.assertIsNotNone(record) self.assertDictEqual( PodcastSchema().dump(Podcast.find_by_id(test_id)), json.loads(request.data) ) self.assertEqual(record.name, self.update_data["name"]) self.assertEqual(record.duration, self.update_data["duration"]) self.assertEqual(record.host.name, self.update_data["host"]) self.assertEqual(record.participants[0].name, self.update_data["participants"][0])