Beispiel #1
0
 def test_updateBDDfromSpotify(self):
     objapi=APISFY("credenciales.txt")
     objbdd=DBSFY('Arma_tu_biblio.db')
     objsync=sinchronize()
     ids=objapi.getPlaylistsIDSfromSpotify()
     #print("getPlaylistfromSpotify berfore delete",ids)
     #tracks=objapi.getTrackslistfromSpotify()
     try:
         tracksid=[]
         print(objbdd.deleteAllTracks()) # para prueba
         print(objapi.deleteTrack(ids))  # para prueba
         track1=objapi.getTrackfromSpotify('Dare','Gorillaz')
         tracksid.append(track1.id)
         #print(track1)
         track2=objapi.getTrackfromSpotify('Get lucky','Daft Punk')
         tracksid.append(track2.id)
         objapi.saveTrack(tracksid)      #se guardaron los dos para la prueba
         print("tracks saved\nPlaylist spotify:\n")        #
         play=objapi.getTrackslistfromSpotify()
         print(objapi.printPlaylist(play))
         print("***************************************")
         self.assertEqual(0,objsync.updateBDDfromSpotify(play,objbdd))
         bddplaylist=objbdd.getPlaylistFromDB()
         print(len(bddplaylist))
         print(objapi.printPlaylist(bddplaylist))
     except:
         print("Error en test_updateBDDfromSpotify")
Beispiel #2
0
 def test_printPlaylistfrom(self):
     # # CASO DE PRUEBA: playlist vacia **************************************** <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< TEST CASE
     # guardar unos dos tracks, obtenerlos y luego mostrarlos
     # mock de clase track
     class Mock_Track:
         def __init__(self,id, name, artist, album, duration):
             self.id = id
             self.name = name
             self.artist = artist
             self.album = album
             self.duration = duration
     objBDD=DBSFY('Arma_tu_biblio.db')
     objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
     objTrack=Mock_Track('58MZs0B5Amxl0Mwc9FIRZc','DARE - Junior Sanchez Remix','Gorillaz','D-Sides [Special Edition]', 326373)
     objBDD.saveTrack(objTrack)
     objTrack=Mock_Track('6TY7U0B5Amxl0Mwc9F1234','Una cancion','El artista','Mejor album', 387373)
     objBDD.saveTrack(objTrack)
     playlist=objBDD.getPlaylistFromDB()
     a=APISFY("credenciales.txt")
     print(a.printPlaylist(playlist))
     a=None
     objeBDD=None
     objTrack=None
     playlist=None
 # #
 # #     #aqui se obtendra un track por id
     def test_getTrackfromPlaylistWithID(self):
     # # CASO DE PRUEBA: playlist vacia **************************************** <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< TEST CASE
     # guardar unos dos tracks, obtenerlos y luego mostrarlos
     # mock de clase track
         class Mock_Track:
             def __init__(self,id, name, artist, album, duration):
                 self.id = id
                 self.name = name
                 self.artist = artist
                 self.album = album
                 self.duration = duration
         objBDD=DBSFY('Arma_tu_biblio.db')
         objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
         objTrack=Mock_Track('58MZs0B5Amxl0Mwc9FIRZc','DARE - Junior Sanchez Remix','Gorillaz','D-Sides [Special Edition]', 326373)
         objBDD.saveTrack(objTrack)
         objTrack=Mock_Track('6TY7U0B5Amxl0Mwc9F1234','Una cancion','El artista','Mejor album', 387373)
         objBDD.saveTrack(objTrack)
         playlist=objBDD.getPlaylistFromDB()
         a=APISFY("credenciales.txt")
 #
         print(a.getTrackfromPlaylistWithID(playlist,0))
         a=None
         objeBDD=None
         objTrack=None
         playlist=None
Beispiel #3
0
class SpotyPie():

    api=None
    bdd=None
    sync=None

    def __init__(self,credentialsFilePath,BDDFIlePath ):
        self.sync=sinchronize()
        self.bdd=DBSFY(BDDFIlePath)
        self.api=APISFY(credentialsFilePath)
        self.makeSync()
        print()
#><<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ok
    def searchTrack(self, songName, artistName):
        return self.api.getTrackfromSpotify(songName,artistName)

#><<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ok
    def addTrackToMyPlaylist(self,track):#must be Track Object
        idlist_adapt={track.id}
        if self.api.saveTrack(idlist_adapt) !=0:
            print (" [-] Error in addTrackToMyPlaylist")
            return 1
        self.bdd.saveTrack(track)
        return 0

