class TestTrackRepository(unittest.TestCase):
    def setUp(self):
        self.repo = SqlServerTrackRepository()
        self.listTracks: Track = self.repo.get_tracks_of_playlist(11)

    def test_get_tracks_of_playlist(self):
        self.assertIsNotNone(self.listTracks)

    def test_get_tracks_of_playlist_instance_track(self):
        self.assertIsInstance(self.listTracks[0], Track)

    def test_get_tracks_of_playlist_instance_album(self):
        self.assertIsInstance(self.listTracks[0].album, Album)

    def test_get_tracks_of_playlist_instance_artist(self):
        self.assertIsInstance(self.listTracks[0].album.artist, Artist)

    def test_get_tracks_radio_gender(self):
        listTracks: Track = self.repo.get_tracks_radio_gender(14)
        self.assertIsNotNone(listTracks)
Beispiel #2
0
    def post(self, idAccount, idTrack): 
        print("Adding play to track")
        idtrack = idTrack
        idAccount = idAccount

        use_case = add_track_played.AddTrackPlayed(SqlServerTrackRepository())
        try:
            use_case.execute(idtrack,idAccount)
        except TrackInvalidException as ex:
            return {"error": str(ex)}, 400
        except TrackNotExistsException as ex:
            return {"error": str(ex)}, 404
        except Exception as ex:
            return {"error": str(ex)}, 500
 def get(self, idPlaylist):
     usecase = GetTracksOfPlaylist(SqlServerTrackRepository())
     try:
         listTracks = usecase.execute(idPlaylist)
         return jsonify([ob.to_json_for_playlist() for ob in listTracks])
     except InvalidParamsException as ex:
         error = str(ex)
         response = jsonify({'error': error})
         response.status_code = 400
         return response
     except DataBaseException:
         error = str(ex)
         response = jsonify({'error': error})
         response.status_code = 500
         return response
    def execute(self, inputAlbum: CreateAlbumInputDto):
        print(inputAlbum.publication)

        if not inputAlbum.title or not inputAlbum.recordCompany or not inputAlbum.idAlbumType or not inputAlbum.idAlbumType or not inputAlbum.idArtist:
            raise AlbumInvalidException("Empty fields")

        if not self.album_repository.exists_album_gender(
                inputAlbum.idMusicGender):
            raise AlbumGenderInvalidException("Album gender not exists")

        if not self.album_repository.exists_album_type(inputAlbum.idAlbumType):
            raise AlbumTypeInvalidException("Album type not exists")

        if not inputAlbum.tracks:
            raise AlbumTracksInvalidException("Album tracks not found")

        if inputAlbum.cover:
            nameCover = Image.generate_name(inputAlbum.title)
            if Image.save_image(inputAlbum.cover, nameCover, "Album"):
                inputAlbum.cover = nameCover
        else:
            inputAlbum.cover = "defaultAlbumCover.jpeg"

        new_album = Album.create(inputAlbum.title, inputAlbum.cover,
                                 inputAlbum.publication,
                                 inputAlbum.recordCompany,
                                 inputAlbum.idAlbumType)
        new_album.artist.idArtist = inputAlbum.idArtist
        new_album.musicGender.idMusicGender = inputAlbum.idMusicGender

        list_tracks = []
        use_case_create_track = create_track.CreateTrack(
            SqlServerTrackRepository())
        for track in inputAlbum.tracks:
            dtoclass = create_track.CreateTrackInputDto(track["title"],
                                                        album=new_album)
            print("Guardando track")
            track = use_case_create_track.execute(dtoclass)
            list_tracks.append(track)
        new_album.tracks = list_tracks
        try:
            self.album_repository.save(new_album)
            return new_album
        except DataBaseException:
            raise DataBaseException("Database error")
Beispiel #5
0
    def put(self):
        print('updating track')
        use_case = update_track.UpdateTrack(SqlServerTrackRepository())
        dtoclass = update_track.UpdateTrackInputDto(
            request.json["idTrack"],
            request.json["title"],
            request.json["duration"],
            request.json["reproductions"],
            request.json["fileTrack"],
            request.json["available"],
            request.json["idAlbum"]
        )
        try:
            track = use_case.execute(dtoclass)

            return track.to_json(), 200
        except TrackInvalidException as ex:
            return {"error": str(ex)}, 400
        except TrackNotExistsException as ex:
            return {"error": str(ex)}, 404
        except Exception as ex:
            return {"error": str(ex)}, 500
 def test_track_not_exists(self):
     use_case = GetTrack(SqlServerTrackRepository())
     self.assertRaises(TrackNotExistsException, use_case.execute, ExistsTrackInputDto('004a2196-c2ae-44e0'))    
 def test_empty_fields(self):
     use_case = GetTrack(SqlServerTrackRepository())
     self.assertRaises(TrackInvalidException, use_case.execute, None)
 def setUp(self):
     self.repo = SqlServerTrackRepository()
     self.listTracks: Track = self.repo.get_tracks_of_playlist(11)