from tracker import json_utils, db from tracker.test import add_and_flush from . import login_to_test_client as _login def test_get_whitelist(session): add_and_flush( session, db.ScUser( scid=1, name="Test Artist", data={"permalink_url": "https://example.com/foo"}, ), db.SpyArtist(spyid="1", name="Test Artist"), db.Artist(arid=1), db.ArtistAssociation(identifier="1", source="sc", arid=1), db.ArtistAssociation(identifier="1", source="spy", arid=1), ) session.add( db.WhitelistedArtist(arid=1, username="test", is_live=True) ) # should not be returned session.commit() from api import api app = api.app.test_client() _login(app) rv = app.get("/api/my_whitelist") data = json_utils.loads(rv.data) print(json_utils.dumps(data, indent=2)) assert len(data["artists"]) == 1 assert data["artists"][0]["arid"] == 1 assert data["artists"][0]["artist"]["name"] == "Test Artist" def test_creates_new_artist_record(session): add_and_flush( session, db.ScUser( scid=1, name="Test Artist", data={"permalink_url": "https://example.com/foo"}, ), db.SpyArtist(spyid="1", name="Test Artist"), db.Artist(arid=1), db.ArtistAssociation(identifier="1", source="sc", arid=1), db.ArtistAssociation(identifier="1", source="spy", arid=1), ) session.commit() from api import api app = api.app.test_client() _login(app) rv = app.put("/api/my_whitelist/a/1") data = json_utils.loads(rv.data) whitelisted = ( db.Session.query(db.WhitelistedArtist) .filter(db.WhitelistedArtist.username == "test") .all() ) assert len(whitelisted) == 1 assert whitelisted[0].arid == data["arid"] audit = ( db.Session.query(db.WhitelistedArtistAudit) .filter(db.WhitelistedArtistAudit.arid == data["arid"]) .all() ) assert len(audit) == 1 def test_unlist(session): add_and_flush( session, db.ScUser( scid=1, name="Test Artist", data={"permalink_url": "https://example.com/foo"}, ), db.SpyArtist(spyid="1", name="Test Artist"), db.Artist(arid=1), db.ArtistAssociation(identifier="1", source="sc", arid=1), db.ArtistAssociation(identifier="1", source="spy", arid=1), ) session.add(db.WhitelistedArtist(arid=1, username="test", is_live=True)) session.commit() from api import api app = api.app.test_client() _login(app) rv = app.delete("/api/my_whitelist/1") data = json_utils.loads(rv.data) assert rv.status_code == 200 assert data["arid"] == 1 assert not ( session.query(db.WhitelistedArtist) .filter(db.WhitelistedArtist.username == "test", db.WhitelistedArtist.arid == 1) .one() .is_live )