def test_autocomplete_query_none(get_many, client): response = client.get('/language/autocomplete', query_string={'input_text': None}) get_many.assert_not_called() assert response.status_code == 400 # TODO: This behavior makes the `if input_text is None` check useless assert "Must have valid input_text field" not in response.data.decode()
def test_get_network_by_id(get_one, client): response = client.get("/network/1") query = "SELECT * FROM `networks` WHERE id=%s" get_one.assert_called_with(query, '1') exp = { 'city_cur': 'Palo Alto', 'city_origin': None, 'country_cur': 'United States', 'country_origin': 'United States', 'date_added': 'Tue, 12 Jan 2016 04:51:19 GMT', 'id': 1, 'id_city_cur': 332851, 'id_city_origin': None, 'id_country_cur': 47228, 'id_country_origin': 47228, 'id_language_origin': None, 'id_region_cur': 55833, 'id_region_origin': 56020, 'img_link': None, 'language_origin': None, 'network_class': 'rc', 'region_cur': 'California', 'region_origin': 'Michigan', 'twitter_query_level': 'A' } assert response.status_code == 200 assert response.json == exp
def test_autocomplete(get_many, client): search_text = 'york' response = client.get('/location/autocomplete', query_string={'input_text': search_text}) cit_format = "SELECT cities.name, id AS city_id, region_id, country_id " \ "FROM cities WHERE cities.name REGEXP %s" reg_format = "SELECT regions.name, 'null' AS city_id, id AS region_id, " \ "country_id FROM regions WHERE regions.name REGEXP %s" cou_format = "SELECT countries.name, 'null' AS city_id, 'null' AS " \ "region_id, id AS country_id FROM countries WHERE " \ "countries.name REGEXP %s" calls = [call(form, ('york',), 100) for form in [cit_format, reg_format, cou_format]] get_many.assert_has_calls(calls, any_order=False) assert response.status_code == 200 exp = [{'city_id': 135351, 'country_id': 44888, 'name': 'North York', 'region_id': 21359}, {'city_id': 136221, 'country_id': 44888, 'name': 'Yorkton', 'region_id': 21392}, {'city_id': 183111, 'country_id': 45356, 'name': 'York', 'region_id': 27255}, {'city_id': 316511, 'country_id': 47228, 'name': 'York', 'region_id': 56196}, {'city_id': 322071, 'country_id': 47228, 'name': 'Yorkville', 'region_id': 55921}, {'city_id': 326241, 'country_id': 47228, 'name': 'West New York', 'region_id': 56108}, {'city_id': 326611, 'country_id': 47228, 'name': 'East New York', 'region_id': 56130}, {'city_id': 327181, 'country_id': 47228, 'name': 'New York City', 'region_id': 56130}, {'city_id': 'null', 'country_id': 47228, 'name': 'New York', 'region_id': 56130}] assert response.json == exp
def test_get_networks(get_many, client): response = client.get('/user/2/networks') query = "SELECT networks.*, join_date " \ "FROM network_registration " \ "INNER JOIN networks " \ "ON networks.id = " \ "network_registration.id_network " \ "WHERE network_registration.id_user=%sORDER BY join_date DESC" get_many.assert_called_with(query, ('2', ), 100) assert response.status_code == 200 exp = [{ 'city_cur': 'Palo Alto', 'city_origin': None, 'country_cur': 'United States', 'country_origin': 'United States', 'date_added': 'Tue, 12 Jan 2016 04:51:19 GMT', 'id': 1, 'id_city_cur': 332851, 'id_city_origin': None, 'id_country_cur': 47228, 'id_country_origin': 47228, 'id_language_origin': None, 'id_region_cur': 55833, 'id_region_origin': 56020, 'img_link': None, 'join_date': 'Sun, 01 Jun 2014 12:58:44 GMT', 'language_origin': None, 'network_class': 'rc', 'region_cur': 'California', 'region_origin': 'Michigan', 'twitter_query_level': 'A' }] assert response.json == exp
def test_get_users(get_many, client): response = client.get("/network/3161/users") query = "SELECT users.*, join_date " \ "FROM network_registration " \ "INNER JOIN users " \ "ON users.id = " \ "network_registration.id_user " \ "WHERE id_network=%sORDER BY join_date DESC" get_many.assert_called_with(query, ('3161', ), 100) assert response.status_code == 200 exp = [{ 'about_me': None, 'act_code': '', 'company_news': None, 'confirmed': 0, 'email': 'snsj', 'events_interested_in': None, 'events_upcoming': None, 'first_name': 'dndn', 'fp_code': None, 'gender': None, 'id': 178, 'img_link': None, 'join_date': 'Wed, 22 Aug 2018 00:11:42 GMT', 'last_login': '******', 'last_name': 'dbdn', 'network_activity': None, 'password': '******', 'register_date': 'Tue, 21 Aug 2018 23:36:05 GMT', 'role': None, 'username': '******' }] assert response.json == exp
def test_get_user_by_id(get_one, client): response = client.get("/user/2") query = "SELECT * FROM `users` WHERE id=%s" get_one.assert_called_with(query, '2') assert response.status_code == 200 exp = { 'about_me': 'I am from Korea and working at SF as game developer.', 'act_code': '97657a61f23bff2b65c63c9aacf4f032', 'company_news': 1, 'confirmed': 1, 'events_interested_in': 1, 'events_upcoming': 1, 'first_name': 'Chris', 'fp_code': None, 'gender': 'M', 'id': 2, 'img_link': '1401652610_0/pp.png', 'last_login': '******', 'last_name': 'Youm', 'network_activity': 1, 'register_date': 'Mon, 30 Jul 2018 23:45:05 GMT', 'role': 0, 'username': '******' } assert response.json == exp
def test_get_net_users(get_all, get_many, client): city_cur = 327181 region_cur = 56130 country_cur = 47228 near_loc = str(country_cur) + ',' + str(region_cur) + ',' + str(city_cur) city_origin = 332851 region_origin = 55833 country_origin = 47228 from_loc = str(country_origin) + ',' + str(region_origin) + ',' + \ str(city_origin) response = client.get('/user/users', query_string={ 'near_location': near_loc, 'from_location': from_loc }) net_query = 'SELECT id FROM networks WHERE id_country_cur=%s AND ' \ 'id_region_cur=%s AND id_city_cur=%s AND ' \ 'id_country_origin=%s AND id_region_origin=%s AND ' \ 'id_city_origin=%s' net_args = ('47228', '56130', '327181', '47228', '55833', '332851') net_call = call(net_query, net_args) reg_query = 'SELECT id_user FROM network_registration WHERE ' \ 'id_network IN %sORDER BY id_user DESC' reg_args = (((3161, ), ), ) reg_count = 100 get_many.assert_called_with(reg_query, reg_args, reg_count) usr_query = 'SELECT * FROM users WHERE id IN %s' usr_args = (((178, ), ), ) usr_call = call(usr_query, usr_args) get_all.assert_has_calls([net_call, usr_call], any_order=False) assert response.status_code == 200 exp = [{ 'about_me': None, 'act_code': '', 'company_news': None, 'confirmed': 0, 'events_interested_in': None, 'events_upcoming': None, 'first_name': 'dndn', 'fp_code': None, 'gender': None, 'id': 178, 'img_link': None, 'last_login': '******', 'last_name': 'dbdn', 'network_activity': None, 'register_date': 'Tue, 21 Aug 2018 23:36:05 GMT', 'role': None, 'username': '******' }] assert response.json == exp
def test_autocomplete_query_none(get_many, client): search_text = 'nonexistentLocationQuery' response = client.get('/language/autocomplete', query_string={'input_text': search_text}) query = "SELECT * FROM languages WHERE languages.name REGEXP %s " \ "ORDER BY num_speakers DESC;" get_many.assert_called_with(query, ('nonexistentLocationQuery',), 20) assert response.status_code == 200 assert response.json == []
def test_get_event_by_id(get_one, client): response = client.get("/language/1") query = "SELECT * FROM `languages` WHERE id=%s" get_one.assert_called_with(query, '1') assert response.status_code == 200 exp = {'added': 0, 'id': 1, 'name': 'Mandarin Chinese/Putonghua', 'num_speakers': 935, 'tweet_terms': None, 'tweet_terms_override': None} assert response.json == exp
def test_get_reg_empty(get_many, client): response = client.get("/event/23/reg") query = "SELECT * " \ "FROM event_registration " \ "WHERE id_event=%sORDER BY date_registered DESC" get_many.assert_called_with(query, ('23', ), 100) assert response.status_code == 200 exp = [] assert response.json == exp
def test_get_reg_count(get_one, client): response = client.get("/event/23/reg_count") query = "SELECT count(*) \ as reg_count \ from event_registration \ where id_event=%s" get_one.assert_called_with(query, ('23', )) assert response.status_code == 200 assert response.json == {'reg_count': 0}
def test_get_country_by_id(get_one, client): response = client.get("/location/countries/47228") query = "SELECT * FROM `countries` WHERE id=%s" get_one.assert_called_with(query, '47228') assert response.status_code == 200 exp = {'feature_code': None, 'id': 47228, 'iso_a2': None, 'latitude': '-129.3214', 'longitude': '61.660733', 'name': 'United States', 'population': 1, 'tweet_terms': 'USA, United States', 'tweet_terms_override': 1} assert response.json == exp
def test_get_reply_count(get_one, client): response = client.get('post/88/reply_count') query = "SELECT count(*) \ as reply_count \ from post_replies \ where id_parent=%s" get_one.assert_called_with(query, ('88', )) assert response.status_code == 200 exp = {'reply_count': 5} assert response.json == exp
def test_get_user_count(get_one, client): response = client.get("/network/1/user_count") query = "SELECT count(*) \ as user_count \ from network_registration \ where id_network=%s" get_one.assert_called_with(query, ('1', )) assert response.status_code == 200 exp = {'user_count': 16} assert response.json == exp
def test_get_post_count(get_one, client): response = client.get("/network/1/post_count") query = "SELECT count(*) \ as post_count \ from posts \ where id_network=%s" get_one.assert_called_with(query, ('1', )) assert response.status_code == 200 exp = {'post_count': 48} assert response.json == exp
def test_get_region_by_id(get_one, client): response = client.get("/location/regions/56130") query = "SELECT * FROM `regions` WHERE id=%s" get_one.assert_called_with(query, '56130') assert response.status_code == 200 exp = {'country_id': 47228, 'country_name': 'United States', 'country_tweet_terms': 'USA, United States', 'country_tweet_terms_override': 1, 'feature_code': None, 'id': 56130, 'latitude': 43.0003, 'longitude': -75.4999, 'name': 'New York', 'population': 1, 'tweet_terms': None, 'tweet_terms_override': 0} assert response.json == exp
def test_get_reply_by_id(get_one, client): response = client.get('/post/reply/207') query = "SELECT * FROM `post_replies` WHERE id=%s" get_one.assert_called_with(query, '207') assert response.status_code == 200 exp = { 'id': 207, 'id_network': 1, 'id_parent': 88, 'id_user': 6, 'reply_date': 'Mon, 28 Jul 2014 20:12:51 GMT', 'reply_text': 'Hey Ken, how is Palo Alto?' } assert response.json == exp
def test_autocomplete(get_many, client): search_text = 'en' response = client.get('/language/autocomplete', query_string={'input_text': search_text}) query = "SELECT * FROM languages WHERE languages.name REGEXP %s " \ "ORDER BY num_speakers DESC;" get_many.assert_called_with(query, ('en',), 20) assert response.status_code == 200 exp = [{'added': 0, 'id': 3, 'name': 'English', 'num_speakers': 365, 'tweet_terms': None, 'tweet_terms_override': '0'}, {'added': 0, 'id': 7, 'name': 'Bengali', 'num_speakers': 202, 'tweet_terms': None, 'tweet_terms_override': None}, {'added': 0, 'id': 18, 'name': 'French', 'num_speakers': 74, 'tweet_terms': None, 'tweet_terms_override': None}] assert response.json == exp
def test_get_city_by_id(get_one, client): response = client.get("/location/cities/327181") query = "SELECT * FROM `cities` WHERE id=%s" get_one.assert_called_with(query, '327181') assert response.status_code == 200 exp = {'country_id': 47228, 'country_name': 'United States', 'country_tweet_terms': 'USA, United States', 'country_tweet_terms_override': 1, 'feature_code': 'PPL', 'id': 327181, 'latitude': 40.7143, 'longitude': -74.006, 'name': 'New York City', 'population': 8175133, 'region_id': 56130, 'region_name': 'New York', 'region_tweet_terms': None, 'region_tweet_terms_override': 0, 'tweet_terms': None, 'tweet_terms_override': 0} assert response.json == exp
def test_get_events(get_many, client): response = client.get("/network/547/events") query = "SELECT * " \ "FROM events " \ "WHERE id_network=%sORDER BY id DESC" get_many.assert_called_with(query, ('547', ), 100) assert response.status_code == 200 exp = [{ 'address_1': 'ehebsbdhd', 'address_2': '', 'city': '', 'country': '', 'date_created': 'Sat, 21 Jul 2018 01:11:20 GMT', 'description': 'she\n', 'event_date': 'Sat, 21 Jul 2018 01:11:20 GMT', 'id': 61, 'id_host': 1, 'id_network': 547, 'region': '', 'title': 'dbbdbbd' }, { 'address_1': 'djdj', 'address_2': '', 'city': '', 'country': '', 'date_created': 'Sat, 21 Jul 2018 01:01:10 GMT', 'description': 'snsns', 'event_date': '0000-00-00 00:00:00', 'id': 60, 'id_host': 1, 'id_network': 547, 'region': '', 'title': 'shsjd' }, { 'address_1': '100 Some Road, Orangetown, CT', 'address_2': '', 'city': '', 'country': '', 'date_created': 'Sat, 21 Jul 2018 00:50:28 GMT', 'description': "something's happening.\n\n", 'event_date': '0000-00-00 00:00:00', 'id': 59, 'id_host': 1, 'id_network': 547, 'region': '', 'title': 'Test Event' }] assert response.json == exp
def test_get_post_by_id(get_one, client): response = client.get('/post/88') query = "SELECT * FROM `posts` WHERE id=%s" get_one.assert_called_with(query, '88') assert response.status_code == 200 exp = { 'id': 88, 'id_network': 1, 'id_user': 3, 'img_link': '', 'post_class': 'o', 'post_date': 'Sun, 27 Jul 2014 12:15:02 GMT', 'post_original': None, 'post_text': 'Hey Michiganders in Palo Alto!', 'vid_link': '' } assert response.json == exp
def test_get_posts(get_many, client): response = client.get("/network/545/posts") query = "SELECT * " \ "FROM posts " \ "WHERE id_network=%sORDER BY id DESC" get_many.assert_called_with(query, ('545', ), 100) assert response.status_code == 200 exp = [{ 'id': 635, 'id_network': 545, 'id_user': 171, 'img_link': None, 'post_class': 'o', 'post_date': 'Wed, 19 Sep 2018 20:34:56 GMT', 'post_original': None, 'post_text': 'Testing making a post here!', 'vid_link': None }] assert response.json == exp
def test_get_posts(get_many, client): response = client.get('/user/2/posts') query = "SELECT * " \ "FROM posts " \ "WHERE id_user=%sORDER BY id DESC" get_many.assert_called_with(query, ('2', ), 100) assert response.status_code == 200 exp = [{ 'id': 381, 'id_network': 1, 'id_user': 2, 'img_link': None, 'post_class': 'o', 'post_date': 'Sat, 17 Jan 2015 12:32:12 GMT', 'post_original': None, 'post_text': '[b]Picture test[/b] on [link]culturemesh.com[/link]', 'vid_link': None }] assert response.json == exp
def test_get_reg(get_many, client): response = client.get("/event/125/reg") query = "SELECT * " \ "FROM event_registration " \ "WHERE id_event=%sORDER BY date_registered DESC" get_many.assert_called_with(query, ('125', ), 100) assert response.status_code == 200 exp = [{ 'date_registered': 'Wed, 19 Sep 2018 11:13:43 GMT', 'id_event': 125, 'id_guest': 171, 'job': 'guest' }, { 'date_registered': 'Fri, 07 Sep 2018 23:48:07 GMT', 'id_event': 125, 'id_guest': 172, 'job': 'host' }] assert response.json == exp
def test_get_event_by_id(get_one, client): response = client.get("/event/23") query = "SELECT * FROM `events` WHERE id=%s" get_one.assert_called_with(query, '23') assert response.status_code == 200 exp = { 'address_1': '123 Random', 'address_2': '', 'city': 'San Francisco', 'country': None, 'date_created': 'Tue, 19 Aug 2014 00:10:54 GMT', 'description': 'cool stuff', 'event_date': 'Wed, 24 Sep 2014 00:10:00 GMT', 'id': 23, 'id_host': 3, 'id_network': 251, 'region': 'CA', 'title': 'Random Event' } assert response.json == exp
def test_autocomplete_no_query(get_many, client): response = client.get('/language/autocomplete') get_many.assert_not_called() assert response.status_code == 400
def test_ping(client): response = client.get('/language/ping') assert response.data.decode() == 'pong'
def test_note_returns_any_file_contents(client, test_string): assume('\r' not in test_string) with open(client.application.config["NOTE_PATH"], "w") as note_file: note_file.write(test_string) assert client.get("/dev/note").data.decode() == test_string
def test_note_returns_file_contents(client): with open(client.application.config["NOTE_PATH"], "w") as note_file: note_file.write(NOTE_TEST_STRING) assert client.get("/dev/note").data.decode() == NOTE_TEST_STRING
def test_get_replies(get_many, client): response = client.get('/post/88/replies') query = "SELECT post_replies.* " \ "FROM posts " \ "INNER JOIN post_replies " \ "ON posts.id = post_replies.id_parent " \ "WHERE posts.id=%sORDER BY id DESC" get_many.assert_called_with(query, ('88', ), 100) assert response.status_code == 200 exp = [{ 'id': 424, 'id_network': 1, 'id_parent': 88, 'id_user': 2, 'reply_date': 'Thu, 05 Jul 2018 22:41:49 GMT', 'reply_text': "hey..... what's up? s dndndmdmxndndndndndndnddndndnd" "ndndndndndbdbdnndndndndndndndndndndndndnn<i>djdjdkdk" "dkdkdkdmdmmdmdmdmdmdmdndbdbdbdbdbdnnddnndndndndndndn" "dbdnndndndndndndnndndndndndndndndnndndnd</i>ndndndnd" "nnddnndndndkdkdndbdnndndndndndndndnndndndndndndndnnd" "ndnd\n" }, { 'id': 238, 'id_network': 1, 'id_parent': 88, 'id_user': 71, 'reply_date': 'Wed, 20 Aug 2014 12:21:35 GMT', 'reply_text': 'Harro :) ' }, { 'id': 209, 'id_network': 1, 'id_parent': 88, 'id_user': 3, 'reply_date': 'Wed, 30 Jul 2014 18:50:29 GMT', 'reply_text': 'This would be a good page to get together & ' 'coordinate outings for when Michigan-based sports ' 'teams are in the area (e.g. Pistons, Tigers, Red ' 'Wings, Lions, Spartans, Wolverines).' }, { 'id': 208, 'id_network': 1, 'id_parent': 88, 'id_user': 3, 'reply_date': 'Wed, 30 Jul 2014 18:43:20 GMT', 'reply_text': "@Andrew, it's not too bad at all ;)" }, { 'id': 207, 'id_network': 1, 'id_parent': 88, 'id_user': 6, 'reply_date': 'Mon, 28 Jul 2014 20:12:51 GMT', 'reply_text': 'Hey Ken, how is Palo Alto?' }] assert response.json == exp