report.html

Report generated on 22-Jul-2023 at 02:44:08 by pytest-html v2.1.1

Environment

Packages {"pluggy": "0.13.1", "py": "1.9.0", "pytest": "7.2.2"}
Platform Windows-10-10.0.19041-SP0
Plugins {"allure-pytest": "2.8.18", "datadir": "1.3.1", "html": "2.1.1", "metadata": "1.10.0", "order": "1.1.0", "xdist": "3.2.1"}
Python 3.8.5

Summary

65 tests ran in 9842.68 seconds.

(Un)check the boxes to filter the results.

58 passed, 0 skipped, 7 failed, 0 errors, 0 expected failures, 0 unexpected passes

Results

Show all details / Hide all details

vvv
Result
vvv
Test
vvv
Duration
Links
Failed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[S] 237.73
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x0000021EFADA0BB0>
value = 'S', initialize_pages = None
testdata = {'contact_no': '123456789', 'country': ['in', 'us', 'gb', 'au', 'de', 'sg', ...], 'db_type': 'mysql', 'dynamo_db_type': 'dynamo', ...}

@pytest.mark.test_details("0000","high","Order and Payment Flow","Pradeep")
@pytest.mark.parametrize("value", certification_program_course_read_csv())
def test_Orders_and_Payment_Flow_certification(self,value,initialize_pages,testdata):

'''
Objective: Make payment and validate the data in Dynamo db and mySql

Step 01: get url
Step 02: click on Enroll Now CTA
Step 03: Make payment
Step 04: Validate the Dynamo db and MySql daya for the payment
'''
url_count = self._count_url_txt_file_subdomain('Orders_and_Payment_Flow_Certification.txt')
logging.info(f"Total URL Present is: {url_count}")

# Step 01: get url
counter = 0
df = pd.read_csv('order_and_payment_certification_prod.csv', on_bad_lines='skip')
data = df[df['id']==value]
url_value = data['url'].values[0]
country_value = data['country'].values[0]
try:
pytest.driver.delete_all_cookies()
time.sleep(2)
pytest.driver.get(url_value)
logging.info(f"Url Opened is: {url_value}")
selenium_helper.wait_for_page_to_load(10,value)
selenium_helper.scroll_to_page_bottom()
self.pg_home.close_iframe_popUp()
self.pg_orders.change_country(country_value)

if selenium_helper.is_locator_present(self.pg_orders.locators['common_button_enroll_now_certificaton'],10):
course_data = None
self.pg_orders.click_enroll_now_certification(url_value)
course_data = self._complete_payment(country_value,testdata['payment_type'],testdata['name'],testdata['email_id'],testdata['contact_no'])
logging.info(type(course_data))
time.sleep(5)

logging.info(f"course_data: {course_data}")

# Step 04: Validate the Dynamo db and MySql data for the payment
token_no = pytest.driver.current_url.split('authtoken=')[-1]
logging.info(f"Token No is: {token_no}")
query = f"""SELECT
emailId,contactNumber,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"name"', -1), '";', 1), '"', -1) AS name,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"training_type_txt"', -1), '";', 1), '"', -1) AS training_type_txt,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"display_total_price"', -1), '";', 1), '"', -1) AS display_total_price,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"price"', -1), '";', 1), '"', -1) AS price
FROM ssvc.cart where token = '{token_no}';"""

sql_data = db_helper.get_prod_data(query,testdata['db_type'])
logging.info(f"RAW SQL Data: {sql_data}\n")
# sql_items = self.convert_items_to_json(sql_data)
# logging.info(f"SQL DATA in JSON format: {sql_items}\n")

all_payment_cta = []
for i in course_data[1][1]:
a = (list(i.values())[0])
if 'failed' in list(i.values())[0].lower():
all_payment_cta.append('fail')


message = self.verify_mySQL_data_certification(course_data[0],sql_data,testdata)
if 'successfull' in message[0].lower() and len(all_payment_cta) == 0:
status = 'Success'
else:
status = 'Fail'
filename = 'Report.csv'
course_name = course_data[0]['course_name']
course_type = 'Certification Program'
rows = [[country_value.upper(),course_name,course_type,url_value,message,course_data[1][0],course_data[1][1],status]]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)

if status == 'Fail':
pytest.fail("Status is Fail")
else:
message = "Enroll Now button is not Appearing"
logging.info(message)
filename = 'Report.csv'
course_name = self.pg_orders.course_name_in_url.get_text()
course_type = 'Certification Program'
rows = [[country_value.upper(),course_name,course_type,url_value,message,'','','CTA NOT AVAILABLE']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)

