def test_get_formatted_drilldown_data_and_more(): verdict = True verdictText = 'Not available' displayName = "My display name" pass_text = "my pass text" applyVerdictToSum = False viewName = 'MyTestDrv' displays = ['First', 'Second'] report_group = pc.HIGHEST_PRIORITY_REPORT_GROUP drilldowndataObjects = [] drilldowndata = {} drilldowndata[pc.SUMMARIZATION_OBJECT] = 'Port.Name' drilldowndata[pc.COLUMN_DISPLAY_NAMES] = displays resultviewdata1 = [1, 2] resultviewdata2 = [3, 4] resultviewdataList = [resultviewdata1, resultviewdata2] drilldowndata[pc.ROW] = resultviewdataList drilldowndataObjects.append(drilldowndata) drilldowndata = {} drilldowndata[pc.SUMMARIZATION_OBJECT] = 'Project.Name' drilldowndata[pc.COLUMN_DISPLAY_NAMES] = displays resultviewdata = [4, 6] resultviewdataList = [resultviewdata] drilldowndata[pc.ROW] = resultviewdataList drilldowndataObjects.append(drilldowndata) formatted_data = drv_utils.get_formatted_drilldown_data(drilldowndataObjects) provider_data = p.get_table_drv_drilldown_data(viewName, verdict, verdictText, applyVerdictToSum, formatted_data, report_group, displayName, pass_text, "") assert provider_data is not None info = provider_data[pc.INFO] status = provider_data[pc.STATUS] data = provider_data[pc.DATA] logger.info(json.dumps(provider_data, separators=(',', ':'), sort_keys=False)) assert provider_data[pc.CLASS] == EnumDataClass.table_drv_drilldown assert provider_data[pc.DATA_FORMAT] == EnumDataFormat.table # verify info assert info[pc.RESULT_VIEW_NAME] == viewName assert info[pc.SUMMARIZATION_OBJECT] == 'Project.Name' assert info[pc.REPORT_GROUP] == pc.HIGHEST_PRIORITY_REPORT_GROUP assert info[pc.DISPLAY_NAME] == displayName # verify status assert status[pc.VERDICT] == EnumVerdict.passed assert status[pc.VERDICT_TEXT] == pass_text assert status[pc.EXEC_STATUS] == EnumExecStatus.completed assert status[pc.APPLY_VERDICT] == applyVerdictToSum assert len(data[pc.COLUMN_DISPLAY_NAMES]) == 2 assert data[pc.COLUMN_DISPLAY_NAMES][0] == displays[0] assert data[pc.COLUMN_DISPLAY_NAMES][1] == displays[1] rows = data[pc.ROW] assert len(rows) == 1 assert len(rows[0]) == 2 assert rows[0][0] == 4 assert rows[0][1] == 6 assert (pc.LINKS in data) is True # verify drilldown results data = data[pc.LINKS] assert len(data) == 1 data = data[0] data[pc.TAG] = 'Port.Name' assert (pc.LINK_DATA in data) is True data = data[pc.LINK_DATA] assert data[pc.CLASS] == EnumDataClass.drill_down_results assert data[pc.DATA_FORMAT] == EnumDataFormat.table assert data[pc.INFO][pc.SUMMARIZATION_OBJECT] == 'Port.Name' data = data[pc.DATA] assert len(data[pc.COLUMN_DISPLAY_NAMES]) == 2 assert data[pc.COLUMN_DISPLAY_NAMES][0] == displays[0] assert data[pc.COLUMN_DISPLAY_NAMES][1] == displays[1] rows = data[pc.ROW] assert len(rows) == 2 assert len(rows[0]) == 2 assert rows[0][0] == 1 assert rows[0][1] == 2 assert rows[1][0] == 3 assert rows[1][1] == 4 assert (pc.LINKS in data) is False
def run(ApplyVerdictToSummary, DynamicResultViewName, OperationType, ResultCount, MinResultCount, MaxResultCount, ReportGroup, DisplayName, PassedVerdictExplanation, FailedVerdictExplanation): logger = PLLogger.GetLogger('methodology') global vdrvc_object try: drv = vdrvc_object # subscribe or refresh if drv_utils.subscribe(drv) is False: drv_utils.refresh(drv) # get verdict and text verdict_data = pu.get_comparision_verdict_with_text(OperationType, drv.Get('ResultCount'), ResultCount, 0, 0, 'result count') # generate drill down data prq = drv.GetObject('PresentationResultQuery') col_names = prq.GetCollection('SelectProperties') col_display_names = drv_utils.get_column_display_names(drv, col_names) active_groupby = drv_utils.get_active_groupby(drv) active_view_data = drv_utils.get_drilldown_data(drv, active_groupby, col_names, col_display_names, False) group_order_list = drv_utils.get_export_groupby_ordered(col_names, False) viewdata = [] for groupbyKey in reversed(group_order_list): if active_groupby == groupbyKey: viewdata.append(active_view_data) else: viewdata.append(drv_utils.get_drilldown_data(drv, groupbyKey, col_names, col_display_names, True)) drilldown_data = drv_utils.get_formatted_drilldown_data(viewdata) provider_data = p.get_table_drv_drilldown_data(DynamicResultViewName, verdict_data[pc.VERDICT], verdict_data[pc.VERDICT_TEXT], ApplyVerdictToSummary, drilldown_data, ReportGroup, DisplayName, PassedVerdictExplanation, FailedVerdictExplanation) p.submit_provider_data(provider_data) # revert drv config changes drv_utils.set_groupby(drv, active_groupby) drv_utils.refresh(drv) except Exception, e: stack_trace = traceback.format_exc() logger.LogError(stack_trace) p.submit_command_execution_error(DisplayName, str(e), stack_trace) return False