qa_tools.py (3710B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\jobboard\client\features\campaigns\qa_tools.py 2 import blue 3 from campaigns.client.v1.data_model.objective import ObjectiveID 4 from monolithsentry.client.error_spike_key_consts import CAMPAIGNS_OBJECTIVE_GET_STATS_TIMEOUT 5 from monolithsentry.client.local_error_spike_report import DEFAULT_ERROR_THRESHOLD, DEFAULT_ERROR_TTL_SECONDS, record_handled_failure 6 from carbon.common.script.sys.serviceConst import ROLE_GML, ROLE_WORLDMOD 7 from carbon.common.script.sys.serviceManager import ServiceManager 8 from carbonui.control.contextMenu.menuData import MenuData 9 from carbonui.control.contextMenu.menuEntryData import MenuEntryData 10 11 def get_qa_menu_for_campaign_zoom_container(zoom_container_info): 12 m = MenuData() 13 if session.role & (ROLE_GML | ROLE_WORLDMOD): 14 content_id = zoom_container_info.content_id 15 content_definition_name = zoom_container_info.content_definition_name 16 m.extend(get_qa_menu_for_campaign_card(content_id, content_definition_name)) 17 return m 18 19 20 def get_qa_menu_for_job(job): 21 m = MenuData() 22 if session.role & (ROLE_GML | ROLE_WORLDMOD): 23 objective_id = job.objective_id.uuid 24 title_message_id = job.title_message_id 25 full_data_text = '\n'.join(['objectiveID = %s' % objective_id, 26 'campaignID = %s' % job.campaign_id.uuid, 27 'charID = %s' % session.charid, 28 'titleID = %s' % session.charid]) 29 m.AddEntry('QA Options', subMenuData=[MenuEntryData('objective_id %s ' % objective_id, func=lambda : blue.pyos.SetClipboardData(unicode(objective_id))), 30 MenuEntryData('Copy all data', func=lambda : blue.pyos.SetClipboardData(unicode(full_data_text))), 31 MenuEntryData('Copy titleID %s' % job.title_message_id, func=lambda : blue.pyos.SetClipboardData(unicode(title_message_id))), 32 MenuEntryData('Advance my progress by...', subMenuData=[MenuEntryData('1', func=lambda : _add_objective_progress(job.objective_id, 1)), 33 MenuEntryData('10', func=lambda : _add_objective_progress(job.objective_id, 10)), 34 MenuEntryData('100', func=lambda : _add_objective_progress(job.objective_id, 100)), 35 MenuEntryData('1000', func=lambda : _add_objective_progress(job.objective_id, 1000)), 36 MenuEntryData('copy slash cmd', func=lambda : blue.pyos.SetClipboardData('/communitycampaign add_objective_progress %s' % objective_id))]), 37 MenuEntryData('Simulate objective stats timeout spike (Sentry after %s in %ss)' % (DEFAULT_ERROR_THRESHOLD, DEFAULT_ERROR_TTL_SECONDS), func=lambda : _simulate_objective_stats_timeout_spike(job.objective_id))]) 38 return m 39 40 41 def _simulate_objective_stats_timeout_spike(objective_id): 42 record_handled_failure(CAMPAIGNS_OBJECTIVE_GET_STATS_TIMEOUT, 'QA simulate objective stats poll timed out: %s' % objective_id) 43 44 45 def _add_objective_progress(objective_id, progress_amount): 46 slash = ServiceManager.Instance().GetService('slash') 47 (slash.SlashCmd(u'/communitycampaign add_objective_progress {objective_id} {progress_amount}'.format(objective_id=unicode(objective_id.uuid), progress_amount=progress_amount)),) 48 49 50 def get_qa_menu_for_campaign_card(content_id, content_definition_name): 51 m = MenuData() 52 if session.role & (ROLE_GML | ROLE_WORLDMOD): 53 content_id_uuid = content_id.uuid 54 subMenuData = [MenuEntryData('content_id %s ' % content_id, func=lambda : blue.pyos.SetClipboardData(unicode(content_id_uuid))), MenuEntryData('campaign_name %s ' % content_definition_name, func=lambda : blue.pyos.SetClipboardData(unicode(content_definition_name)))] 55 m.AddEntry('QA Options', subMenuData=subMenuData) 56 return m