def get_offline_item_id_new_to_old(new_item_id_list): cache_errorCode, cache_res = cache_models.get_cache_offline_item_id_new_to_old(new_item_id_list) return_none_keys = get_return_none_keys(cache_res, new_item_id_list) db_errorCode = True db_res = {} if len(return_none_keys) > 0: logger.warning('get_offline_item_id_new_to_old, cache has return none key: %s' % return_none_keys) db_errorCode, db_res = db_models.get_db_offline_item_id_new_to_old(return_none_keys) #logger.debug('db_Code: %s, db_res:%s' % (db_errorCode, db_res)) for key , data in db_res.items(): cache_models.set_cache_offline_item_id_new_to_old(key, data) logger.debug('get_offline_item_id_new_to_old, set cache new_item_id[%s]' % key) if True == db_errorCode: for key in [x for x in return_none_keys if x not in db_res.keys()]: cache_models.set_cache_offline_item_id_new_to_old(key, DataDef.CACHE_DEFAULT_NONE_VALUE, DataDef.CACHE_NONE_EXPIRE_SECONDS) logger.debug('get_offline_item_id_new_to_old, set cache new_item_id[%s] None Value' % key) return (cache_errorCode and db_errorCode, merge_db_cache_result(cache_res, db_res))
def test_interface_item_id_new_to_old(self): resource_type = 'novl' self.assertEqual(False, cache_models.set_cache_offline_item_id_new_to_old('novltiino_new_item_1', None)) db_new_item_id_list = ['novltiino_item_1', 'novltiino_item_2', 'novltiino_item_3', 'novltiino_item_4'] prefer_res = {} for item_id in db_new_item_id_list: prefer_res[item_id] = 'data_db_old_%s' % item_id self.assertEqual(True, db_models_update.set_db_offline_item_id_new_to_old(DataDef.get_resource_type_from_item_id(item_id), item_id, prefer_res[item_id])) cache_new_item_id_list = ['novltiino_item_1', 'novltiino_item_2', 'novltiino_item_5', 'novltiino_item_6'] for item_id in cache_new_item_id_list: prefer_res[item_id] = 'data_cache_old_%s' % item_id self.assertEqual(True, cache_models.set_cache_offline_item_id_new_to_old(item_id, prefer_res[item_id])) new_item_id_list = ['novltiino_item_1', 'novltiino_item_2', 'novltiino_item_3', 'novltiino_item_4', 'novltiino_item_5', 'novltiino_item_6', 'novltiino_item_7'] res = model_interface.get_offline_item_id_new_to_old(new_item_id_list) self.assertEqual(True, res[0]) self.assertEqual(prefer_res, res[1]) res = cache_models.get_cache_offline_item_id_new_to_old(new_item_id_list) self.assertEqual(True, res[0]) for k,v in res[1].items(): if v == DataDef.CACHE_DEFAULT_NONE_VALUE: res[1].pop(k) self.assertEqual(prefer_res, res[1])
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_update_item_id_new_to_old(self): new_item_id_list = ['novl1', 'novl2', 'novl3'] prefer_res = {} for item_id in new_item_id_list: prefer_res[item_id] = 'old_item_id_%s_cache' % item_id self.assertEqual( True, cache_models.set_cache_offline_item_id_new_to_old(item_id, prefer_res[item_id])) res = cache_models.get_cache_offline_item_id_new_to_old(new_item_id_list) self.assertEqual(True, res[0]) self.assertEqual(prefer_res, res[1]) db_new_item_id_list = ['novl3', 'novl4', 'novl5'] update_prefer_res = {} for item_id in db_new_item_id_list: update_prefer_res[item_id] = 'old_item_id_%s_db' % item_id self.assertEqual( True, db_models_update.set_db_offline_item_id_new_to_old(DataDef.get_resource_type_from_item_id(item_id),item_id, update_prefer_res[item_id])) self.assertEqual(True, cache_update_process.cache_update_offline_item_id_new_to_old(['novl'])) res = cache_models.get_cache_offline_item_id_new_to_old(db_new_item_id_list) self.assertEqual(True, res[0]) self.assertEqual(update_prefer_res, res[1])