Tengo el siguiente código que lee datos de un excel externo y golpeó la solicitud post pero siempre me encontré con un error de aserción con 1 fila del conjunto de datos en el excel, el bucle se detiene y el resto de las filas de excel no son tomados para la ejecución. La ejecución del programa se detiene en ese punto. Cómo superar esto? Mi requisito es que si fuera de 10 conjunto de datos(10 filas en excel), la aserción falla en el 5º por ejemplo, debe ejecutar el programa con el resto de los conjuntos de datos y en la marca de final de la ejecución del caso de prueba como ERROR.
def test_1A():
url_plan = getCOnfigurations()['API']['URL'] + APIResources.endpoints_plans
classic_sum_values = [200000, 300000, 400000]
payload_plan = open('C:/Users/aprat/PycharmProjects/RSAHealthPytest/PayLoads/plans/1A.json','r')
json_payload_plan = json.loads(payload_plan.read())
obj = Library.BaseClass("C:/Users/aprat/PycharmProjects/RSAHealthPytest/TestData/1A/TestData1A.xlsx","sheet1")
col = obj.fetch_column_count()
row = obj.fetch_row_count()
key_age = obj.fetch_key_names()
key_dob = obj.fetch_key_names()
key_sum = obj.fetch_key_names()
key_ten = obj.fetch_key_names()
key_pr_mem_age = obj.fetch_key_names()
for i in range(2, row+1):
datadriven_json_data_plan = obj.update_request_with_data_plan1A(i,json_payload_plan,key_age,key_dob,key_pr_mem_age,key_sum,key_ten)
a1_age = json_payload_plan['payload']['data']['insured'][0]['age']
a1_dob = json_payload_plan['payload']['data']['insured'][0]['dob']
prim_mem_age = json_payload_plan['payload']['data']['primary_member_age']
tot_sum = json_payload_plan['payload']['data']['sum_insured']
tenure = json_payload_plan['payload']['data']['tenure']
response = requests.post(url_plan, json=datadriven_json_data_plan,)
json_response_plan = response.json()
print(json_response_plan)
if int(tenure) == 1 or int(tenure) == 2 or int(tenure) == 3:
if int(tot_sum) in classic_sum_values:
if int(18) <= int(a1_age) <= int(50):
print(json_response_plan[0]['article_code'])
try:
assert int(json_response_plan[0]['premium']) > int(1)
assert int(json_response_plan[0]['term']) == int(tenure)
assert int(json_response_plan[0]['validity']) == int(tenure)
assert int(json_response_plan[0]['sa']) == int(tot_sum)
except Exception as e:
json_data = datadriven_json_data_plan
sys.stdout = open("plans_classic_1A.log", "a")
_, _, tb = sys.exc_info()
traceback.print_tb(tb)
tb_info = traceback.extract_tb(tb)
filename, line, func, text = tb_info[-1]
print('An error occurred on line {} in statement {}'.format(line, text))
print("Test failure due to assertion error")
print("adult1 age=" + " " + str(a1_age))
print("sum insured=" + " " + str(tot_sum))
print("tenure=" + " " + str(tenure))
print(json.dumps(json_data, indent=2))
print("**************************************************************************")
raise e