Python Example Testing Functions , Running Test List, Mini Test Report (not Gui version), Only Console result.

Showing use of functions and running sequence via list, with a mini Test report function

List had Test function to run. Example Tests_seq=[component,electrical,optical,OE,EO]

The OE test result in this example has a random result output which helps develope code for different result outputs. Example Result=[“Pass”,”Fail*”,”Error”] .

Python 3.7 using Spyder

# -*- coding: utf-8 -*-
"""
Created on Sun Oct 20 12:48:27 2019

@author: aleja
"""
import random

def component():
    print("Running Component Test")
    return ("Pass")
    
def electrical():
    print("Running Electical Test")    
    return ("Pass")

def optical():
    print("Running Optical Test")
    return ("Pass")  
  
def OE():
    print("Running OE Test")
    return (random.choice(Result)) #random result

def EO():
    print("Running EO Test")
    return ("Pass")     


def Test_report(TestN,TestR):
    CSPs=["15","30"]
    CSPF = "{:<"+CSPs[0]+"} {:<"+CSPs[1]+"}"
    print("\n==========================")
    print("===== Test Report ========")
    print("==========================")
    Test_Header=["TestName","TestResult"]
    Test_HeaBar=["********","**********"]
    print (CSPF.format(Test_Header[0],Test_Header[1]))
    print (CSPF.format(Test_HeaBar[0],Test_HeaBar[1]))       
    for i in range(len(TestN)):
        print (CSPF.format(TestN[i],TestR[i]))



Tests_seq=[component,electrical,optical,OE,EO]
Test_enables=[1,1,1,1,1]
Result=["Pass","Fail*","Error"]

Test_Results=[]
Test_Names=[]
for Test in Tests_seq:
    Test_result=Test()
    Test_Name=Test.__name__
    print(Test_Name +"  TestResult:         " + Test_result)
    Test_Results.append(Test_result)
    Test_Names.append(Test_Name)
    
print(Test_Names)
print(Test_Results)

FailedList=["Fail*","Error"]



if ("Fail*") in Test_Results:
    print ("\n*Overall Result: Failed")
elif("Error") in Test_Results:
    print ("\n***Overall Result: Incomplete")
else:
    print ("\nOverall Result: Passed")    


Failure_detected=any(x in Test_Results for x in FailedList)
if (Failure_detected):
    print ("Check for Failure or Imcomplete")
else:
    print ("Test Passed")
    
Test_report(Test_Names,Test_Results)    

results from Ipython console in spyder

runfile('C:/python/TestsSeq/Test Seq by function.py', wdir='C:/python/TestsSeq')
Running Component Test
component  TestResult:         Pass
Running Electical Test
electrical  TestResult:         Pass
Running Optical Test
optical  TestResult:         Pass
Running OE Test
OE  TestResult:         Fail*
Running EO Test
EO  TestResult:         Pass
['component', 'electrical', 'optical', 'OE', 'EO']
['Pass', 'Pass', 'Pass', 'Fail*', 'Pass']

*Overall Result: Failed
Check for Failure or Imcomplete

==========================
===== Test Report ========
==========================
TestName        TestResult                    
********        **********                    
component       Pass                          
electrical      Pass                          
optical         Pass                          
OE              Fail*                         
EO              Pass                          

Notes:

  • This presentation is to show a possible starting point for python Testing using functions and calling functions via a function list.
  • This post is not connected or endorsed by any company.
  • All company names are trademark of respective company.
  • Created to spark ideas on the subject.
  • Use at your own risk.

About LV_TS_Test_Engineer_3000_VI

Automated Test Equipment Software
This entry was posted in Test Sector and tagged , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s