except Exception as e:
counter = counter+1
logging.error("Exception occurred", exc_info=True)
filename = 'Report.csv'
course_name = 'NA'
course_type = 'Certification Program'
if course_data == None:
logging.info("If block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'','','','Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)
elif len(course_data) == 1:
logging.info("1st else block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'',course_data[0],'','Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)
elif len(course_data) == 2:
logging.info("2nd else block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'',course_data[1][1],course_data[1][0],'Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)


if counter != 0:
> pytest.fail('Failed')
E Failed: Failed

test_prod\test_orders_and_payment_flow.py:207: Failed
-------------------------------Captured log call--------------------------------
INFO  setup:test_orders_and_payment_flow.py:104 Total URL Present is: 5 INFO  setup:test_orders_and_payment_flow.py:116 Url Opened is: https://www.simplilearn.com/cyber-security/cissp-certification-training INFO  setup:orders_page.py:30 Country Set to: AU INFO  setup:orders_page.py:38 clicked on Enroll Now button INFO  setup:orders_page.py:43 Payment Page is not Loaded INFO  setup:orders_page.py:44 url opend for payment is : https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNjEtMTIzNDU2Nzg5LFNpbXBsaWxlYXJu INFO  setup:orders_page.py:54 clicked on Enroll Now button again INFO  setup:orders_page.py:59 Payment Page is not Loaded INFO  setup:orders_page.py:60 url opend for paymnent is : https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNjEtMTIzNDU2Nzg5LFNpbXBsaWxlYXJu ERROR  setup:selenium_helper.py:61 Message: WARNING  setup:selenium_helper.py:62 the locator ('xpath', "//div[@id='ssvcApp']//div[contains(text(), 'Cart Summary')][contains(@class,'active_heading')]") on url https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNjEtMTIzNDU2Nzg5LFNpbXBsaWxlYXJu is not visible INFO  setup:test_orders_and_payment_flow.py:126 <class 'tuple'> INFO  setup:test_orders_and_payment_flow.py:129 course_data: ('Failed to Load Cart Page',) INFO  setup:test_orders_and_payment_flow.py:133 Token No is: https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNjEtMTIzNDU2Nzg5LFNpbXBsaWxlYXJu INFO  setup:test_orders_and_payment_flow.py:143 RAW SQL Data: [] ERROR  setup:test_orders_and_payment_flow.py:182 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 148, in test_Orders_and_Payment_Flow_certification for i in course_data[1][1]: IndexError: tuple index out of range INFO  setup:test_orders_and_payment_flow.py:193 1st else block in Exception
Failed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[W] 237.17
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x0000021EFADA0EB0>
value = 'W', initialize_pages = None
testdata = {'contact_no': '123456789', 'country': ['in', 'us', 'gb', 'au', 'de', 'sg', ...], 'db_type': 'mysql', 'dynamo_db_type': 'dynamo', ...}

@pytest.mark.test_details("0000","high","Order and Payment Flow","Pradeep")
@pytest.mark.parametrize("value", certification_program_course_read_csv())
def test_Orders_and_Payment_Flow_certification(self,value,initialize_pages,testdata):

'''
Objective: Make payment and validate the data in Dynamo db and mySql

Step 01: get url
Step 02: click on Enroll Now CTA
Step 03: Make payment
Step 04: Validate the Dynamo db and MySql daya for the payment
'''
url_count = self._count_url_txt_file_subdomain('Orders_and_Payment_Flow_Certification.txt')
logging.info(f"Total URL Present is: {url_count}")

# Step 01: get url
counter = 0
df = pd.read_csv('order_and_payment_certification_prod.csv', on_bad_lines='skip')
data = df[df['id']==value]
url_value = data['url'].values[0]
country_value = data['country'].values[0]
try:
pytest.driver.delete_all_cookies()
time.sleep(2)
pytest.driver.get(url_value)
logging.info(f"Url Opened is: {url_value}")
selenium_helper.wait_for_page_to_load(10,value)
selenium_helper.scroll_to_page_bottom()
self.pg_home.close_iframe_popUp()
self.pg_orders.change_country(country_value)

if selenium_helper.is_locator_present(self.pg_orders.locators['common_button_enroll_now_certificaton'],10):
course_data = None
self.pg_orders.click_enroll_now_certification(url_value)
course_data = self._complete_payment(country_value,testdata['payment_type'],testdata['name'],testdata['email_id'],testdata['contact_no'])
logging.info(type(course_data))
time.sleep(5)

logging.info(f"course_data: {course_data}")

# Step 04: Validate the Dynamo db and MySql data for the payment
token_no = pytest.driver.current_url.split('authtoken=')[-1]
logging.info(f"Token No is: {token_no}")
query = f"""SELECT
emailId,contactNumber,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"name"', -1), '";', 1), '"', -1) AS name,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"training_type_txt"', -1), '";', 1), '"', -1) AS training_type_txt,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"display_total_price"', -1), '";', 1), '"', -1) AS display_total_price,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"price"', -1), '";', 1), '"', -1) AS price
FROM ssvc.cart where token = '{token_no}';"""

sql_data = db_helper.get_prod_data(query,testdata['db_type'])
logging.info(f"RAW SQL Data: {sql_data}\n")
# sql_items = self.convert_items_to_json(sql_data)
# logging.info(f"SQL DATA in JSON format: {sql_items}\n")

all_payment_cta = []
for i in course_data[1][1]:
a = (list(i.values())[0])
if 'failed' in list(i.values())[0].lower():
all_payment_cta.append('fail')


message = self.verify_mySQL_data_certification(course_data[0],sql_data,testdata)
if 'successfull' in message[0].lower() and len(all_payment_cta) == 0:
status = 'Success'
else:
status = 'Fail'
filename = 'Report.csv'
course_name = course_data[0]['course_name']
course_type = 'Certification Program'
rows = [[country_value.upper(),course_name,course_type,url_value,message,course_data[1][0],course_data[1][1],status]]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)

if status == 'Fail':
pytest.fail("Status is Fail")
else:
message = "Enroll Now button is not Appearing"
logging.info(message)
filename = 'Report.csv'
course_name = self.pg_orders.course_name_in_url.get_text()
course_type = 'Certification Program'
rows = [[country_value.upper(),course_name,course_type,url_value,message,'','','CTA NOT AVAILABLE']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)

except Exception as e:
counter = counter+1
logging.error("Exception occurred", exc_info=True)
filename = 'Report.csv'
course_name = 'NA'
course_type = 'Certification Program'
if course_data == None:
logging.info("If block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'','','','Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)
elif len(course_data) == 1:
logging.info("1st else block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'',course_data[0],'','Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)
elif len(course_data) == 2:
logging.info("2nd else block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'',course_data[1][1],course_data[1][0],'Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)


if counter != 0:
> pytest.fail('Failed')
E Failed: Failed

test_prod\test_orders_and_payment_flow.py:207: Failed
-------------------------------Captured log call--------------------------------
INFO  setup:test_orders_and_payment_flow.py:104 Total URL Present is: 5 INFO  setup:test_orders_and_payment_flow.py:116 Url Opened is: https://www.simplilearn.com/cyber-security/cisa-certification-training INFO  setup:orders_page.py:30 Country Set to: DE INFO  setup:orders_page.py:38 clicked on Enroll Now button INFO  setup:orders_page.py:43 Payment Page is not Loaded INFO  setup:orders_page.py:44 url opend for payment is : https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNDktMTIzNDU2Nzg5LFNpbXBsaWxlYXJu INFO  setup:orders_page.py:54 clicked on Enroll Now button again INFO  setup:orders_page.py:59 Payment Page is not Loaded INFO  setup:orders_page.py:60 url opend for paymnent is : https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNDktMTIzNDU2Nzg5LFNpbXBsaWxlYXJu ERROR  setup:selenium_helper.py:61 Message: WARNING  setup:selenium_helper.py:62 the locator ('xpath', "//div[@id='ssvcApp']//div[contains(text(), 'Cart Summary')][contains(@class,'active_heading')]") on url https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNDktMTIzNDU2Nzg5LFNpbXBsaWxlYXJu is not visible INFO  setup:test_orders_and_payment_flow.py:126 <class 'tuple'> INFO  setup:test_orders_and_payment_flow.py:129 course_data: ('Failed to Load Cart Page',) INFO  setup:test_orders_and_payment_flow.py:133 Token No is: https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNDktMTIzNDU2Nzg5LFNpbXBsaWxlYXJu INFO  setup:test_orders_and_payment_flow.py:143 RAW SQL Data: [] ERROR  setup:test_orders_and_payment_flow.py:182 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 148, in test_Orders_and_Payment_Flow_certification for i in course_data[1][1]: IndexError: tuple index out of range INFO  setup:test_orders_and_payment_flow.py:193 1st else block in Exception
Failed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[X] 237.96
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x0000021EFADA0F70>
value = 'X', initialize_pages = None
testdata = {'contact_no': '123456789', 'country': ['in', 'us', 'gb', 'au', 'de', 'sg', ...], 'db_type': 'mysql', 'dynamo_db_type': 'dynamo', ...}

@pytest.mark.test_details("0000","high","Order and Payment Flow","Pradeep")
@pytest.mark.parametrize("value", certification_program_course_read_csv())
def test_Orders_and_Payment_Flow_certification(self,value,initialize_pages,testdata):

'''
Objective: Make payment and validate the data in Dynamo db and mySql

Step 01: get url
Step 02: click on Enroll Now CTA
Step 03: Make payment
Step 04: Validate the Dynamo db and MySql daya for the payment
'''
url_count = self._count_url_txt_file_subdomain('Orders_and_Payment_Flow_Certification.txt')
logging.info(f"Total URL Present is: {url_count}")

# Step 01: get url
counter = 0
df = pd.read_csv('order_and_payment_certification_prod.csv', on_bad_lines='skip')
data = df[df['id']==value]
url_value = data['url'].values[0]
country_value = data['country'].values[0]
try:
pytest.driver.delete_all_cookies()
time.sleep(2)
pytest.driver.get(url_value)
logging.info(f"Url Opened is: {url_value}")
selenium_helper.wait_for_page_to_load(10,value)
selenium_helper.scroll_to_page_bottom()
self.pg_home.close_iframe_popUp()
self.pg_orders.change_country(country_value)

if selenium_helper.is_locator_present(self.pg_orders.locators['common_button_enroll_now_certificaton'],10):
course_data = None
self.pg_orders.click_enroll_now_certification(url_value)
course_data = self._complete_payment(country_value,testdata['payment_type'],testdata['name'],testdata['email_id'],testdata['contact_no'])
logging.info(type(course_data))
time.sleep(5)

logging.info(f"course_data: {course_data}")

# Step 04: Validate the Dynamo db and MySql data for the payment
token_no = pytest.driver.current_url.split('authtoken=')[-1]
logging.info(f"Token No is: {token_no}")
query = f"""SELECT
emailId,contactNumber,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"name"', -1), '";', 1), '"', -1) AS name,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"training_type_txt"', -1), '";', 1), '"', -1) AS training_type_txt,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"display_total_price"', -1), '";', 1), '"', -1) AS display_total_price,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"price"', -1), '";', 1), '"', -1) AS price
FROM ssvc.cart where token = '{token_no}';"""

sql_data = db_helper.get_prod_data(query,testdata['db_type'])
logging.info(f"RAW SQL Data: {sql_data}\n")
# sql_items = self.convert_items_to_json(sql_data)
# logging.info(f"SQL DATA in JSON format: {sql_items}\n")

all_payment_cta = []
for i in course_data[1][1]:
a = (list(i.values())[0])
if 'failed' in list(i.values())[0].lower():
all_payment_cta.append('fail')


message = self.verify_mySQL_data_certification(course_data[0],sql_data,testdata)
if 'successfull' in message[0].lower() and len(all_payment_cta) == 0:
status = 'Success'
else:
status = 'Fail'
filename = 'Report.csv'
course_name = course_data[0]['course_name']
course_type = 'Certification Program'
rows = [[country_value.upper(),course_name,course_type,url_value,message,course_data[1][0],course_data[1][1],status]]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)

if status == 'Fail':
pytest.fail("Status is Fail")
else:
message = "Enroll Now button is not Appearing"
logging.info(message)
filename = 'Report.csv'
course_name = self.pg_orders.course_name_in_url.get_text()
course_type = 'Certification Program'
rows = [[country_value.upper(),course_name,course_type,url_value,message,'','','CTA NOT AVAILABLE']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)

except Exception as e:
counter = counter+1
logging.error("Exception occurred", exc_info=True)
filename = 'Report.csv'
course_name = 'NA'
course_type = 'Certification Program'
if course_data == None:
logging.info("If block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'','','','Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)
elif len(course_data) == 1:
logging.info("1st else block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'',course_data[0],'','Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)
elif len(course_data) == 2:
logging.info("2nd else block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'',course_data[1][1],course_data[1][0],'Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)


if counter != 0:
> pytest.fail('Failed')
E Failed: Failed

test_prod\test_orders_and_payment_flow.py:207: Failed
-------------------------------Captured log call--------------------------------
INFO  setup:test_orders_and_payment_flow.py:104 Total URL Present is: 5 INFO  setup:test_orders_and_payment_flow.py:116 Url Opened is: https://www.simplilearn.com/cyber-security/cissp-certification-training INFO  setup:orders_page.py:30 Country Set to: DE INFO  setup:orders_page.py:38 clicked on Enroll Now button INFO  setup:orders_page.py:43 Payment Page is not Loaded INFO  setup:orders_page.py:44 url opend for payment is : https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNDktMTIzNDU2Nzg5LFNpbXBsaWxlYXJu INFO  setup:orders_page.py:54 clicked on Enroll Now button again INFO  setup:orders_page.py:59 Payment Page is not Loaded INFO  setup:orders_page.py:60 url opend for paymnent is : https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNDktMTIzNDU2Nzg5LFNpbXBsaWxlYXJu ERROR  setup:selenium_helper.py:61 Message: WARNING  setup:selenium_helper.py:62 the locator ('xpath', "//div[@id='ssvcApp']//div[contains(text(), 'Cart Summary')][contains(@class,'active_heading')]") on url https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNDktMTIzNDU2Nzg5LFNpbXBsaWxlYXJu is not visible INFO  setup:test_orders_and_payment_flow.py:126 <class 'tuple'> INFO  setup:test_orders_and_payment_flow.py:129 course_data: ('Failed to Load Cart Page',) INFO  setup:test_orders_and_payment_flow.py:133 Token No is: https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNDktMTIzNDU2Nzg5LFNpbXBsaWxlYXJu INFO  setup:test_orders_and_payment_flow.py:143 RAW SQL Data: [] ERROR  setup:test_orders_and_payment_flow.py:182 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 148, in test_Orders_and_Payment_Flow_certification for i in course_data[1][1]: IndexError: tuple index out of range INFO  setup:test_orders_and_payment_flow.py:193 1st else block in Exception
Failed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AD] 237.74
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x0000021EFADB4430>
value = 'AD', initialize_pages = None
testdata = {'contact_no': '123456789', 'country': ['in', 'us', 'gb', 'au', 'de', 'sg', ...], 'db_type': 'mysql', 'dynamo_db_type': 'dynamo', ...}

@pytest.mark.test_details("0000","high","Order and Payment Flow","Pradeep")
@pytest.mark.parametrize("value", certification_program_course_read_csv())
def test_Orders_and_Payment_Flow_certification(self,value,initialize_pages,testdata):

'''
Objective: Make payment and validate the data in Dynamo db and mySql

Step 01: get url
Step 02: click on Enroll Now CTA
Step 03: Make payment
Step 04: Validate the Dynamo db and MySql daya for the payment
'''
url_count = self._count_url_txt_file_subdomain('Orders_and_Payment_Flow_Certification.txt')
logging.info(f"Total URL Present is: {url_count}")

# Step 01: get url
counter = 0
df = pd.read_csv('order_and_payment_certification_prod.csv', on_bad_lines='skip')
data = df[df['id']==value]
url_value = data['url'].values[0]
country_value = data['country'].values[0]
try:
pytest.driver.delete_all_cookies()
time.sleep(2)
pytest.driver.get(url_value)
logging.info(f"Url Opened is: {url_value}")
selenium_helper.wait_for_page_to_load(10,value)
selenium_helper.scroll_to_page_bottom()
self.pg_home.close_iframe_popUp()
self.pg_orders.change_country(country_value)

if selenium_helper.is_locator_present(self.pg_orders.locators['common_button_enroll_now_certificaton'],10):
course_data = None
self.pg_orders.click_enroll_now_certification(url_value)
course_data = self._complete_payment(country_value,testdata['payment_type'],testdata['name'],testdata['email_id'],testdata['contact_no'])
logging.info(type(course_data))
time.sleep(5)

logging.info(f"course_data: {course_data}")

# Step 04: Validate the Dynamo db and MySql data for the payment
token_no = pytest.driver.current_url.split('authtoken=')[-1]
logging.info(f"Token No is: {token_no}")
query = f"""SELECT
emailId,contactNumber,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"name"', -1), '";', 1), '"', -1) AS name,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"training_type_txt"', -1), '";', 1), '"', -1) AS training_type_txt,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"display_total_price"', -1), '";', 1), '"', -1) AS display_total_price,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"price"', -1), '";', 1), '"', -1) AS price
FROM ssvc.cart where token = '{token_no}';"""

sql_data = db_helper.get_prod_data(query,testdata['db_type'])
logging.info(f"RAW SQL Data: {sql_data}\n")
# sql_items = self.convert_items_to_json(sql_data)
# logging.info(f"SQL DATA in JSON format: {sql_items}\n")

all_payment_cta = []
for i in course_data[1][1]:
a = (list(i.values())[0])
if 'failed' in list(i.values())[0].lower():
all_payment_cta.append('fail')


message = self.verify_mySQL_data_certification(course_data[0],sql_data,testdata)
if 'successfull' in message[0].lower() and len(all_payment_cta) == 0:
status = 'Success'
else:
status = 'Fail'
filename = 'Report.csv'
course_name = course_data[0]['course_name']
course_type = 'Certification Program'
rows = [[country_value.upper(),course_name,course_type,url_value,message,course_data[1][0],course_data[1][1],status]]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)

if status == 'Fail':
pytest.fail("Status is Fail")
else:
message = "Enroll Now button is not Appearing"
logging.info(message)
filename = 'Report.csv'
course_name = self.pg_orders.course_name_in_url.get_text()
course_type = 'Certification Program'
rows = [[country_value.upper(),course_name,course_type,url_value,message,'','','CTA NOT AVAILABLE']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)

except Exception as e:
counter = counter+1
logging.error("Exception occurred", exc_info=True)
filename = 'Report.csv'
course_name = 'NA'
course_type = 'Certification Program'
if course_data == None:
logging.info("If block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'','','','Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)
elif len(course_data) == 1:
logging.info("1st else block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'',course_data[0],'','Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)
elif len(course_data) == 2:
logging.info("2nd else block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'',course_data[1][1],course_data[1][0],'Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)


if counter != 0:
> pytest.fail('Failed')
E Failed: Failed

test_prod\test_orders_and_payment_flow.py:207: Failed
-------------------------------Captured log call--------------------------------
INFO  setup:test_orders_and_payment_flow.py:104 Total URL Present is: 5 INFO  setup:test_orders_and_payment_flow.py:116 Url Opened is: https://www.simplilearn.com/big-data-and-analytics/big-data-and-hadoop-training INFO  setup:orders_page.py:30 Country Set to: SG INFO  setup:orders_page.py:38 clicked on Enroll Now button INFO  setup:orders_page.py:43 Payment Page is not Loaded INFO  setup:orders_page.py:44 url opend for payment is : https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNjUtMTIzNDU2Nzg5LFNpbXBsaWxlYXJu INFO  setup:orders_page.py:54 clicked on Enroll Now button again INFO  setup:orders_page.py:59 Payment Page is not Loaded INFO  setup:orders_page.py:60 url opend for paymnent is : https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNjUtMTIzNDU2Nzg5LFNpbXBsaWxlYXJu ERROR  setup:selenium_helper.py:61 Message: WARNING  setup:selenium_helper.py:62 the locator ('xpath', "//div[@id='ssvcApp']//div[contains(text(), 'Cart Summary')][contains(@class,'active_heading')]") on url https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNjUtMTIzNDU2Nzg5LFNpbXBsaWxlYXJu is not visible INFO  setup:test_orders_and_payment_flow.py:126 <class 'tuple'> INFO  setup:test_orders_and_payment_flow.py:129 course_data: ('Failed to Load Cart Page',) INFO  setup:test_orders_and_payment_flow.py:133 Token No is: https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNjUtMTIzNDU2Nzg5LFNpbXBsaWxlYXJu INFO  setup:test_orders_and_payment_flow.py:143 RAW SQL Data: [] ERROR  setup:test_orders_and_payment_flow.py:182 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 148, in test_Orders_and_Payment_Flow_certification for i in course_data[1][1]: IndexError: tuple index out of range INFO  setup:test_orders_and_payment_flow.py:193 1st else block in Exception
Failed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AI] 237.99
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x0000021EFADB47F0>
value = 'AI', initialize_pages = None
testdata = {'contact_no': '123456789', 'country': ['in', 'us', 'gb', 'au', 'de', 'sg', ...], 'db_type': 'mysql', 'dynamo_db_type': 'dynamo', ...}

@pytest.mark.test_details("0000","high","Order and Payment Flow","Pradeep")
@pytest.mark.parametrize("value", certification_program_course_read_csv())
def test_Orders_and_Payment_Flow_certification(self,value,initialize_pages,testdata):

'''
Objective: Make payment and validate the data in Dynamo db and mySql

Step 01: get url
Step 02: click on Enroll Now CTA
Step 03: Make payment
Step 04: Validate the Dynamo db and MySql daya for the payment
'''
url_count = self._count_url_txt_file_subdomain('Orders_and_Payment_Flow_Certification.txt')
logging.info(f"Total URL Present is: {url_count}")

# Step 01: get url
counter = 0
df = pd.read_csv('order_and_payment_certification_prod.csv', on_bad_lines='skip')
data = df[df['id']==value]
url_value = data['url'].values[0]
country_value = data['country'].values[0]
try:
pytest.driver.delete_all_cookies()
time.sleep(2)
pytest.driver.get(url_value)
logging.info(f"Url Opened is: {url_value}")
selenium_helper.wait_for_page_to_load(10,value)
selenium_helper.scroll_to_page_bottom()
self.pg_home.close_iframe_popUp()
self.pg_orders.change_country(country_value)

if selenium_helper.is_locator_present(self.pg_orders.locators['common_button_enroll_now_certificaton'],10):
course_data = None
self.pg_orders.click_enroll_now_certification(url_value)
course_data = self._complete_payment(country_value,testdata['payment_type'],testdata['name'],testdata['email_id'],testdata['contact_no'])
logging.info(type(course_data))
time.sleep(5)

logging.info(f"course_data: {course_data}")

# Step 04: Validate the Dynamo db and MySql data for the payment
token_no = pytest.driver.current_url.split('authtoken=')[-1]
logging.info(f"Token No is: {token_no}")
query = f"""SELECT
emailId,contactNumber,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"name"', -1), '";', 1), '"', -1) AS name,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"training_type_txt"', -1), '";', 1), '"', -1) AS training_type_txt,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"display_total_price"', -1), '";', 1), '"', -1) AS display_total_price,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"price"', -1), '";', 1), '"', -1) AS price
FROM ssvc.cart where token = '{token_no}';"""

sql_data = db_helper.get_prod_data(query,testdata['db_type'])
logging.info(f"RAW SQL Data: {sql_data}\n")
# sql_items = self.convert_items_to_json(sql_data)
# logging.info(f"SQL DATA in JSON format: {sql_items}\n")

all_payment_cta = []
for i in course_data[1][1]:
a = (list(i.values())[0])
if 'failed' in list(i.values())[0].lower():
all_payment_cta.append('fail')


message = self.verify_mySQL_data_certification(course_data[0],sql_data,testdata)
if 'successfull' in message[0].lower() and len(all_payment_cta) == 0:
status = 'Success'
else:
status = 'Fail'
filename = 'Report.csv'
course_name = course_data[0]['course_name']
course_type = 'Certification Program'
rows = [[country_value.upper(),course_name,course_type,url_value,message,course_data[1][0],course_data[1][1],status]]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)

if status == 'Fail':
pytest.fail("Status is Fail")
else:
message = "Enroll Now button is not Appearing"
logging.info(message)
filename = 'Report.csv'
course_name = self.pg_orders.course_name_in_url.get_text()
course_type = 'Certification Program'
rows = [[country_value.upper(),course_name,course_type,url_value,message,'','','CTA NOT AVAILABLE']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)

except Exception as e:
counter = counter+1
logging.error("Exception occurred", exc_info=True)
filename = 'Report.csv'
course_name = 'NA'
course_type = 'Certification Program'
if course_data == None:
logging.info("If block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'','','','Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)
elif len(course_data) == 1:
logging.info("1st else block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'',course_data[0],'','Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)
elif len(course_data) == 2:
logging.info("2nd else block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'',course_data[1][1],course_data[1][0],'Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)


if counter != 0:
> pytest.fail('Failed')
E Failed: Failed

test_prod\test_orders_and_payment_flow.py:207: Failed
-------------------------------Captured log call--------------------------------
INFO  setup:test_orders_and_payment_flow.py:104 Total URL Present is: 5 INFO  setup:test_orders_and_payment_flow.py:116 Url Opened is: https://www.simplilearn.com/big-data-and-analytics/big-data-and-hadoop-training INFO  setup:orders_page.py:30 Country Set to: AE INFO  setup:orders_page.py:38 clicked on Enroll Now button INFO  setup:orders_page.py:43 Payment Page is not Loaded INFO  setup:orders_page.py:44 url opend for payment is : https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrOTcxLTEyMzQ1Njc4OSxTaW1wbGlsZWFybg== INFO  setup:orders_page.py:54 clicked on Enroll Now button again INFO  setup:orders_page.py:59 Payment Page is not Loaded INFO  setup:orders_page.py:60 url opend for paymnent is : https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrOTcxLTEyMzQ1Njc4OSxTaW1wbGlsZWFybg== ERROR  setup:selenium_helper.py:61 Message: WARNING  setup:selenium_helper.py:62 the locator ('xpath', "//div[@id='ssvcApp']//div[contains(text(), 'Cart Summary')][contains(@class,'active_heading')]") on url https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrOTcxLTEyMzQ1Njc4OSxTaW1wbGlsZWFybg== is not visible INFO  setup:test_orders_and_payment_flow.py:126 <class 'tuple'> INFO  setup:test_orders_and_payment_flow.py:129 course_data: ('Failed to Load Cart Page',) INFO  setup:test_orders_and_payment_flow.py:133 Token No is: https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrOTcxLTEyMzQ1Njc4OSxTaW1wbGlsZWFybg== INFO  setup:test_orders_and_payment_flow.py:143 RAW SQL Data: [] ERROR  setup:test_orders_and_payment_flow.py:182 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 148, in test_Orders_and_Payment_Flow_certification for i in course_data[1][1]: IndexError: tuple index out of range INFO  setup:test_orders_and_payment_flow.py:193 1st else block in Exception
Failed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[X] 192.64
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x0000021EFADC6F10>, value = 'X'
initialize_pages = None
testdata = {'contact_no': '123456789', 'country': ['in', 'us', 'gb', 'au', 'de', 'sg', ...], 'db_type': 'mysql', 'dynamo_db_type': 'dynamo', ...}

@pytest.mark.test_details("0001","high","Order and Payment Flow","Pradeep")
@pytest.mark.parametrize("value", master_program_course_read_csv())
def test_Orders_and_Payment_Flow_masters_program(self,value,initialize_pages,testdata):

'''
Objective: Make payment and validate the data in Dynamo db and mySql

Step 01: get url
Step 02: click on Enroll Now CTA
Step 03: Make payment
Step 04: Validate the Dynamo db and MySql daya for the payment
'''
# self.add_rows_in_csv('Report.csv') this step is commentd to make one CSV file
# self.add_rows_in_csv('Report.csv')
#url_count = self._count_url_txt_file_subdomain('Order_and_Payment_Flow_masters.txt')
#logging.info(f"Total URL Present is: {url_count}")

# Step 01: get url
counter = 0
df = pd.read_csv('order_and_payment_master_prod.csv', on_bad_lines='skip')
data = df[df['id']==value]
url_value = data['url'].values[0]
country_value = data['country'].values[0]
try:
pytest.driver.delete_all_cookies()
pytest.driver.get(url_value)
logging.info(f"Url Opened is: {url_value}")
selenium_helper.wait_for_page_to_load(10,value)
self.pg_orders.change_country(country_value)

if selenium_helper.is_locator_present(self.pg_orders.locators['btn_enroll_now_masters_program'],10):
course_data = None
self.pg_orders.click_enroll_now_for_masters(url_value)

course_data = self._complete_payment(country_value,testdata['payment_type'],testdata['name'],testdata['email_id'],testdata['contact_no'])
logging.info(type(course_data))
time.sleep(5)

logging.info(f"course_data: {course_data}")

# Step 04: Validate the Dynamo db and MySql data for the payment
token_no = pytest.driver.current_url.split('authtoken=')[-1]
logging.info(f"Token No is: {token_no}")
query = f"""SELECT
emailId,contactNumber,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"name"', -1), '";', 1), '"', -1) AS name,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"training_type_txt"', -1), '";', 1), '"', -1) AS training_type_txt,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"display_total_price"', -1), '";', 1), '"', -1) AS display_total_price,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"price"', -1), '";', 1), '"', -1) AS price
FROM ssvc.cart where token = '{token_no}';"""

sql_data = db_helper.get_prod_data(query,testdata['db_type'])
logging.info(f"RAW SQL Data: {sql_data}\n")
# sql_items = self.convert_items_to_json(sql_data)
# logging.info(f"SQL DATA in JSON format: {sql_items}\n")

all_payment_cta = []
for i in course_data[1][1]:
a = (list(i.values())[0])
if 'failed' in list(i.values())[0].lower():
all_payment_cta.append('fail')

message = self.verify_mySQL_data_masters_program(course_data[0],sql_data,testdata)
if 'successfull' in message[0].lower() and len(all_payment_cta) == 0:
status = 'Success'
else:
status = 'Fail'
filename = 'Report.csv'
course_name = course_data[0]['course_name']
course_type = 'Masters Program'
# course_type = sql_items['training_type_txt']
rows = [[country_value.upper(),course_name,course_type,url_value,message,course_data[1][0],course_data[1][1],status]]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)

if status == 'Fail':
pytest.fail("Status is Fail")

else:
message = "Enroll Now button is not Appearing"
logging.info(message)
filename = 'Report.csv'
course_name = self.pg_orders.course_name_in_url.get_text()
course_type = 'Masters Program'
rows = [[country_value.upper(),course_name,course_type,url_value,message,'','','CTA NOT AVAILABLE']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)

except Exception as e:
counter = counter+1
logging.error("Exception occurred", exc_info=True)
filename = 'Report.csv'
course_name = 'NA'
course_type = 'master Program'
if course_data == None:
logging.info("If block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'','','','Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)
elif len(course_data) == 1:
logging.info("1st else block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'',course_data[0],'','Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)
elif len(course_data) == 2:
logging.info("2nd else block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'',course_data[1][0],course_data[1][0],'Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)


if counter != 0:
> pytest.fail('Failed')
E Failed: Failed

test_prod\test_orders_and_payment_flow.py:542: Failed
-------------------------------Captured log call--------------------------------
INFO  setup:test_orders_and_payment_flow.py:451 Url Opened is: https://www.simplilearn.com/advanced-digital-marketing-certification-training-course INFO  setup:orders_page.py:30 Country Set to: AE INFO  setup:orders_page.py:159 clicked on Enroll Now button for Masters Program INFO  setup:orders_page.py:164 Payment Page is not Loaded INFO  setup:orders_page.py:165 url opend for paymnent is : https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNjUtMTIzNDU2Nzg5LFNpbXBsaWxlYXJu INFO  setup:orders_page.py:175 clicked on Enroll Now button for Masters Program again INFO  setup:orders_page.py:180 Payment Page is not Loaded INFO  setup:orders_page.py:181 url opend for paymnent is : https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNjUtMTIzNDU2Nzg5LFNpbXBsaWxlYXJu ERROR  setup:selenium_helper.py:61 Message: WARNING  setup:selenium_helper.py:62 the locator ('xpath', "//div[@id='ssvcApp']//div[contains(text(), 'Cart Summary')][contains(@class,'active_heading')]") on url https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNjUtMTIzNDU2Nzg5LFNpbXBsaWxlYXJu is not visible INFO  setup:test_orders_and_payment_flow.py:460 <class 'tuple'> INFO  setup:test_orders_and_payment_flow.py:463 course_data: ('Failed to Load Cart Page',) INFO  setup:test_orders_and_payment_flow.py:467 Token No is: https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrNjUtMTIzNDU2Nzg5LFNpbXBsaWxlYXJu INFO  setup:test_orders_and_payment_flow.py:477 RAW SQL Data: [] ERROR  setup:test_orders_and_payment_flow.py:517 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 482, in test_Orders_and_Payment_Flow_masters_program for i in course_data[1][1]: IndexError: tuple index out of range INFO  setup:test_orders_and_payment_flow.py:528 1st else block in Exception
Failed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[AB] 191.82
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x0000021EFADD0250>, value = 'AB'
initialize_pages = None
testdata = {'contact_no': '123456789', 'country': ['in', 'us', 'gb', 'au', 'de', 'sg', ...], 'db_type': 'mysql', 'dynamo_db_type': 'dynamo', ...}

@pytest.mark.test_details("0001","high","Order and Payment Flow","Pradeep")
@pytest.mark.parametrize("value", master_program_course_read_csv())
def test_Orders_and_Payment_Flow_masters_program(self,value,initialize_pages,testdata):

'''
Objective: Make payment and validate the data in Dynamo db and mySql

Step 01: get url
Step 02: click on Enroll Now CTA
Step 03: Make payment
Step 04: Validate the Dynamo db and MySql daya for the payment
'''
# self.add_rows_in_csv('Report.csv') this step is commentd to make one CSV file
# self.add_rows_in_csv('Report.csv')
#url_count = self._count_url_txt_file_subdomain('Order_and_Payment_Flow_masters.txt')
#logging.info(f"Total URL Present is: {url_count}")

# Step 01: get url
counter = 0
df = pd.read_csv('order_and_payment_master_prod.csv', on_bad_lines='skip')
data = df[df['id']==value]
url_value = data['url'].values[0]
country_value = data['country'].values[0]
try:
pytest.driver.delete_all_cookies()
pytest.driver.get(url_value)
logging.info(f"Url Opened is: {url_value}")
selenium_helper.wait_for_page_to_load(10,value)
self.pg_orders.change_country(country_value)

if selenium_helper.is_locator_present(self.pg_orders.locators['btn_enroll_now_masters_program'],10):
course_data = None
self.pg_orders.click_enroll_now_for_masters(url_value)

course_data = self._complete_payment(country_value,testdata['payment_type'],testdata['name'],testdata['email_id'],testdata['contact_no'])
logging.info(type(course_data))
time.sleep(5)

logging.info(f"course_data: {course_data}")

# Step 04: Validate the Dynamo db and MySql data for the payment
token_no = pytest.driver.current_url.split('authtoken=')[-1]
logging.info(f"Token No is: {token_no}")
query = f"""SELECT
emailId,contactNumber,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"name"', -1), '";', 1), '"', -1) AS name,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"training_type_txt"', -1), '";', 1), '"', -1) AS training_type_txt,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"display_total_price"', -1), '";', 1), '"', -1) AS display_total_price,
SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(items, '"price"', -1), '";', 1), '"', -1) AS price
FROM ssvc.cart where token = '{token_no}';"""

sql_data = db_helper.get_prod_data(query,testdata['db_type'])
logging.info(f"RAW SQL Data: {sql_data}\n")
# sql_items = self.convert_items_to_json(sql_data)
# logging.info(f"SQL DATA in JSON format: {sql_items}\n")

all_payment_cta = []
for i in course_data[1][1]:
a = (list(i.values())[0])
if 'failed' in list(i.values())[0].lower():
all_payment_cta.append('fail')

message = self.verify_mySQL_data_masters_program(course_data[0],sql_data,testdata)
if 'successfull' in message[0].lower() and len(all_payment_cta) == 0:
status = 'Success'
else:
status = 'Fail'
filename = 'Report.csv'
course_name = course_data[0]['course_name']
course_type = 'Masters Program'
# course_type = sql_items['training_type_txt']
rows = [[country_value.upper(),course_name,course_type,url_value,message,course_data[1][0],course_data[1][1],status]]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)

if status == 'Fail':
pytest.fail("Status is Fail")

else:
message = "Enroll Now button is not Appearing"
logging.info(message)
filename = 'Report.csv'
course_name = self.pg_orders.course_name_in_url.get_text()
course_type = 'Masters Program'
rows = [[country_value.upper(),course_name,course_type,url_value,message,'','','CTA NOT AVAILABLE']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)

except Exception as e:
counter = counter+1
logging.error("Exception occurred", exc_info=True)
filename = 'Report.csv'
course_name = 'NA'
course_type = 'master Program'
if course_data == None:
logging.info("If block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'','','','Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)
elif len(course_data) == 1:
logging.info("1st else block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'',course_data[0],'','Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)
elif len(course_data) == 2:
logging.info("2nd else block in Exception")
rows = [[country_value.upper(),course_name,course_type,url_value,'',course_data[1][0],course_data[1][0],'Fail']]
with open(filename, 'a', newline='\n') as csvfile:
csvwriter = csv.writer(csvfile)
csvwriter.writerows(rows)


if counter != 0:
> pytest.fail('Failed')
E Failed: Failed

test_prod\test_orders_and_payment_flow.py:542: Failed
-------------------------------Captured log call--------------------------------
INFO  setup:test_orders_and_payment_flow.py:451 Url Opened is: https://www.simplilearn.com/advanced-digital-marketing-certification-training-course INFO  setup:orders_page.py:30 Country Set to: AE INFO  setup:orders_page.py:159 clicked on Enroll Now button for Masters Program INFO  setup:orders_page.py:164 Payment Page is not Loaded INFO  setup:orders_page.py:165 url opend for paymnent is : https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrOTcxLTEyMzQ1Njc4OSxTaW1wbGlsZWFybg== INFO  setup:orders_page.py:175 clicked on Enroll Now button for Masters Program again INFO  setup:orders_page.py:180 Payment Page is not Loaded INFO  setup:orders_page.py:181 url opend for paymnent is : https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrOTcxLTEyMzQ1Njc4OSxTaW1wbGlsZWFybg== ERROR  setup:selenium_helper.py:61 Message: WARNING  setup:selenium_helper.py:62 the locator ('xpath', "//div[@id='ssvcApp']//div[contains(text(), 'Cart Summary')][contains(@class,'active_heading')]") on url https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrOTcxLTEyMzQ1Njc4OSxTaW1wbGlsZWFybg== is not visible INFO  setup:test_orders_and_payment_flow.py:460 <class 'tuple'> INFO  setup:test_orders_and_payment_flow.py:463 course_data: ('Failed to Load Cart Page',) INFO  setup:test_orders_and_payment_flow.py:467 Token No is: https://www.simplilearn.com/cart/add-to-cart?auh=c2ltcGxpbGVhcm5hdXRvbWF0aW9uQGdtYWlsLmNvbSwrOTcxLTEyMzQ1Njc4OSxTaW1wbGlsZWFybg== INFO  setup:test_orders_and_payment_flow.py:477 RAW SQL Data: [] ERROR  setup:test_orders_and_payment_flow.py:517 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 482, in test_Orders_and_Payment_Flow_masters_program for i in course_data[1][1]: IndexError: tuple index out of range INFO  setup:test_orders_and_payment_flow.py:528 1st else block in Exception
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[A] 186.34
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[B] 80.24
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[C] 93.03
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[D] 108.07
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[E] 108.70
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[F] 186.08
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[G] 79.10
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[H] 111.58
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[I] 113.83
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[J] 114.31
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[K] 217.65
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[L] 79.09
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[M] 145.25
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[N] 143.71
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[O] 144.75
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[P] 217.67
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[Q] 78.87
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[R] 143.98
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[T] 208.16
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[U] 216.60
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[V] 79.04
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[Y] 145.27
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[Z] 353.98
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AA] 78.77
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AB] 142.84
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AC] 143.51
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AE] 216.53
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AF] 79.59
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AG] 205.76
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AH] 142.17
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[A] 138.35
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[B] 137.80
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[C] 138.31
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[D] 65.86
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[E] 142.96
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[F] 141.66
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[G] 142.03
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[H] 70.86
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[I] 177.12
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[J] 174.75
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[K] 175.32
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[L] 102.37
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[M] 175.23
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[N] 174.22
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[O] 174.97
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[P] 103.73
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[Q] 173.90
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[R] 173.82
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[S] 174.66
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[T] 101.04
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[U] 173.71
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[V] 172.74
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[W] 172.52
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[Y] 173.01
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[Z] 172.43
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[AA] 173.20
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_orderAndPayment_flow_certification_program_report_details_to_DB 0.62
Passed test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_orderAndPayment_flow_master_program_report_details_to_DB 0.32