def test_prepare_query_message_exception_if_invalid_query(self): """ Testing all cases with invalid queries """ # query name doesn't exist in the list with self.assertRaises(request_manage.InvalidSparkRequestError): request_manage._prepare_query_message('getmesomething') # extra parameter given with self.assertRaises(request_manage.InvalidSparkRequestError): request_manage._prepare_query_message( 'stats.user.listening_activity.week', {'musicbrainz_id': 'wtf'}) # invalid parameter given with self.assertRaises(request_manage.InvalidSparkRequestError): request_manage._prepare_query_message('stats.user.entity', {'invalid_param': 'wtf'}) # extra (unexpected) parameter passed with self.assertRaises(request_manage.InvalidSparkRequestError): request_manage._prepare_query_message('stats.user.entity', { 'entity': 'recordings', 'param2': 'bbq' }) # expected parameter not passed with self.assertRaises(request_manage.InvalidSparkRequestError): request_manage._prepare_query_message('stats.user.entity', {})
def test_prepare_query_message_happy_path(self): expected_message = ujson.dumps({'query': 'stats.user.all'}) received_message = request_manage._prepare_query_message( 'stats.user.all') self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.user.for_user', 'params': { 'musicbrainz_id': 'iliekcomputers' }, }) received_message = request_manage._prepare_query_message( 'stats.user.for_user', {'musicbrainz_id': 'iliekcomputers'}) self.assertEqual(expected_message, received_message)
def test_prepare_query_message_happy_path(self): expected_message = ujson.dumps({ 'query': 'stats.user.entity', 'params': { 'entity': 'test', 'stats_range': 'week' } }) received_message = request_manage._prepare_query_message( 'stats.user.entity', params={ 'entity': 'test', 'stats_range': 'week' }) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.user.entity', 'params': { 'entity': 'test', 'stats_range': 'month' } }) received_message = request_manage._prepare_query_message( 'stats.user.entity', params={ 'entity': 'test', 'stats_range': 'month' }) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.user.entity', 'params': { 'entity': 'test', 'stats_range': 'year' } }) received_message = request_manage._prepare_query_message( 'stats.user.entity', params={ 'entity': 'test', 'stats_range': 'year' }) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.user.entity', 'params': { 'entity': 'test', 'stats_range': 'all_time' } }) received_message = request_manage._prepare_query_message( 'stats.user.entity', params={ 'entity': 'test', 'stats_range': 'all_time' }) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.user.listening_activity', 'params': { 'stats_range': 'week' } }) received_message = request_manage._prepare_query_message( 'stats.user.listening_activity', params={'stats_range': 'week'}) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.user.listening_activity', 'params': { 'stats_range': 'month' } }) received_message = request_manage._prepare_query_message( 'stats.user.listening_activity', params={'stats_range': 'month'}) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.user.listening_activity', 'params': { 'stats_range': 'year' } }) received_message = request_manage._prepare_query_message( 'stats.user.listening_activity', params={'stats_range': 'year'}) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.user.listening_activity', 'params': { 'stats_range': 'all_time' } }) received_message = request_manage._prepare_query_message( 'stats.user.listening_activity', params={'stats_range': 'all_time'}) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.user.daily_activity', 'params': { 'stats_range': 'week' } }) received_message = request_manage._prepare_query_message( 'stats.user.daily_activity', params={'stats_range': 'week'}) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.user.daily_activity', 'params': { 'stats_range': 'month' } }) received_message = request_manage._prepare_query_message( 'stats.user.daily_activity', params={'stats_range': 'month'}) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.user.daily_activity', 'params': { 'stats_range': 'year' } }) received_message = request_manage._prepare_query_message( 'stats.user.daily_activity', params={'stats_range': 'year'}) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.user.daily_activity', 'params': { 'stats_range': 'all_time' } }) received_message = request_manage._prepare_query_message( 'stats.user.daily_activity', params={'stats_range': 'all_time'}) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.sitewide.entity', 'params': { 'entity': 'test', 'stats_range': 'week' } }) received_message = request_manage._prepare_query_message( 'stats.sitewide.entity', params={ 'entity': 'test', 'stats_range': 'week' }) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.sitewide.entity', 'params': { 'entity': 'test', 'stats_range': 'month' } }) received_message = request_manage._prepare_query_message( 'stats.sitewide.entity', params={ 'entity': 'test', 'stats_range': 'month' }) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.sitewide.entity', 'params': { 'entity': 'test', 'stats_range': 'year' } }) received_message = request_manage._prepare_query_message( 'stats.sitewide.entity', params={ 'entity': 'test', 'stats_range': 'year' }) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.sitewide.entity', 'params': { 'entity': 'test', 'stats_range': 'all_time' } }) received_message = request_manage._prepare_query_message( 'stats.sitewide.entity', params={ 'entity': 'test', 'stats_range': 'all_time' }) self.assertEqual(expected_message, received_message) message = { 'query': 'cf.recommendations.recording.create_dataframes', 'params': { 'train_model_window': 20, 'job_type': "recommendation_recording", 'minimum_listens_threshold': 0, } } expected_message = ujson.dumps(message) received_message = request_manage._prepare_query_message( 'cf.recommendations.recording.create_dataframes', message['params']) self.assertEqual(expected_message, received_message) message = { 'query': 'cf.recommendations.recording.train_model', 'params': { 'ranks': [1, 2], 'lambdas': [2.0, 3.0], 'iterations': [2, 3], 'alpha': 3.0, } } expected_message = ujson.dumps(message) received_message = request_manage._prepare_query_message( 'cf.recommendations.recording.train_model', message['params']) self.assertEqual(expected_message, received_message) message = { 'query': 'cf.recommendations.recording.candidate_sets', 'params': { 'recommendation_generation_window': 7, 'top_artist_limit': 10, 'similar_artist_limit': 10, "users": ['vansika'], "html_flag": True } } expected_message = ujson.dumps(message) received_message = request_manage._prepare_query_message( 'cf.recommendations.recording.candidate_sets', message['params']) self.assertEqual(expected_message, received_message) message = { 'query': 'cf.recommendations.recording.recommendations', 'params': { 'recommendation_top_artist_limit': 7, 'recommendation_similar_artist_limit': 7, 'users': ['vansika'] } } expected_message = ujson.dumps(message) received_message = request_manage._prepare_query_message( 'cf.recommendations.recording.recommendations', message['params']) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({'query': 'import.artist_relation'}) received_message = request_manage._prepare_query_message( 'import.artist_relation') self.assertEqual(expected_message, received_message) message = { 'query': 'similarity.similar_users', 'params': { 'max_num_users': 25 } } expected_message = ujson.dumps(message) received_message = request_manage._prepare_query_message( 'similarity.similar_users', message['params']) self.assertEqual(expected_message, received_message)
def test_prepare_query_message_happy_path(self): expected_message = ujson.dumps({ 'query': 'stats.user.entity.week', 'params': { 'entity': 'test' } }) received_message = request_manage._prepare_query_message( 'stats.user.entity.week', params={'entity': 'test'}) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.user.entity.month', 'params': { 'entity': 'test' } }) received_message = request_manage._prepare_query_message( 'stats.user.entity.month', params={'entity': 'test'}) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.user.entity.year', 'params': { 'entity': 'test' } }) received_message = request_manage._prepare_query_message( 'stats.user.entity.year', params={'entity': 'test'}) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.user.entity.all_time', 'params': { 'entity': 'test' } }) received_message = request_manage._prepare_query_message( 'stats.user.entity.all_time', params={'entity': 'test'}) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps( {'query': 'stats.user.listening_activity.week'}) received_message = request_manage._prepare_query_message( 'stats.user.listening_activity.week') self.assertEqual(expected_message, received_message) expected_message = ujson.dumps( {'query': 'stats.user.listening_activity.month'}) received_message = request_manage._prepare_query_message( 'stats.user.listening_activity.month') self.assertEqual(expected_message, received_message) expected_message = ujson.dumps( {'query': 'stats.user.listening_activity.year'}) received_message = request_manage._prepare_query_message( 'stats.user.listening_activity.year') self.assertEqual(expected_message, received_message) expected_message = ujson.dumps( {'query': 'stats.user.listening_activity.all_time'}) received_message = request_manage._prepare_query_message( 'stats.user.listening_activity.all_time') self.assertEqual(expected_message, received_message) expected_message = ujson.dumps( {'query': 'stats.user.daily_activity.week'}) received_message = request_manage._prepare_query_message( 'stats.user.daily_activity.week') self.assertEqual(expected_message, received_message) expected_message = ujson.dumps( {'query': 'stats.user.daily_activity.month'}) received_message = request_manage._prepare_query_message( 'stats.user.daily_activity.month') self.assertEqual(expected_message, received_message) expected_message = ujson.dumps( {'query': 'stats.user.daily_activity.year'}) received_message = request_manage._prepare_query_message( 'stats.user.daily_activity.year') self.assertEqual(expected_message, received_message) expected_message = ujson.dumps( {'query': 'stats.user.daily_activity.all_time'}) received_message = request_manage._prepare_query_message( 'stats.user.daily_activity.all_time') self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.sitewide.entity.week', 'params': { 'entity': 'test', 'use_mapping': False } }) received_message = request_manage._prepare_query_message( 'stats.sitewide.entity.week', params={ 'entity': 'test', 'use_mapping': False }) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.sitewide.entity.month', 'params': { 'entity': 'test', 'use_mapping': False } }) received_message = request_manage._prepare_query_message( 'stats.sitewide.entity.month', params={ 'entity': 'test', 'use_mapping': False }) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.sitewide.entity.year', 'params': { 'entity': 'test', 'use_mapping': False } }) received_message = request_manage._prepare_query_message( 'stats.sitewide.entity.year', params={ 'entity': 'test', 'use_mapping': False }) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({ 'query': 'stats.sitewide.entity.all_time', 'params': { 'entity': 'test', 'use_mapping': False } }) received_message = request_manage._prepare_query_message( 'stats.sitewide.entity.all_time', params={ 'entity': 'test', 'use_mapping': False }) self.assertEqual(expected_message, received_message) message = { 'query': 'cf_recording.recommendations.create_dataframes', 'params': { 'train_model_window': 20, } } expected_message = ujson.dumps(message) received_message = request_manage._prepare_query_message( 'cf_recording.recommendations.create_dataframes', message['params']) self.assertEqual(expected_message, received_message) message = { 'query': 'cf_recording.recommendations.train_model', 'params': { 'ranks': [1, 2], 'lambdas': [2.0, 3.0], 'iterations': [2, 3], 'alpha': 3.0, } } expected_message = ujson.dumps(message) received_message = request_manage._prepare_query_message( 'cf_recording.recommendations.train_model', message['params']) self.assertEqual(expected_message, received_message) message = { 'query': 'cf_recording.recommendations.candidate_sets', 'params': { 'recommendation_generation_window': 7, 'top_artist_limit': 10, 'similar_artist_limit': 10, "users": ['vansika'], "html_flag": True } } expected_message = ujson.dumps(message) received_message = request_manage._prepare_query_message( 'cf_recording.recommendations.candidate_sets', message['params']) self.assertEqual(expected_message, received_message) message = { 'query': 'cf_recording.recommendations.recommend', 'params': { 'recommendation_top_artist_limit': 7, 'recommendation_similar_artist_limit': 7, 'users': ['vansika'] } } expected_message = ujson.dumps(message) received_message = request_manage._prepare_query_message( 'cf_recording.recommendations.recommend', message['params']) self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({'query': 'import.mapping'}) received_message = request_manage._prepare_query_message( 'import.mapping') self.assertEqual(expected_message, received_message) expected_message = ujson.dumps({'query': 'import.artist_relation'}) received_message = request_manage._prepare_query_message( 'import.artist_relation') self.assertEqual(expected_message, received_message)