Ejemplo n.º 1
0
 def complete_active_iteration(self, force_stop=False):
     logger.info('completea active iteration.')
     if not self.is_iteration_running():
         logger.error('No active iteration found to complete.')
         return
     logger.log_result_info_status(self._stc_result_object)
     self._active_iteration_info = ActiveIterationInfo()
     self.load_from_stc_object(self._active_iteration_info)
     self._active_iteration_status = ActiveIterationStatus()
     self.load_from_stc_object(self._active_iteration_status)
     if force_stop is True:
         self._active_iteration_status.exec_status = EnumExecStatus.stopped
     else:
         self._active_iteration_status.exec_status = EnumExecStatus.completed
     self._active_iteration_info._end_time = result_utils.get_current_time_string()
     result = self.generate_iteration_verdict()
     if result:
         self._active_iteration_status.verdict = result['verdict']
         self._active_iteration_info.result_file = result['resultFile']
         self._active_iteration_info.set_data_class(self._active_iteration_info,
                                                    EnumDataClass.iteration_result)
         self._active_iteration_info.set_data_format(self._active_iteration_info,
                                                     EnumDataFormat.none)
     else:
         self._active_iteration_status.verdict = EnumVerdict.none
         self._active_iteration_info.set_data_class(self._active_iteration_info,
                                                    EnumDataClass.iteration_result)
         self._active_iteration_info.set_data_format(self._active_iteration_info,
                                                     EnumDataFormat.none)
     self.save_active_iteration_data()
     self.reset_active_iteration_data()
     logger.info('completea active iteration completed.')
Ejemplo n.º 2
0
 def generate_iteration_verdict(self):
     logger.info('Generate iteration verdict.')
     jsonResults = self.get_from_stc_collection_property_as_dict('JsonResults')
     if jsonResults and len(jsonResults) >= 0:
         return self.generate_iteration_result_file(jsonResults)
     else:
         return {}
Ejemplo n.º 3
0
 def generate_iteration_result_file(self, results):
     logger.info('Generate Iteration result file.')
     iteration = Iteration(self._active_iteration_info.run_time_data,
                           self._stc_result_object,
                           results,
                           self._active_iteration_status.run_time_data,)
     return iteration.generate_report()
Ejemplo n.º 4
0
def get_last_iteration_info_status(iterator_handle):
    logger.info('Get last iteration info for iterator:' + str(iterator_handle))
    result = iterator_utils.get_iterator_result_no_leaf_check(iterator_handle)
    if result is None:
        return None
    iterator = Iterator(iterator_handle, result)
    return iterator.get_last_iteration_data()
Ejemplo n.º 5
0
def end_test(force_stop=False):
    logger.info('end test. Force stop:' + str(force_stop))
    # end all iterators if required.
    start_test_if_required()
    end_all_iterators(force_stop)
    test_result = TestResult()
    test_result.end_test(force_stop)
    logger.debug('end test completed.')
Ejemplo n.º 6
0
 def create_new_iterator(self):
     logger.info('Create new iterator.')
     self._stc_result_object = iterator_utils.create_iterator_result()
     self.set_stc_object(self.stc_property_Iterator, str(self._iterator_handle))
     self._info = IteratorInfo(self._iterator_param)
     self._status = Status(EnumExecStatus.created)
     self.commit_info_status()
     logger.debug('Create new iterator completed.')
     logger.log_result_info_status(self._stc_result_object)
Ejemplo n.º 7
0
def add_provider_result_to_root(dict_data):
    """Add provider result to test object.
    Try to create one and continue if test does not exist.
    """
    logger.info('Add provider result to root.')
    # make sure test in created and running. If not do that first.
    start_test_if_required()
    test_result = TestResult()
    dict_data = result_utils.insert_report_group_if_not_defined(dict_data)
    test_result.add_provider_data(dict_data)
Ejemplo n.º 8
0
def complete_iteration():
    logger.info('Complete iteration.')
    itr_result_obj = iterator_utils.get_leaf_iterator()
    if itr_result_obj is None:
        logger.error('There is no iterator running to complete iteration.')
        return
    logger.debug_result_object_info(itr_result_obj)
    iterator = Iterator(0, itr_result_obj)
    iterator.complete_active_iteration()
    logger.debug('Complete iteration completed.')
Ejemplo n.º 9
0
def generate_report_file(report_name, data):
    filename = os.path.join(CTestResultSettingExt.GetResultDbBaseDirectory(), report_name)
    logger.info("Saving file:" + filename)
    if not os.path.exists(os.path.dirname(filename)):
        os.makedirs(os.path.dirname(filename))
    f = open(filename, "w")
    f.write(json.dumps(data, separators=(',', ':'), sort_keys=False))
    f.close()
    CFileManager.AddFile(filename, 'RESULT')
    return filename
Ejemplo n.º 10
0
def set_iterator_current_value(iterator_handle,
                               iterator_param,
                               value,
                               iteration_id):
    log_string = 'Set iterator values. Iterator handle:' + str(iterator_handle) + ', param:' +\
        str(iterator_param) + ', value:' + str(value) + ', iteration_id:' + str(iteration_id)
    logger.info(log_string)
    start_test_if_required()
    end_inner_iterator_if_required(iterator_handle)
    iterator = Iterator(iterator_handle, None, iterator_param)
    iterator.start_next_iteration(value, iteration_id)
    logger.debug('Set iterator values completed.')
