def test_update_user_resource_visitinfo(self): resource_type = 'novl' uid = 'urv_007' visitinfo_data = 'visit_%s_%s' % (resource_type, uid) self.assertEqual(True, cache_models.set_cache_online_user_resource_visitinfo(uid, resource_type, visitinfo_data)) res = cache_models.get_cache_online_user_resource_visitinfo(uid, [resource_type]) self.assertEqual(True, res[0]) self.assertEqual({resource_type: visitinfo_data}, res[1]) self.assertEqual(True, cache_update_process.cache_clear_online_user_resource_visitinfo()) res = cache_models.get_cache_online_user_resource_visitinfo(uid, [resource_type]) self.assertEqual(True, res[0]) self.assertEqual({}, res[1]) uid = 'urv_006' resource_type_list = ['novl', 'news', 'musc'] prefer_res = {} for resource_type in resource_type_list: prefer_res[resource_type] = 'visit_%s_%s_cache' % (uid, resource_type) self.assertEqual( True, cache_models.set_cache_offline_user_resource_visitinfo(uid, resource_type, prefer_res[resource_type])) res = cache_models.get_cache_offline_user_resource_visitinfo(uid, resource_type_list) self.assertEqual(True, res[0]) self.assertEqual(prefer_res, res[1]) db_resource_type_list = ['novl', 'movi'] update_prefer_res = {} for resource_type in db_resource_type_list: prefer_res[resource_type] = 'visit_%s_%s_db' % (uid, resource_type) update_prefer_res[resource_type] = 'visit_%s_%s_db' % (uid, resource_type) self.assertEqual( True, db_models_update.set_db_offline_user_resource_visitinfo(uid, resource_type, prefer_res[resource_type])) self.assertEqual(True, cache_update_process.cache_update_offline_user_resource_visitinfo(['novl', 'news', 'movi', 'musc'])) res = cache_models.get_cache_offline_user_resource_visitinfo(uid, ['novl', 'news', 'movi', 'musc']) self.assertEqual(True, res[0]) self.assertEqual(update_prefer_res, res[1])
def test_clear_online_cache_by_user(self): uid = 'test_clear_uid' resource_type = 'show' data = 'data' self.assertEqual(True, cache_models.set_cache_online_user_resource_visitinfo(uid, resource_type, data)) self.assertEqual(True, cache_models.set_cache_online_user_feature_list(uid, resource_type, data)) self.assertEqual(True, cache_models.set_cache_online_user_feature_reason(uid, data)) self.assertEqual(True, cache_models.set_cache_online_user_favor_item_list(uid, resource_type, data)) self.assertEqual(True, cache_models.set_cache_online_user_push_item_list(uid, data)) self.assertEqual(True, cache_update_process.cache_clear_online_by_user(uid)) self.assertEqual((True, {}), cache_models.get_cache_online_user_resource_visitinfo(uid, [resource_type])) self.assertEqual((True, {}), cache_models.get_cache_online_user_feature_list(uid, [resource_type])) self.assertEqual((True, None), cache_models.get_cache_online_user_feature_reason(uid)) self.assertEqual((True, {}), cache_models.get_cache_online_user_favor_item_list(uid, [resource_type])) self.assertEqual((True, None), cache_models.get_cache_online_user_push_item_list(uid))
def test_cache_update_all_together(self): uid = 'db_uid' resource_type = 'movi' item_id = 'db_item_id' feature_name = 'db_feature_name' self.assertEqual(True, db_models_update.set_db_offline_user_resource_visitinfo(uid, resource_type, 'db_visit_info_data')) self.assertEqual(True, db_models_update.set_db_offline_user_feature_list(uid, resource_type, 'db_feature_list_data')) self.assertEqual(True, db_models_update.set_db_offline_user_recommend_item_list(uid, resource_type, 'db_user_recommend_item_list')) self.assertEqual(True, db_models_update.set_db_offline_item_features(item_id, resource_type, 'db_item_features_data')) self.assertEqual(True, db_models_update.set_db_offline_item_recommend_item_list(item_id, resource_type, 'db_item_id_list_data')) self.assertEqual(True, db_models_update.set_db_offline_feature_hot_item_list(feature_name, resource_type, 'db_hot_item_list_data')) self.assertEqual(True, db_models_update.set_db_offline_global_hot_feature_list(resource_type, 'db_hot_feature_list_data')) self.assertEqual(True, db_models_update.set_db_offline_item_id_new_to_old(resource_type, item_id, 'db_old_item_id_data')) cache_uid = 'cache_uid' cache_item_id = 'cache_item_id' cache_feature_name = 'cache_feature_name' self.assertEqual(True, cache_models.set_cache_online_user_resource_visitinfo(cache_uid, resource_type, 'on_cache_visit_info_data')) self.assertEqual(True, cache_models.set_cache_offline_user_resource_visitinfo(cache_uid, resource_type, 'cache_visit_info_data')) self.assertEqual(True, cache_models.set_cache_online_user_feature_list(cache_uid, resource_type, 'on_cache_feature_list_data')) self.assertEqual(True, cache_models.set_cache_offline_user_feature_list(cache_uid, resource_type, 'cache_feature_list_data')) self.assertEqual(True, cache_models.set_cache_online_user_feature_reason(cache_uid, 'cache_feature_list_data')) self.assertEqual(True, cache_models.set_cache_online_user_favor_item_list(cache_uid, resource_type, 'cache_item_id_list_data')) self.assertEqual(True, cache_models.set_cache_offline_user_recommend_item_list(cache_uid, resource_type, 'cache_feature_name_item_id_list_data')) self.assertEqual(True, cache_models.set_cache_online_user_push_item_list(cache_uid, 'cache_item_id_list_data')) self.assertEqual(True, cache_models.set_cache_offline_item_recommend_item_list(cache_item_id, 'cache_item_id_list_data')) self.assertEqual(True, cache_models.set_cache_offline_item_features(cache_item_id, 'cache_item_feature_list_data')) self.assertEqual(True, cache_models.set_cache_offline_feature_hot_item_list(cache_feature_name, 'cache_item_id_list_data')) self.assertEqual(True, cache_models.set_cache_offline_global_hot_feature_list(resource_type, 'cache_item_feature_list_data')) self.assertEqual(True, cache_models.set_cache_offline_item_id_new_to_old(cache_item_id, 'cache_old_item_id_data')) import cache_update_process all_resource_type_list = ['movi', 'news'] common_resource_type_list = ['movi'] self.assertEqual(True, cache_update_process.cache_update_all_together(all_resource_type_list, common_resource_type_list)) self.assertEqual((True, {}), cache_models.get_cache_online_user_resource_visitinfo(cache_uid, [resource_type])) self.assertEqual((True, {resource_type:'db_visit_info_data'}), cache_models.get_cache_offline_user_resource_visitinfo(uid, [resource_type])) self.assertEqual((True, {}), cache_models.get_cache_online_user_feature_list(cache_uid, [resource_type])) self.assertEqual((True, {resource_type:'db_feature_list_data'}), cache_models.get_cache_offline_user_feature_list(uid, [resource_type])) self.assertEqual((True, None), cache_models.get_cache_online_user_feature_reason(cache_uid)) self.assertEqual((True, {}), cache_models.get_cache_online_user_favor_item_list(cache_uid, [resource_type])) self.assertEqual((True, 'cache_item_id_list_data'), cache_models.get_cache_online_user_push_item_list(cache_uid)) self.assertEqual((True,{resource_type:'db_user_recommend_item_list'}), cache_models.get_cache_offline_user_recommend_item_list(uid, [resource_type])) self.assertEqual((True,{item_id:'db_item_id_list_data'}), cache_models.get_cache_offline_item_recommend_item_list([item_id])) self.assertEqual((True,{item_id:'db_item_features_data'}), cache_models.get_cache_offline_item_features([item_id])) self.assertEqual((True,{feature_name:'db_hot_item_list_data'}), cache_models.get_cache_offline_feature_hot_item_list([feature_name])) self.assertEqual((True,{resource_type:'db_hot_feature_list_data'}), cache_models.get_cache_offline_global_hot_feature_list([resource_type])) self.assertEqual((True,{item_id:'db_old_item_id_data'}), cache_models.get_cache_offline_item_id_new_to_old([item_id]))
def test_db_redis(self): uid = '1234567' resource_type_list = ['music', 'news', 'movie'] visit_info = VisitInfo() visit_info.pv_count = 5 visit_info.click_count = 1 visit_info.weight = 0.2 visit_info_data = visit_info.SerializeToString() for resource_type in resource_type_list: self.assertEqual( True, cache_models.set_cache_online_user_resource_visitinfo(uid, resource_type, visit_info_data)) prefer_res = {} for resource_type in resource_type_list: prefer_res[resource_type] = visit_info res = cache_models.get_cache_online_user_resource_visitinfo(uid, resource_type_list) real_res = {} self.assertEqual(True, res[0]) for k, v in res[1].items(): res_visit_info = VisitInfo() res_visit_info.ParseFromString(v) real_res[k] = res_visit_info self.assertEqual(prefer_res, real_res)
def set_online_user_resource_visitinfo(uid, resource_type, visitinfo_data): return cache_models.set_cache_online_user_resource_visitinfo(uid, resource_type, visitinfo_data)