def get_stm_test_result():
    """
    Return StmTestResult object if exist else return None.
    """
    logger.debug('get_stm_test_result started.')
    result_parent = meth_man_utils.get_meth_manager()
    active_test = meth_man_utils.get_active_test_case()
    if active_test is not None:
        result_parent = active_test
    test_result = result_parent.GetObject('StmTestResult')
    logger.debug('get_stm_test_result completed.')
    return test_result
def test_cmd_with_res_fmwk(stc):
    ctor = CScriptableCreator()
    sequencer = CStcSystem.Instance().GetObject("Sequencer")

    # Set up an iteration group
    group_cmd = ctor.Create(PKG + ".IterationGroupCommand", sequencer)
    assert group_cmd
    while_cmd = ctor.Create("SequencerWhileCommand", group_cmd)
    assert while_cmd
    iter_cmd = ctor.Create(PKG + ".ObjectIteratorCommand", while_cmd)
    valid_cmd = ctor.Create(PKG + ".IteratorValidateCommand", while_cmd)

    while_cmd.Set("ExpressionCommand", iter_cmd.GetObjectHandle())
    while_cmd.SetCollection("CommandList", [valid_cmd.GetObjectHandle()])
    group_cmd.SetCollection("CommandList", [while_cmd.GetObjectHandle()])
    sequencer.SetCollection("CommandList", [group_cmd.GetObjectHandle()])

    # Setup the methodology manager and the active test case
    meth_mgr = meth_mgr_utils.get_meth_manager()
    assert meth_mgr is not None
    methodology = ctor.Create("StmMethodology", meth_mgr)
    test_case = ctor.Create("StmTestCase", methodology)
    meth_mgr_utils.set_active_test_case(test_case)
    test_case_res = meth_mgr_utils.get_stm_test_result()
    assert test_case_res is not None

    # Mock get_this_cmd
    IteratorValidateCommand.get_this_cmd = MagicMock(return_value=valid_cmd)

    # Set up the results framework (passing iteration)
    RI.create_test()
    RI.start_test()
    fs = 128
    fs_iter_id = 1
    fs_iter_hnd = iter_cmd.GetObjectHandle()
    RI.set_iterator_current_value(fs_iter_hnd, "FrameSize", fs, fs_iter_id)
    RI.add_provider_result(test_utils.dummy_verify_result_passed)
    RI.complete_iteration()

    # Call the different parts of the command and verify the results
    res = IteratorValidateCommand.run(fs_iter_id)
    assert res is True
    assert valid_cmd.Get("Verdict") is True

    # Failed iteration
    RI.set_iterator_current_value(fs_iter_hnd, "FrameSize",
                                  fs + 128, fs_iter_id + 1)
    RI.add_provider_result(test_utils.dummy_verify_result_failed)
    RI.complete_iteration()

    res = IteratorValidateCommand.run(fs_iter_id + 1)
    assert res is True
    assert valid_cmd.Get("Verdict") is False
def run():
    plLogger = get_logger()
    plLogger.LogDebug("begin.run")

    meth_mgr = mm_utils.get_meth_manager()
    test_meth_list = meth_mgr.GetObjects("StmMethodology")
    meta_jsons = get_meta_json(test_meth_list)

    this_cmd = get_this_cmd()
    this_cmd.Set("MethodologyList", meta_jsons)

    plLogger.LogDebug("end.run")
    return True
def test_create_stm_get_stm(stc, resource_cleanup):
    mm = meth_man_utils.get_meth_manager()
    assert mm is not None
    assert result_obj.get_stm_test_result() is None
    stm_result = mm.GetObject('StmTestResult')
    assert stm_result is None
    stm_result = result_obj.create_stm_test_result_under_mm()
    assert stm_result is not None
    stm_mm = mm.GetObject('StmTestResult')
    assert stm_result.GetObjectHandle() == stm_mm.GetObjectHandle()
    stm3 = result_obj.get_stm_test_result()
    assert stm3 is not None
    assert stm_result.GetObjectHandle() == stm3.GetObjectHandle()
    # check leaf iterator is none
    assert iterator_utils.get_leaf_iterator() is None
    # check StmTestResult is active result
    stm4 = iterator_utils.get_active_result_object()
    assert stm4 is not None
    assert stm_result.GetObjectHandle() == stm4.GetObjectHandle()
def reset():
    """Create StmTestResult object if does not exist.
    reset object if exist.
    StmTestResult object should be created under active test.
    If active test does not exist then under methodology manager.
    """
    logger.debug('Reset result objects.')
    result_parent = meth_man_utils.get_meth_manager()
    active_test = meth_man_utils.get_active_test_case()
    if active_test is not None:
        logger.debug('Active test is result parent.')
        result_parent = active_test
    test_result = result_parent.GetObject('StmTestResult')
    if test_result is None:
        ctor = CScriptableCreator()
        test_result = ctor.Create("StmTestResult", result_parent)
    else:
        reset_stm_test_result(test_result)
    logger.debug('Reset result objects done.')
    return test_result
def create_stm_test_result_under_mm():
    logger.debug('Create StmTestResult object')
    result_parent = meth_man_utils.get_meth_manager()
    ctor = CScriptableCreator()
    test_result = ctor.Create("StmTestResult", result_parent)
    return test_result