Ejemplo n.º 11
0
def add_provider_result(dict_data):
    """Add provider result to active result object.
    It is leaf iterator result object in case of iterative test.
    Do not throw error if result object does not exist.
    Try to create one and continue.
    """
    logger.info('Add provider result.')
    # make sure test in created and running. If not do that first.
    start_test_if_required()
    result = iterator_utils.get_active_result_object()
    logger.debug_result_object_info(result)
    dict_data = result_utils.insert_report_group_if_not_defined(dict_data)
    result_obj.add_provider_data(result, dict_data)
Ejemplo n.º 12
0
 def start_next_iteration(self, value, iteration_id):
     logger.info('start next iteration.')
     # make sure no active iteration running.
     if self.is_iteration_running():
         logger.warning('Complete iteration call missing for previous iteration.')
         self.complete_active_iteration()
     self._active_iteration_info = ActiveIterationInfo(value,
                                                       iteration_id,
                                                       self._iterator_param)
     self._active_iteration_info._start_time = result_utils.get_current_time_string()
     self._active_iteration_status = ActiveIterationStatus(EnumExecStatus.running)
     self.commit_active_info_status()
     logger.debug('start next iteration completed.')
     logger.log_result_info_status(self._stc_result_object)
Ejemplo n.º 13
0
 def save_active_iteration_data(self):
     """Convert from Active iteration data to Iteration data
     """
     logger.info('Save active iteration data.')
     child_data = self.get_from_stc_as_dict(self.stc_property_child_iterator_data)
     if child_data:
         self._active_iteration_info.set_data_format(self._active_iteration_info,
                                                     EnumDataFormat.group)
         result = self._active_iteration_info.run_time_data
         result[self.get_data_dict_name()] = result_utils.wrap_data_as_single_group(child_data)
     else:
         result = self._active_iteration_info.run_time_data
     result[Status.get_dict_name()] = self._active_iteration_status.run_time_data
     self.append_stc_object_collection(
         self.stc_property_completed_data,
         json.dumps(result, separators=(',', ':'), sort_keys=False))
     logger.debug('Save active iteration data completed.')
Ejemplo n.º 14
0
 def complete(self, force_stop):
     logger.info('Complete - End iterator.')
     if self.is_iteration_running():
         logger.warning('Complete iteration call missing before end iterator.')
         self.complete_active_iteration(force_stop)
     self.load_all_iterator_data()
     if force_stop is True:
         self._status.exec_status = EnumExecStatus.stopped
     else:
         self._status.exec_status = EnumExecStatus.completed
     self._status.verdict = EnumVerdict.none
     self._info.set_data_format(self._info, EnumDataFormat.group)
     self._info.set_data_class(self._info, EnumDataClass.iterator_result)
     iteratorData = self._info.run_time_data
     iteratorData[self._status.dict_name] = self._status.run_time_data
     allData = self.get_from_stc_collection_property_as_dict(self.stc_property_completed_data)
     iteratorData[self.get_data_dict_name()] = result_utils.wrap_data_as_single_group(allData)
     self._stc_result_object.MarkDelete()
     logger.debug('Complete - End iterator completed.')
     return iteratorData
Ejemplo n.º 15
0
def end_iterator(force_stop=False):
    logger.info('End iteration.')
    itr_result_obj = iterator_utils.get_leaf_iterator()
    if itr_result_obj is None:
        logger.error('There is no iterator running to end iterator.')
        return
    iterator = Iterator(0, itr_result_obj)
    data = iterator.complete(force_stop)
    parentIterator = iterator_utils.get_leaf_iterator_no_throw()
    if parentIterator is None:
        logger.info('Adding iteration result to Test.')
        data[pc.STATUS][pc.APPLY_VERDICT] = True
        test_result = TestResult()
        test_result.add_provider_data(data)
    else:
        logger.info('Adding iteration result to parent iterator.')
        logger.debug_result_object_info(itr_result_obj)
        parent_itr = Iterator(0, parentIterator)
        parent_itr.add_child_iterator_data(data)
    logger.debug('End iteration completed')
Ejemplo n.º 16
0
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
Ejemplo n.º 17
0
def create_test():
    logger.info('Create methodology test.')
    test_result = TestResult()
    test_result.create_test()
    logger.debug('Create test completed.')
Ejemplo n.º 18
0
def start_test():
    logger.info('Start test')
    test_result = TestResult()
    test_result.start_test()
    logger.debug('Start test completed')
Ejemplo n.º 19
0
 def add_child_iterator_data(self, data):
     logger.info('Add child iterator data.')
     json_data = json.dumps(data, separators=(',', ':'), sort_keys=False)
     self.set_stc_object(self.stc_property_child_iterator_data, json_data)
     logger.debug('Add child iterator data completed.')
Ejemplo n.º 20
0
def add_data_to_test_info(dict_data):
    logger.info('Adding data to test report info')
    start_test_if_required()
    test_result = TestResult()
    test_result.add_info_data(dict_data)