#><<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ok
    def showMyPlaylist(self):
        playlist=[]
        try:
            playlist=self.bdd.getPlaylistFromDB()
            if len(playlist)>0:
                #print(self.api.printPlaylist(playlist))
                return self.api.printPlaylist(playlist)
            return playlist
        except:
            print(" [-] Error in showMyPlaylist:getPlaylistFromDB")
            return 1
#><<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ok

    def deleteTrack(self,idtrack): #pasarlo en forma de str
        #print("deleting...",idtrack)
        # try:
        listid_adapt=[idtrack]
        if self.api.deleteTrack(listid_adapt)!=0:
            print(" [-] Error in deleteTrack:api")
            return 1
        if self.bdd.deleteTrack(idtrack) != 0:
            print(" [-] Error in deleteTrack:bdd")
            return 1
        return 0
        # except:
        #     print("Error in deleteTrack")
        #     return 1
#><<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ok
    def deleteAllTracks(self):
        try:
            playlist_sp=self.api.getPlaylistsIDSfromSpotify()
            #print("playlist: >>> ",playlist_sp)
            if len(playlist_sp)>0:
                if self.api.deleteTrack(playlist_sp) !=0:
                    print(" [-] Error in delete track from spotify")
                    return 1
                print(" [+] Tracks deleted from spotify")
            idsbdd=self.bdd.getIDSFromDB(self.bdd.getPlaylistFromDB())
            #print(" >>>>>>>>>",idsbdd)
            if len(idsbdd)>0:
                if self.bdd.deleteAllTracks()!=0:
                    return 1
                print(" [+] Tracks deleted from database")
            if len(idsbdd)<1 and len(playlist_sp)<1:
                print(" [+] No hay informacion")
                return 1
            print(" [+] Tracks deleted")
            return 0
        except:
            return 1
            print(" [-] Error in deleteAllTrack")
# ><<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    def close(self):
        try:
            self.bdd.con.close()
            self.bdd=None
            self.api=None
        #
        except:
            print(" [-] Error in close")
            return 1
#><<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    def makeSync(self):
        # try:
        # print("Debuging makesync")

        unsync=[]
        idsSpotify=self.api.getPlaylistsIDSfromSpotify()
        # print(" > idsSpotify: ",idsSpotify) # ok
        if len(idsSpotify)>0:
            tracksbdd=self.bdd.getPlaylistFromDB()
            # print(" > tracksbdd: ",tracksbdd) # ok
            if type(tracksbdd)==int:
                print(" [-] Type is int!")
                return 1
            if(len(tracksbdd)>0):
                idsBDD=self.bdd.getIDSFromDB(tracksbdd)
                # print(" > idsBDD: ",idsBDD) # ok
                unsync=self.sync.checkBDDvsSpotify(idsSpotify,idsBDD)
                # print(" > unsync: ",unsync) # ok
                if(len(unsync)>0):
                    self.sync.updateSpotifyfromBDD(self.api,unsync)
                    self.bdd.deleteAllTracks()
                    # print("\n\nself.api.getTrackslistfromSpotify() ",self.api.getTrackslistfromSpotify())
                    self.sync.updateBDDfromSpotify(self.api.getTrackslistfromSpotify(),self.bdd)
                    #print("Synchronized 01!")
                    return 0
            else:
                self.sync.updateBDDfromSpotify(self.api.getTrackslistfromSpotify(),self.bdd)
                #print("Synchronized 02!")
                return 0
        idsbdd=self.bdd.getIDSFromDB(self.bdd.getPlaylistFromDB())

        if len(idsbdd)>0:
            self.sync.updateSpotifyfromBDD(self.api,idsbdd)
            #print("Synchronized! 03")
            return 0
        else:
            print(" [+] Nada que sincronizar")
            return 0
        print()
        return 1
Beispiel #4
0
    def test_saveTrack(self):

        class Mock_Track:
            def __init__(self,id, name, artist, album, duration):
                self.id = id
                self.name = name
                self.artist = artist
                self.album = album
                self.duration = duration

        objBDD=DBSFY('Arma_tu_biblio.db')
