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.