Initial import: Music_Server, MusicFree, catalog-sync
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
import sqlite3
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
from unittest.mock import patch
|
||||
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from music_server.app import create_app
|
||||
from tests.support import auth_headers
|
||||
|
||||
|
||||
class PlayerRouteTests(unittest.TestCase):
|
||||
def _prepare_player_db(self, db_path: Path) -> None:
|
||||
conn = sqlite3.connect(db_path)
|
||||
conn.execute(
|
||||
"""
|
||||
create table favorite_tracks (
|
||||
track_id integer primary key,
|
||||
added_at text not null
|
||||
)
|
||||
"""
|
||||
)
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
def test_favorite_track_put_then_list(self):
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
db_path = Path(tmpdir) / "player.db"
|
||||
self._prepare_player_db(db_path)
|
||||
|
||||
with patch.dict(
|
||||
"os.environ",
|
||||
{
|
||||
"PLAYER_DB_PATH": str(db_path),
|
||||
},
|
||||
clear=False,
|
||||
):
|
||||
client = TestClient(create_app())
|
||||
put_response = client.put(
|
||||
"/player/v1/me/favorites/tracks/3476",
|
||||
headers=auth_headers(db_path),
|
||||
)
|
||||
get_response = client.get(
|
||||
"/player/v1/me/favorites/tracks",
|
||||
headers=auth_headers(db_path),
|
||||
)
|
||||
|
||||
self.assertEqual(204, put_response.status_code)
|
||||
self.assertEqual(200, get_response.status_code)
|
||||
self.assertEqual({"items": [{"track_id": 3476}]}, get_response.json())
|
||||
|
||||
def test_favorite_track_routes_work_with_fresh_empty_db(self):
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
db_path = Path(tmpdir) / "player.db"
|
||||
|
||||
with patch.dict(
|
||||
"os.environ",
|
||||
{
|
||||
"PLAYER_DB_PATH": str(db_path),
|
||||
},
|
||||
clear=False,
|
||||
):
|
||||
client = TestClient(create_app())
|
||||
put_response = client.put(
|
||||
"/player/v1/me/favorites/tracks/8888",
|
||||
headers=auth_headers(db_path),
|
||||
)
|
||||
get_response = client.get(
|
||||
"/player/v1/me/favorites/tracks",
|
||||
headers=auth_headers(db_path),
|
||||
)
|
||||
|
||||
self.assertEqual(204, put_response.status_code)
|
||||
self.assertEqual(200, get_response.status_code)
|
||||
self.assertEqual({"items": [{"track_id": 8888}]}, get_response.json())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user