from tracker import json_utils, db from tracker.test import test_data from . import login_to_test_client as _login def test_lookup(session): session.add(db.ScUser(scid=1, name="Find Me First", data=test_data.make_soundcloud_user_json(username='findmefirst'))) session.add(db.ScUser(scid=2, name="I'm not returned", data=test_data.make_soundcloud_user_json(username='notreturned'))) session.add(db.InUser(inid='findmetoo', page_data=test_data.make_insta_user_json(full_name='Find Me Too'))) session.add(db.InUser(inid='notfound', page_data=test_data.make_insta_user_json(full_name="Im not returned"))) session.add(db.TrackedEntity(eid=1, name="Find Me Yes", twitter_data=test_data.make_twitter_user_json(screen_name='findmeyes'))) session.add(db.TrackedEntity(eid=2, name="Not found", twitter_data=test_data.make_twitter_user_json(screen_name='notfound'))) session.add(db.TrackedEntity(eid=100, name="Influencer")) session.flush() session.add(db.Following(influencer_eid=100, followee_eid=1)) session.execute("refresh materialized view entity_names") session.commit() session.execute("refresh materialized view twitter_artist_activity") session.commit() from api import api app = api.app.test_client() _login(app) rv = app.get('/api/lookup_artist?q=find%20me') data = json_utils.loads(rv.data) print(json_utils.dumps(data, indent=2)) assert len(data['results']) == 3 expected = { 'sc':['sc', "1", "Find Me First", "findmefirst"], 'in':['in', "findmetoo", "Find Me Too", "findmetoo"], 'tw':['tw', "1", "Find Me Yes", "findmeyes"], } for r in data['results']: assert r == expected[r[0]]