Adding testcase results to Quality Center Run from a outside Python Script
Question: I want to try to add all the step details - Expected, Actual, Status, etc. to
a QC Run for a testcase of a TestSet from a Python Script living outside the
Quality Center. I have come till here (code given below) and I don't know how
to add Step Expected and Step Actual Result. If anyone knows how do it, please
help me out!! Please, I don't want any QTP solutions. Thanks, Code-

    
    
    # Script name - add_tsrun.py 
    # C:\Python27\python.exe 
    # This script lives locally on a Windows machine that has - Python 2.7, Win32 installed, IE8 
    # Dependencies on Windows Machine - Python 2.7, PythonWin32 installed, IE8, a QC Account, connectivity to QCServer 
    import win32com.client, os 
    tdc = win32com.client.Dispatch("TDApiOle80.TDConnection") 
    tdc.InitConnection('http://QCSERVER:8080/qcbin') 
    tdc.Login('USERNAME', 'PASSWORD') 
    tdc.Connect('DOMAIN_NAME', 'PROJECT') 
    tsFolder = tdc.TestSetTreeManager.NodeByPath('Root\\test_me\\sub_folder') 
    tsList = tsFolder.FindTestSets('testset1') 
    ts_object = tsList.Item(1) 
    ts_dir = os.path.dirname('testset1') 
    ts_name = os.path.basename('testset1') 
    tsFolder = tdc.TestSetTreeManager.NodeByPath(ts_dir) 
    tsList = tsFolder.FindTestSets(ts_name) 
    ts_object = tsList.Item(1) 
    TSTestFact = ts_object.TSTestFactory 
    TestSetTestsList = TSTestFact.NewList("") 
    ts_instance = TestSetTestsList.Item(1) 
    newItem = ts_instance.RunFactory.AddItem(None)   # newItem == Run Object 
    newItem.Status = 'No Run' 
    newItem.Name = 'Run 03' 
    newItem.Post() 
    newItem.CopyDesignSteps()   # Copy Design Steps 
    newItem.Post() 
    steps = newItem.StepFactory.NewList("") 
    step1 = steps[0] 
    step1.Status = "Not Completed" 
    step1.post() 
    ## How do I change the Actual Result?? 
    ## I can access the Actual, Expected Result by doing this, but not change it
    step1.Field('ST_ACTUAL') = 'My actual result'           # This works in VB, not python as its a Syntax error!! 
    Traceback (  File "<interactive input>", line 1 
    SyntaxError: can't assign to function call
    

Hope this helps you guys out there. If you know the answer to set the Actual
Result, please help me out and let me know. Thanks, Amit


Answer: Found the answer after a lot of Google Search :)

Simple -> Just do this:

    
    
    step1.SetField("ST_ACTUAL", "my actual result") # Wohhooooo!!!!
    

If the above code fails to work, try to do the following:-

    
    
    (OPTIONAL) Set your win32 com as follows- (Making ''Late Binding'')
    # http://oreilly.com/catalog/pythonwin32/chapter/ch12.html
        a. Start PythonWin, and from the Tools menu, select the item COM Makepy utility.
        b. Using Windows Explorer, locate the client subdirectory (OTA COM Type Library)
           under the main win32com directory and double-click the file makepy.py.
    

Thank you all...

