Exemplo n.º 1
0
    def test_delete(self):
        sA = models.Song()
        sB = models.Song()
        songA = models.File(name="Song A")
        songB = models.File(name="Song B")
        songA.song = sA
        songB.song = sB
        session.add_all([songA, songB])
        session.commit()

        response = self.client.get("/api/songs/{}".format(songA.song.id),
                                   headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        data = json.loads(response.data.decode("ascii"))

        songA = data
        sA = songA["file"]
        self.assertEqual(sA["file_name"], "Song A")
        self.assertEqual(sA["file_id"], 1)

        response = self.client.delete("/api/songs/{}".format(sA["file_id"]),
                                      headers=[("Accept", "application/json")])

        response = self.client.get("/api/songs/{}".format(sA["file_id"]),
                                   headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 404)
        self.assertEqual(response.mimetype, "application/json")

        data = json.loads(response.data.decode("ascii"))
        self.assertEqual(data["message"], "Could not find song with id 1")
Exemplo n.º 2
0
    def test_get_songs(self):
        sA = models.Song()
        sB = models.Song()
        songA = models.File(name="Song A")
        songB = models.File(name="Song B")
        songA.song = sA
        songB.song = sB
        session.add_all([songA, songB])
        session.commit()

        response = self.client.get("/api/songs",
                                   headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        data = json.loads(response.data.decode("ascii"))
        self.assertEqual(len(data), 2)

        songA = data[0]
        sA = songA["file"]
        self.assertEqual(sA["file_name"], "Song A")
        self.assertEqual(sA["file_id"], 1)

        songB = data[1]
        sB = songB["file"]
        self.assertEqual(sB["file_name"], "Song B")
        self.assertEqual(sB["file_id"], 2)
Exemplo n.º 3
0
    def test_get_songs(self):
        file_A = models.File(name='file_A.mp3')
        song_A = models.Song(file_=file_A)
        file_B = models.File(name='file_B.mp3')
        song_B = models.Song(file_=file_B)

        session.add_all([file_A, file_B, song_A, song_B])
        session.commit()

        response = self.client.get(
            '/api/songs',
            headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, 'application/json')

        data = json.loads(response.data.decode('ascii'))
        self.assertEqual(len(data), 2)

        response_song_A, response_song_B = data
        self.assertEqual(response_song_A['id'], song_A.id)
        self.assertEqual(response_song_A['file']['id'], song_A.file_.id)
        self.assertEqual(response_song_A['file']['name'], song_A.file_.name)
        self.assertEqual(response_song_B['id'], song_B.id)
        self.assertEqual(response_song_B['file']['id'], song_B.file_.id)
        self.assertEqual(response_song_B['file']['name'], song_B.file_.name)
Exemplo n.º 4
0
    def test_get_songs(self):
        """ Getting songs from a populated database """
        fileA = models.File(name="test1.mp3")
        fileB = models.File(name="test2.mp3")

        songA = models.Song(file=fileA)
        songB = models.Song(file=fileB)

        session.add_all([fileA, fileB, songA, songB])
        session.commit()

        response = self.client.get("/api/songs",
                                   headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        data = json.loads(response.data.decode("ascii"))
        self.assertEqual(len(data), 2)

        songA = data[0]
        self.assertEqual(songA['id'], 1)
        self.assertEqual(songA['file'], {
            'name': 'test1.mp3',
            'id': 1,
            'path': '/uploads/test1.mp3'
        })

        songB = data[1]
        self.assertEqual(songB['id'], 2)
        self.assertEqual(songB['file'], {
            'name': 'test2.mp3',
            'id': 2,
            'path': '/uploads/test2.mp3'
        })
Exemplo n.º 5
0
    def test_delete_song(self):
        """ Deleting a single song from a populated database """
        songA = models.File(filename="Drones.mp3")
        songA_id = models.Song(file_id=1)
        songB = models.File(filename="Californication.mp3")
        songB_id = models.Song(file_id=2)

        session.add_all([songA, songB, songA_id, songB_id])
        session.commit()

        response = self.client.get("/api/songs/{}".format(songA.id),
                                   headers=[("Accept", "application/json")])

        session.delete(songA_id)
        session.delete(songA)
        session.commit()

        response = self.client.get("/api/songs/{}".format(songB.id))

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        songs = session.query(models.Song).all()
        self.assertEqual(len(songs), 1)
        files = session.query(models.File).all()
        self.assertEqual(len(files), 1)

        song = json.loads(response.data.decode("ascii"))
        print(song)
        self.assertEqual(song["file"]["filename"], "Californication.mp3")
Exemplo n.º 6
0
    def test_get_songs(self):
        """ Getting songs from a populated database """
        songA = models.File(filename="Drones.mp3")
        songA_id = models.Song(file_id=1)
        songB = models.File(filename="Californication.mp3")
        songB_id = models.Song(file_id=2)

        session.add_all([songA, songB, songA_id, songB_id])
        session.commit()

        response = self.client.get("/api/songs",
                                   headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        data = json.loads(response.data.decode("ascii"))
        self.assertEqual(len(data), 2)

        songA = data[0]
        self.assertEqual(songA["file"]["filename"], "Drones.mp3")
        self.assertEqual(songA["id"], 1)

        songB = data[1]
        self.assertEqual(songB["file"]["filename"], "Californication.mp3")
        self.assertEqual(songB["id"], 2)
Exemplo n.º 7
0
    def test_get_songs(self):
        """ Getting songs from a populated database """

        songA = models.Song()
        songB = models.Song()

        fileA = models.File(name="fileA")
        fileB = models.File(name="fileB")

        session.add_all([fileA, fileB])
        session.commit()

        songA.file_id = fileA.id
        songB.file_id = fileB.id

        session.add_all([songA, songB])
        session.commit()

        response = self.client.get("/api/songs",
                                   headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        data = json.loads(response.data.decode("ascii"))
        self.assertEqual(len(data), 2)

        songAR = data[0]
        self.assertEqual(songAR, songA.as_dictionary())

        songBR = data[1]
        self.assertEqual(songBR, songB.as_dictionary())
Exemplo n.º 8
0
    def test_get_songs(self):
        """ Getting songs from a populated database """
        fileA = models.File(filename='FileA')
        fileB = models.File(filename='FileB')

        session.add_all([fileA, fileB])
        session.commit()

        songA = models.Song(song_file_id=fileA.id)
        songB = models.Song(song_file_id=fileB.id)

        session.add_all([songA, songB])
        session.commit()

        response = self.client.get(
            "/api/songs",
            headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        data = json.loads(response.data)
        self.assertEqual(len(data), 2)

        songA = data[0]
        self.assertEqual(songA["id"], 1)
        self.assertEqual(songA["file"]["id"], 1)
        self.assertEqual(songA["file"]["name"], "FileA")

        songB = data[1]
        self.assertEqual(songB["id"], 2)
        self.assertEqual(songB["file"]["id"], 2)
        self.assertEqual(songB["file"]["name"], "FileB")
Exemplo n.º 9
0
    def test_get_songs(self):
        """ Getting songs - success """
        #Add 2 Songs to DB with File Data
        file1 = models.File(filename="Awake.mp3")
        file2 = models.File(filename="Montana.mp3")
        song1 = models.Song(name="Awake", file=file1)
        song2 = models.Song(name="Montana", file=file2)
        
        session.add_all([song1, song2])
        session.commit()
        
        #query api
        response = self.client.get("/api/songs")
        print(response)
        
        #assert api response contains expected response
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")
        data = json.loads(response.data.decode("ascii"))
        self.assertEqual(len(data), 2)
        
        #assert response contains expected songs/file
        song1 = data[0]
        print(song1)
        self.assertEqual(song1["songname"], "Awake")
        self.assertEqual(song1["file"]["filename"], "Awake.mp3")
        self.assertEqual(song1["file"]["id"], song1["id"])

        song2 = data[1]
        self.assertEqual(song2["songname"], "Montana")
        self.assertEqual(song2["file"]["filename"], "Montana.mp3")
        self.assertEqual(song2["file"]["id"], song2["id"])
Exemplo n.º 10
0
    def test_delete_song(self):
        # test deleting a song

        # populate db
        file_A = models.File(name='file_A.mp3')
        song_A = models.Song(file=file_A)
        file_B = models.File(name='file_B.mp3')
        song_B = models.Song(file=file_B)
        session.add_all([file_A, file_B, song_A, song_B])
        session.commit()

        response = self.client.delete("/api/songs/{}".format(song_A.id),
                                      content_type="application/json",
                                      headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        data = json.loads(response.data.decode("ascii"))
        self.assertEqual(data["id"], 1)
        self.assertEqual(data["file"]["id"], 1)
        self.assertEqual(data["file"]["name"], "file_A.mp3")

        songs = session.query(models.Song).all()
        self.assertEqual(len(songs), 1)

        files = session.query(models.File).all()
        self.assertEqual(len(files), 1)
        file = files[0]
        self.assertEqual(file.id, 2)
        self.assertEqual(file.name, 'file_B.mp3')
Exemplo n.º 11
0
    def test_get_songs(self):
        fileA = models.File(name='fileA.mp3')
        session.add(fileA)
        session.commit()
        songA = models.Song(file_id=fileA.id)
        session.add(songA)
        session.commit()
        fileB = models.File(name='fileB.mp3')
        session.add(fileB)
        session.commit()
        songB = models.Song(file_id=fileB.id)
        session.add(songB)
        session.commit()

        response = self.client.get('/api/songs',
                                   headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, 'application/json')

        data = json.loads(response.data.decode('ascii'))

        SongA, SongB = data
        self.assertEqual(SongA['id'], songA.id)
        self.assertEqual(SongA['file']['id'], songA.file_id)

        self.assertEqual(SongB['id'], songB.id)
        self.assertEqual(SongB['file']['id'], songB.file_id)
Exemplo n.º 12
0
    def test_get_songs(self):
        # test getting all songs in db

        # populate db
        file_A = models.File(name='file_A.mp3')
        song_A = models.Song(file=file_A)
        file_B = models.File(name='file_B.mp3')
        song_B = models.Song(file=file_B)
        session.add_all([file_A, file_B, song_A, song_B])
        session.commit()

        response = self.client.get('/api/songs',
                                   headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, 'application/json')

        data = json.loads(response.data.decode('ascii'))
        self.assertEqual(len(data), 2)

        # store JSON structured data for each test
        response_song_A, response_song_B = data
        # assert tests for first song
        self.assertEqual(response_song_A['id'], song_A.id)
        self.assertEqual(response_song_A['file']['id'], song_A.file.id)
        self.assertEqual(response_song_A['file']['name'], song_A.file.name)
        # assert tests for second song
        self.assertEqual(response_song_B['id'], song_B.id)
        self.assertEqual(response_song_B['file']['id'], song_B.file.id)
        self.assertEqual(response_song_B['file']['name'], song_B.file.name)
Exemplo n.º 13
0
    def test_get_songs(self):
        """ Getting songs from a populated database """

        #Create example files & songs
        fileA = models.File(name="SongA.mp3")
        fileB = models.File(name="SongB.mp3")
        songA = models.Song(file=fileA)
        songB = models.Song(file=fileB)
        session.add_all([fileA, fileB, songA, songB])
        session.commit()

        response = self.client.get("/api/songs",
                                   headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        data = json.loads(response.data.decode("ascii"))
        self.assertEqual(len(data), 2)

        songA = data[0]
        self.assertEqual(songA["id"], 1)
        self.assertEqual(songA["file"]["id"], 1)
        self.assertEqual(songA["file"]["name"], "SongA.mp3")

        songB = data[1]
        self.assertEqual(songB["id"], 2)
        self.assertEqual(songB["file"]["id"], 2)
        self.assertEqual(songB["file"]["name"], "SongB.mp3")
Exemplo n.º 14
0
    def test_delete_song(self):
        """ Deleting a song """
        fileA = models.File(name="test1.mp3")
        fileB = models.File(name="test2.mp3")

        songA = models.Song(file=fileA)
        songB = models.Song(file=fileB)

        session.add_all([fileA, fileB, songA, songB])
        session.commit()

        response = self.client.delete("/api/songs/{}".format(songB.id),
                                      headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        data = json.loads(response.data.decode("ascii"))
        self.assertEqual(data["message"], "Deleted song 2")

        songs = session.query(models.Song).all()
        files = session.query(models.File).all()

        self.assertEqual(len(songs), 1)
        self.assertEqual(len(files), 2)
Exemplo n.º 15
0
    def test_put_song(self):
        """ Updating a song """

        songA = models.Song()

        fileA = models.File(name="fileA")
        fileB = models.File(name="fileB")

        session.add_all([fileA, fileB])
        session.commit()

        songA.file_id = fileA.id

        session.add_all([songA])
        session.commit()

        data = {"file": {"id": fileB.id}}

        response = self.client.put("/api/songs/{}".format(songA.id),
                                   data=json.dumps(data),
                                   content_type="application/json",
                                   headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 201)
        self.assertEqual(response.mimetype, "application/json")
        self.assertEqual(
            urlparse(response.headers.get("Location")).path, "/api/songs")

        songs = session.query(models.Song).all()
        self.assertEqual(len(songs), 1)

        data = json.loads(response.data.decode("ascii"))
        self.assertEqual(data["file"]["id"], fileB.id)
Exemplo n.º 16
0
    def test_delete_song(self):
        """ Delete a song """
        data = {}

        song = models.Song()
        file = models.File(name="file")

        session.add_all([file])
        session.commit()

        song.file_id = file.id

        session.add_all([song])
        session.commit()

        songs = session.query(models.Song).all()
        self.assertEqual(len(songs), 1)

        response = self.client.delete("/api/songs/{}".format(song.id),
                                      data=json.dumps(data),
                                      content_type="application/json",
                                      headers=[("Accept", "application/json")])

        songs = session.query(models.Song).all()
        self.assertEqual(len(songs), 0)
Exemplo n.º 17
0
    def test_edit_song(self):
        #Editing an existing song
        file = models.File(name="Example.mp3")
        song = models.Song(file=file)
        session.add(song)
        session.commit()

        data = {
            "name": "Edited.mp3",
        }

        response = self.client.put("/api/songs/{}".format(song.id),
                                   data=json.dumps(data),
                                   content_type="application/json",
                                   headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")
        self.assertEqual(
            urlparse(response.headers.get("Location")).path,
            "/api/songs/{}".format(song.id))

        data = json.loads(response.data.decode("ascii"))
        self.assertEqual(data["id"], 1)
        self.assertEqual(data["file"]["name"], "Edited.mp3")

        # Assert that there is only one song in the database
        songs = session.query(models.Song).all()
        self.assertEqual(len(songs), 1)

        # Assert that the name was changed
        song = songs[0]
        self.assertEqual(file.name, "Edited.mp3")
Exemplo n.º 18
0
    def test_edit_song(self):
        fileA = models.File(filename="testA.wav")
        fileB = models.File(filename="testB.wav")
        song = models.Song(file=fileA)

        session.add_all([fileA, fileB, song])
        session.commit()

        newfile = {"file": {"id": fileB.id}}
        data = newfile

        response = self.client.get("api/songs/{}".format(song.id),
                                   headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")
        songjson = json.loads(response.data.decode("ascii"))
        self.assertEqual(songjson["file"]["filename"], "testA.wav")

        response = self.client.put("/api/songs/{}".format(song.id),
                                   data=json.dumps(data),
                                   content_type="application/json",
                                   headers=[("Accept", "application/json")])
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")
        songjson = json.loads(response.data.decode("ascii"))
        self.assertEqual(songjson["file"]["filename"], "testB.wav")
        self.assertEqual(songjson["file"]["id"], fileB.id)
Exemplo n.º 19
0
    def test_put_song(self):
        file_A = models.File(name='file_A.mp3')
        file_B = models.File(name='file_B.mp3')
        song_A = models.Song(file_=file_A)

        session.add_all([file_A, file_B, song_A])
        session.commit()

        data = {
            "file": {
                "id": file_B.id
            }
        }

        response = self.client.put(
            "/api/songs/{}".format(song_A.id),
            data=json.dumps(data),
            content_type="application/json",
            headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        data = json.loads(response.data.decode("ascii"))
        self.assertEqual(data["id"], 1)
        self.assertEqual(data["file"]["id"], 2)
        self.assertEqual(data["file"]["name"], "file_B.mp3")

        songs = session.query(models.Song).all()
        self.assertEqual(len(songs), 1)

        song = songs[0]
        self.assertEqual(song.id, 1)
        self.assertEqual(song.file_.id, 2)
        self.assertEqual(song.file_.name, "file_B.mp3")
Exemplo n.º 20
0
    def test_delete_file(self):
        fileA = models.File(filename="testA.wav")
        songA = models.Song(file=fileA)
        session.add_all([fileA, songA])
        session.commit()

        # 1st, see if song was successfully posted
        response = self.client.get("api/songs/{}".format(songA.id),
                                   headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        # Now test DELETE
        response = self.client.delete("/api/songs/{}".format(songA.id),
                                      headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        # Try GET to check if 404
        response = self.client.get("api/songs/{}".format(songA.id),
                                   headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 404)
        self.assertEqual(response.mimetype, "application/json")
Exemplo n.º 21
0
    def test_get_song(self):
        """ Getting a single song from a populated database """
        fileA = models.File(name="SongA.mp3")
        songA = models.Song(file=fileA)
        fileB = models.File(name="SongB.mp3")
        songB = models.Song(file=fileB)
        session.add_all([fileA, fileB, songA, songB])
        session.commit()

        response = self.client.get("/api/songs/{}".format(songB.id),
                                   headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        data = json.loads(response.data.decode("ascii"))
        self.assertEqual(data["file"]["name"], "SongB.mp3")
Exemplo n.º 22
0
    def testGetSongs(self):
        """ Get a list of all the songs from a populated DB """

        # Create testing data
        # Create a couple of sample files
        fileA = models.File(name="BornThisWay.mp3")
        fileB = models.File(name="PokerFace.mp3")
        # Add them to the session and commit
        session.add_all([fileA, fileB])
        session.commit()
        # Create a couple of songs from the files
        songA = models.Song(file_id=fileA.id)
        songB = models.Song(file_id=fileB.id)
        # And add/commit
        session.add_all([songA, songB])
        session.commit()

        # Go to the page and get the response from the server, store it here
        # This is the part actually being tested
        response = self.client.get(
            "/api/songs",
            headers=[("Accept", "application/json")],
        )

        # This is the actual test
        # Was the request to the endpoint successful?
        self.assertEqual(response.status_code, 200)
        # Did the request return a JSON object?
        self.assertEqual(response.mimetype, "application/json")
        # Decode the data using json.loads
        data = json.loads(response.data)
        # Verify that two songs have been returned
        self.assertEqual(len(data), 2)
        # Verify the contents of both songs as correct
        songA = data[0]
        self.assertEqual(songA["id"], 1)
        fileA = songA["file"]
        self.assertEqual(fileA["name"], "BornThisWay.mp3")
        songB = data[1]
        self.assertEqual(songB["id"], 2)
        fileB = songB["file"]
        self.assertEqual(fileB["name"], "PokerFace.mp3")
Exemplo n.º 23
0
    def test_get_song(self):
        # test for getting one song

        # populate db
        file_A = models.File(name='file_A.mp3')
        song_A = models.Song(file=file_A)
        file_B = models.File(name='file_B.mp3')
        song_B = models.Song(file=file_B)
        session.add_all([file_A, file_B, song_A, song_B])
        session.commit()

        response = self.client.get('/api/songs/{}'.format(song_B.id),
                                   headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, 'application/json')

        song = json.loads(response.data.decode('ascii'))

        self.assertEqual(song['id'], song_B.id)
        self.assertEqual(song['file']['id'], song_B.file.id)
        self.assertEqual(song['file']['name'], song_B.file.name)
Exemplo n.º 24
0
    def test_get_songs(self):
        """ Test GET songs from populated database """
        # Add test files and songs to database
        fileA = models.File(filename='love_song.mp3')
        fileB = models.File(filename='another_song.mp3')
        session.add_all([fileA, fileB])

        songA = models.Song(files=fileA)
        songB = models.Song(files=fileB)
        session.add_all([songA, songB])
        session.commit()

        # Ensure endpoint exists and is returning JSON
        response = self.client.get("/api/songs",
                                   headers=[("Accept", "application/json")])
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        # Ensure 'songs' table contains two entries related to those in the 'files' table
        data = json.loads(response.data.decode('ascii'))
        self.assertEqual(len(data), 2)
        self.assertEqual(data[0]['file']['id'], fileA.id)
        self.assertEqual(data[1]['file']['id'], fileB.id)
Exemplo n.º 25
0
    def test_delete_song(self):
        #Deleting songs from a populated database
        fileA = models.File(name="SongA.mp3")
        songA = models.Song(file=fileA)
        fileB = models.File(name="SongB.mp3")
        songB = models.Song(file=fileB)
        session.add_all([fileA, fileB, songA, songB])
        session.commit()

        response = self.client.delete("/api/songs/{}".format(songA.id),
                                      headers=[("Accept", "application/json")])

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")
        data = json.loads(response.data.decode("ascii"))
        self.assertEqual(data["message"], "Deleted song with id 1")

        # Assert that there is only one song in the database
        songs = session.query(models.Song).all()
        self.assertEqual(len(songs), 1)
        # Assert that the right song was deleted
        song = songs[0]
        self.assertEqual(song.file.name, "SongB.mp3")
Exemplo n.º 26
0
    def post_songs(self):
        """ Post songs Test """
        test_song = {"file": {"id": 9}}

        new_song = models.Song(test_song)

        session.add(test_song)
        session.commit()

        response = self.client.post("/api/songs")

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        data = json.loads(response.data.decode("ascii"))
        self.assertEqual(len(data), 2)
Exemplo n.º 27
0
    def test_post_songs(self):
        """ Post songs Test """
        test_file = models.File(name="test_file")

        session.add(test_file)
        session.commit()

        file_test = session.query(models.File).order_by(
            models.File.name).first()

        new_song = models.Song(file=file_test)

        session.add(new_song)
        session.commit()

        response = self.client.post("/api/songs")

        self.assertEqual(response.status_code, 415)
        self.assertEqual(response.mimetype, "application/json")
Exemplo n.º 28
0
    def test_delete_song(self):

        new_file = models.File(name='New_File')
        session.add(new_file)
        session.commit()
        new_song = models.Song(file_id=new_file.id)
        session.add(new_song)
        session.commit()

        response = self.client.delete("/api/songs/{}".format(new_song.id),
                                      headers=[("Accept", "application/json")])

        session.delete(new_file)
        session.commit()

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.mimetype, "application/json")

        songs = session.query(models.Song).all()
        self.assertEqual(len(songs), 0)
Exemplo n.º 29
0
    def test_get_songs(self):
        """ Getting songs from a populated database """
        fileA = models.File(name="Shady_Grove.mp3")

        songA = models.Song(filename=fileA)
        session.add_all([songA, fileA])
        session.commit()

        response = self.client.get("/api/songs",
                                   headers=[("Accept", "application/json")])

        #Was request to endpoint successful?
        self.assertEqual(response.status_code, 200)
        #Was the response a JSON object
        self.assertEqual(response.mimetype, "application/json")

        #decode data
        data = json.loads(response.data.decode("ascii"))
        #check to see if it is only one song in data
        self.assertEqual(len(data), 1)

        songA = data[0]
        self.assertEqual(fileA.name, "Shady_Grove.mp3")
        self.assertEqual(songA["id"], 1)
Exemplo n.º 30
0
def add_song():
    drones = models.File(filename="Drones.mp3")
    drones_id = models.Song(file_id=1)
    session.add_all([drones, drones_id])
    session.commit()