#
        #CASO DE PRUEBA: UN TRACK CORRECTO **************************************** <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< TEST CASE
        objTrack=Mock_Track('58MZs0B5Amxl0Mwc9FIRZc','DARE - Junior Sanchez Remix','Gorillaz','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        objBDD.saveTrack(objTrack)
        a=objBDD.getPlaylistFromDB()
        print(a[0].__str__())
        self.assertEqual((a[0]).__str__(),"[58MZs0B5Amxl0Mwc9FIRZc, DARE - Junior Sanchez Remix, Gorillaz, D-Sides [Special Edition], 326373]")

        #CASO DE PRUEBA DE UN TRACK NULO **************************************** <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< TEST CASE
        print("TEST CASE: TRACK NULO")
        objTrack=None
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        self.assertEqual(a,1)

        # #CASO DE PRUEA: EL TRACK  YA EXISTE **************************************** <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< TEST CASE
        print("TEST CASE: EL TRACK YA EXISTE")
        printer=APISFY("credenciales.txt")
        objTrack=Mock_Track('58MZs0B5Amxl0Mwc9FIRZc','DARE - Junior Sanchez Remix','Gorillaz','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        b=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if b==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,0) # si se guarda la primera vez
        self.assertEqual(b,1) # no se guarda la segunda vez
        play=objBDD.getPlaylistFromDB()
        m=printer.printPlaylist(play)
        self.assertEqual(len(play),1)#validar que solo se haya guardado uno

        #CASOS DE PRUEBA: PRUEBAS A id *************************************** <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< TEST CASES URI

        print("TEST CASE: id es ' ' ") #**************************************************************************
        objTrack=Mock_Track(' ','DARE - Junior Sanchez Remix','Gorillaz','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack= None

        print("TEST CASE: id es '' ")  #**************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Cancion',' ','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None

        print("TEST CASE: id es None ") #**************************************************************************
        objTrack=Mock_Track(None,'DARE - Junior Sanchez Remix','Gorillaz','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack = None

        #continuar con string,float, zero pading, negatives, more than len and different
        print("TEST CASE: id es MAYOR A 22") #**********************************************************************
        objTrack=Mock_Track('A'*23,'DARE - Junior Sanchez Remix','Gorillaz','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack= None

        # caracteres no imprimibles y algunos especiales
        print("TEST CASE: id tiene caracteres especiales") #*******************************************************
        objTrack=Mock_Track('@'*22,'DARE - Junior Sanchez Remix','Gorillaz','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None

        #checar con float
        print("TEST CASE: id float") #*****************************************************************************
        objTrack=Mock_Track(234567890123456789.00,'DARE - Junior Sanchez Remix','Gorillaz','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None
        #
        print("TEST CASE: id tiene padding de ceros") #************************************************************
        objTrack=Mock_Track(("0"*20)+"22",'DARE - Junior Sanchez Remix','Gorillaz','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,0) # lo guarda
        objTrack= None

        # CASOS DE PRUEBA: PRUEBAS A NAME *************************************** <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< TEST CASES NAME
        print("TEST CASE: name es ' ' ")  #**************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA',' ','Gorillaz','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None

        print("TEST CASE: Name es '' ")  #**************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Cancion','','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None
        #
        print("TEST CASE: name es None ")  #**************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA',None,'Gorillaz','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None

        print("TEST CASE: name es MAYOR A 100") #**********************************************************************
        objTrack=Mock_Track('A'*22,"B"*101,'Gorillaz','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None

        print("TEST CASE: name tiene caracteres especiales") #*******************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA',"Dare",'Gorillaz','D-Sides [Special Edition]', 326373)
        objTrack.name="@#$%%&/()="
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,0) # lo guarda por que aun no se ha definido esta validacion
        objTrack=None
        # checar con int

        print("TEST CASE: name int como int") #*****************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA',1234,'Gorillaz','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda por que acepta solo strings
        objTrack= None

        print("TEST CASE: name int como string") #***************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA',"1234",'Gorillaz','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,0) # lo guarda por que esta como string
        objTrack = None

        print("TEST CASE: name flaot como tal") #****************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA',1234.5,'Gorillaz','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda por que acepta solo strings
        objTrack= None
        #
        print("TEST CASE: name float como string") #***************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA',"1234.5",'Gorillaz','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,0) # lo guarda por que esta como string
        objTrack=None
        # aun falta validar mas detalles, mas casos de prueba y mejorar el codigo

        #CASOS DE PRUEBA: PRUEBAS A ARITST *************************************** <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< TEST CASES ARTIST
        print("TEST CASE: artist es ' ' ")  #**************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Cancion',' ','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None

        print("TEST CASE: artist es '' ")  #**************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Cancion','','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None
        #
        print("TEST CASE: artist es None ")  #**************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Cancion',None,'D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None

        print("TEST CASE: artist es MAYOR A 100") #**********************************************************************
        objTrack=Mock_Track('A'*22,'Dare',"B"*101,'D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None

        print("TEST CASE: artist tiene caracteres especiales") #*******************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA',"Dare",'$#%&/=','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,0) # lo guarda por que aun no se ha definido esta validacion
        objTrack=None

        # # # checar con int
        print("TEST CASE: artist int como int") #*****************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Dare',1234,'D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda por que acepta solo strings
        objTrack= None

        print("TEST CASE: artist int como string") #***************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA',"Dare",'1234','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,0) # lo guarda por que esta como string
        objTrack = None

        print("TEST CASE: artist flaot como tal") #****************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Dare',1234.5,'D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda por que acepta solo strings
        objTrack= None

        print("TEST CASE: artist float como string") #***************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA',"Dare",'1234.5','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,0) # lo guarda por que esta como string
        objTrack=None
        #aun falta validar mas detalles, mas casos de prueba y mejorar el codigo

        # CASOS DE PRUEBA: PRUEBAS A ALBUM *************************************** <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< TEST CASES album
        print("TEST CASE: album es ' ' ")  #**************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Cancion','Gorillaz',' ', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None

        print("TEST CASE: album es '' ")  #**************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Cancion','Gorillaz','', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None

        print("TEST CASE: album es None ")  #**************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Cancion',"Gorillaz",None, 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None

        print("TEST CASE: album es MAYOR A 50") #**********************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Dare',"Gorillaz",'B'*101, 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None

        print("TEST CASE: album tiene caracteres especiales") #*******************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA',"Dare",'Gorillaz','D-Sides [Special Edition]', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,0) # lo guarda por que aun no se ha definido esta validacion
        objTrack=None

        # # checar con int
        print("TEST CASE: album int como int") #*****************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Dare',"Gorillaz",1234, 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda por que acepta solo strings
        objTrack= None

        print("TEST CASE: album int como string") #***************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA',"Dare","Gorillaz",'1234', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,0) # lo guarda por que esta como string
        objTrack = None

        print("TEST CASE: album flaot como tal") #****************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Dare',"Gorillaz",1234.5, 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda por que acepta solo strings
        objTrack= None

        print("TEST CASE: album float como string") #***************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA',"Dare",'Gorillaz','1234.5', 326373)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,0) # lo guarda por que esta como string
        objTrack=None
        # aun falta validar mas detalles, mas casos de prueba y mejorar el codigo


        #CASOS DE PRUEBA: PRUEBAS A DURATION *************************************** <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< TEST CASES DURATION
        print("TEST CASE: duration es ' ' ")  #**************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Cancion','Gorillaz','D-Sides [Special Edition]', ' ' )
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None

        print("TEST CASE: duration es '' ")  #**************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Cancion','Gorillaz','D-Sides [Special Edition]', '')
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None

        print("TEST CASE: duration es None ")  #**************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Cancion',"Gorillaz",'D-Sides [Special Edition]', None)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None

        print("TEST CASE: duration es string") #**********************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Dare',"Gorillaz",'D-Sides [Special Edition]', "Esto es una cadena")
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None

        print("TEST CASE: duration mayor a 2147483647") #*******************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA',"Dare",'Gorillaz','D-Sides [Special Edition]', 2147483647+3)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no guarda
        objTrack=None

        # checar con int
        print("TEST CASE: duration es 0") #*****************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Dare',"Gorillaz",'D-Sides [Special Edition]', 0)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda por que acepta solo strings
        objTrack= None

        print("TEST CASE: duration es negativo") #***************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA',"Dare","Gorillaz",'D-Sides [Special Edition]', -1)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack = None

        print("TEST CASE: duration flaot") #****************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA','Dare',"Gorillaz",'D-Sides [Special Edition]', 326373.5)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda por que acepta solo strings
        objTrack= None

        print("TEST CASE: duration float como double") #***************************************************************************
        objTrack=Mock_Track('AAAAAAAAAAAAAAAAAAAAAA',"Dare",'Gorillaz','D-Sides [Special Edition]', 326373.15)
        objBDD.cur.execute("DELETE FROM Track")#limpiamos la base de datos
        a=objBDD.saveTrack(objTrack)
        print(objTrack.id, "guardado") if a==0 else print(objTrack.id,"No guardado")
        self.assertEqual(a,1) # no lo guarda
        objTrack=None