Report generated on 04-May-2023 at 01:41:34 by pytest-html v2.1.1
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 |
65 tests ran in 6088.36 seconds.
(Un)check the boxes to filter the results.
20 passed, 0 skipped, 45 failed, 0 errors, 0 expected failures, 0 unexpected passesResult | Test | Duration | Links |
---|---|---|---|
No results found. Try to check the filters | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[C] | 63.74 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x00000274410E3C10> value = 'C', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed ------------------------------Captured stderr call------------------------------ --- Logging error --- Traceback (most recent call last): File "c:\users\qateam\appdata\local\programs\python\python38\lib\logging\__init__.py", line 1084, in emit stream.write(msg + self.terminator) File "c:\users\qateam\appdata\local\programs\python\python38\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode character '\u20b9' in position 128: character maps to <undefined> Call stack: File "c:\users\qateam\appdata\local\programs\python\python38\lib\runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "c:\users\qateam\appdata\local\programs\python\python38\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "C:\Users\qateam\AppData\Local\Programs\Python\Python38\Scripts\pytest.exe\__main__.py", line 7, in <module> sys.exit(console_main()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\config\__init__.py", line 190, in console_main code = main() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\config\__init__.py", line 167, in main ret: Union[ExitCode, int] = config.hook.pytest_cmdline_main( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 317, in pytest_cmdline_main return wrap_session(config, _main) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 270, in wrap_session session.exitstatus = doit(config, session) or 0 File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 324, in _main config.hook.pytest_runtestloop(session=session) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 349, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 112, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 131, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 220, in call_and_report call = call_runtest_hook(item, when, **kwds) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 259, in call_runtest_hook return CallInfo.from_call( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 339, in from_call result: Optional[TResult] = func() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 260, in <lambda> lambda: ihook(item=item, **kwds), when=when, reraise=reraise File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 167, in pytest_runtest_call item.runtest() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\python.py", line 1789, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\python.py", line 195, in pytest_pyfunc_call result = testfunction(**testargs) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 124, in test_Orders_and_Payment_Flow_certification logging.info(f"course_data: {course_data}") Message: "course_data: ({'course_name': 'CISA®', 'course_type': 'Online Bootcamp', 'base_price': '₹ 174,195.00', 'final_price': '205,550.10'}, (['Credit Card', 'Debit Card', 'Net Banking', 'UPI', 'EMI', 'ShopSe EMI', 'CCAvenue'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'debitcard': 'All option clickable and Payment CTA appearing '}, {'net_banking': 'All option clickable and Payment CTA appearing '}, {'UPI': 'All option clickable and Payment CTA appearing '}, {'EMI': 'All option clickable and Payment CTA appearing '}, {'CCAvenue': 'All option clickable and Payment CTA appearing '}, {'ShopSE EMI': 'All option clickable and Payment CTA appearing '}]))" Arguments: () -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/cyber-security/cisa-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: IN [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:345 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'CISA®', 'course_type': 'Online Bootcamp', 'base_price': '₹ 174,195.00', 'final_price': '205,550.10'}, (['Credit Card', 'Debit Card', 'Net Banking', 'UPI', 'EMI', 'ShopSe EMI', 'CCAvenue'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'debitcard': 'All option clickable and Payment CTA appearing '}, {'net_banking': 'All option clickable and Payment CTA appearing '}, {'UPI': 'All option clickable and Payment CTA appearing '}, {'EMI': 'All option clickable and Payment CTA appearing '}, {'CCAvenue': 'All option clickable and Payment CTA appearing '}, {'ShopSE EMI': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 29294c0ecc3b971a2eef67e1eaca65905e2b871d581204ed7e2f99752247e3ab [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"32";s:4:"name";s:45:"CISA<sup>®</sup> Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:9:"205550.10";s:9:"basePrice";s:11:"174195.0000";s:19:"display_total_price";s:10:"174,195.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:2:"90";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:17:"CISA<sup>®</sup>";s:7:"priceId";s:4:"9154";s:11:"billingType";i:1;s:7:"img_url";s:67:"https://www.simplilearn.com/ice9/course_images/icons/ITSecCISA.svgz";s:10:"course_url";s:43:"/cyber-security/cisa-certification-training";s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:1:"3";s:18:"primary_label_name";s:14:"Cyber Security";s:12:"cateforyInfo";a:1:{i:3;s:14:"Cyber Security";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+91-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 643 (char 642) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[D] | 62.36 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x00000274410E3E50> value = 'D', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed ------------------------------Captured stderr call------------------------------ --- Logging error --- Traceback (most recent call last): File "c:\users\qateam\appdata\local\programs\python\python38\lib\logging\__init__.py", line 1084, in emit stream.write(msg + self.terminator) File "c:\users\qateam\appdata\local\programs\python\python38\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode character '\u20b9' in position 134: character maps to <undefined> Call stack: File "c:\users\qateam\appdata\local\programs\python\python38\lib\runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "c:\users\qateam\appdata\local\programs\python\python38\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "C:\Users\qateam\AppData\Local\Programs\Python\Python38\Scripts\pytest.exe\__main__.py", line 7, in <module> sys.exit(console_main()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\config\__init__.py", line 190, in console_main code = main() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\config\__init__.py", line 167, in main ret: Union[ExitCode, int] = config.hook.pytest_cmdline_main( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 317, in pytest_cmdline_main return wrap_session(config, _main) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 270, in wrap_session session.exitstatus = doit(config, session) or 0 File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 324, in _main config.hook.pytest_runtestloop(session=session) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 349, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 112, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 131, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 220, in call_and_report call = call_runtest_hook(item, when, **kwds) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 259, in call_runtest_hook return CallInfo.from_call( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 339, in from_call result: Optional[TResult] = func() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 260, in <lambda> lambda: ihook(item=item, **kwds), when=when, reraise=reraise File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 167, in pytest_runtest_call item.runtest() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\python.py", line 1789, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\python.py", line 195, in pytest_pyfunc_call result = testfunction(**testargs) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 124, in test_Orders_and_Payment_Flow_certification logging.info(f"course_data: {course_data}") Message: "course_data: ({'course_name': 'CISSP®', 'course_type': 'Online Self Learning', 'base_price': '₹ 168,525.00', 'final_price': '198,859.50'}, (['Credit Card', 'Debit Card', 'Net Banking', 'UPI', 'EMI', 'ShopSe EMI', 'CCAvenue'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'debitcard': 'All option clickable and Payment CTA appearing '}, {'net_banking': 'All option clickable and Payment CTA appearing '}, {'UPI': 'All option clickable and Payment CTA appearing '}, {'EMI': 'All option clickable and Payment CTA appearing '}, {'CCAvenue': 'All option clickable and Payment CTA appearing '}, {'ShopSE EMI': 'All option clickable and Payment CTA appearing '}]))" Arguments: () -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/cyber-security/cissp-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: IN [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:345 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'CISSP®', 'course_type': 'Online Self Learning', 'base_price': '₹ 168,525.00', 'final_price': '198,859.50'}, (['Credit Card', 'Debit Card', 'Net Banking', 'UPI', 'EMI', 'ShopSe EMI', 'CCAvenue'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'debitcard': 'All option clickable and Payment CTA appearing '}, {'net_banking': 'All option clickable and Payment CTA appearing '}, {'UPI': 'All option clickable and Payment CTA appearing '}, {'EMI': 'All option clickable and Payment CTA appearing '}, {'CCAvenue': 'All option clickable and Payment CTA appearing '}, {'ShopSE EMI': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 6c29b8262af2d4041f40f9436363ec5a0dafea4078bf19aab0d6607415457042 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"34";s:4:"name";s:39:"CISSP<sup>®</sup> Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:9:"198859.50";s:9:"basePrice";s:17:"168525.0000000000";s:19:"display_total_price";s:10:"168,525.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"2";s:10:"accessDays";s:3:"180";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:18:"CISSP<sup>®</sup>";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:68:"https://www.simplilearn.com/ice9/course_images/icons/ITSecCISSP.svgz";s:10:"course_url";s:44:"/cyber-security/cissp-certification-training";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:1:"3";s:18:"primary_label_name";s:14:"Cyber Security";s:12:"cateforyInfo";a:1:{i:3;s:14:"Cyber Security";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+91-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 633 (char 632) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[E] | 63.01 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x00000274410E3EB0> value = 'E', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed ------------------------------Captured stderr call------------------------------ --- Logging error --- Traceback (most recent call last): File "c:\users\qateam\appdata\local\programs\python\python38\lib\logging\__init__.py", line 1084, in emit stream.write(msg + self.terminator) File "c:\users\qateam\appdata\local\programs\python\python38\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode character '\u20b9' in position 163: character maps to <undefined> Call stack: File "c:\users\qateam\appdata\local\programs\python\python38\lib\runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "c:\users\qateam\appdata\local\programs\python\python38\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "C:\Users\qateam\AppData\Local\Programs\Python\Python38\Scripts\pytest.exe\__main__.py", line 7, in <module> sys.exit(console_main()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\config\__init__.py", line 190, in console_main code = main() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\config\__init__.py", line 167, in main ret: Union[ExitCode, int] = config.hook.pytest_cmdline_main( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 317, in pytest_cmdline_main return wrap_session(config, _main) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 270, in wrap_session session.exitstatus = doit(config, session) or 0 File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 324, in _main config.hook.pytest_runtestloop(session=session) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 349, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 112, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 131, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 220, in call_and_report call = call_runtest_hook(item, when, **kwds) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 259, in call_runtest_hook return CallInfo.from_call( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 339, in from_call result: Optional[TResult] = func() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 260, in <lambda> lambda: ihook(item=item, **kwds), when=when, reraise=reraise File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 167, in pytest_runtest_call item.runtest() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\python.py", line 1789, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\python.py", line 195, in pytest_pyfunc_call result = testfunction(**testargs) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 124, in test_Orders_and_Payment_Flow_certification logging.info(f"course_data: {course_data}") Message: "course_data: ({'course_name': 'Big Data Hadoop and Spark Developer', 'course_type': 'Online Self Learning', 'base_price': '₹ 21,420.00', 'final_price': '25,275.60'}, (['Credit Card', 'Debit Card', 'Net Banking', 'UPI', 'EMI', 'ShopSe EMI', 'CCAvenue'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'debitcard': 'All option clickable and Payment CTA appearing '}, {'net_banking': 'All option clickable and Payment CTA appearing '}, {'UPI': 'All option clickable and Payment CTA appearing '}, {'EMI': 'All option clickable and Payment CTA appearing '}, {'CCAvenue': 'All option clickable and Payment CTA appearing '}, {'ShopSE EMI': 'All option clickable and Payment CTA appearing '}]))" Arguments: () -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/big-data-and-analytics/big-data-and-hadoop-training [32mINFO [0m setup:orders_page.py:30 Country Set to: IN [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:345 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'Big Data Hadoop and Spark Developer', 'course_type': 'Online Self Learning', 'base_price': '₹ 21,420.00', 'final_price': '25,275.60'}, (['Credit Card', 'Debit Card', 'Net Banking', 'UPI', 'EMI', 'ShopSe EMI', 'CCAvenue'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'debitcard': 'All option clickable and Payment CTA appearing '}, {'net_banking': 'All option clickable and Payment CTA appearing '}, {'UPI': 'All option clickable and Payment CTA appearing '}, {'EMI': 'All option clickable and Payment CTA appearing '}, {'CCAvenue': 'All option clickable and Payment CTA appearing '}, {'ShopSE EMI': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 09478c25b0bbade92933a96373f8d640a8b525fb9c8668ea538614db2d44fef7 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"15";s:4:"name";s:56:"Big Data Hadoop and Spark Developer Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:8:"25275.60";s:9:"basePrice";s:10:"21420.0000";s:19:"display_total_price";s:9:"21,420.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"2";s:10:"accessDays";s:3:"180";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:35:"Big Data Hadoop and Spark Developer";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:96:"https://www.simplilearn.com/ice9/course_images/icons/Big-Data_Big-Data-and-Hadoop-Developer.svgz";s:10:"course_url";s:52:"/big-data-and-analytics/big-data-and-hadoop-training";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:2:"35";s:18:"primary_label_name";s:8:"Big Data";s:12:"cateforyInfo";a:2:{i:35;s:8:"Big Data";i:16;s:18:"Big Data Analytics";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+91-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 715 (char 714) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[H] | 67.74 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x00000274411021F0> value = 'H', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/cyber-security/cisa-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: US [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'CISA®', 'course_type': 'Online Bootcamp', 'base_price': '$ 2,299.00', 'final_price': '2,299.00'}, (['Credit Card', 'PayPal', 'Affirm', 'Klarna'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'Affirm': 'All option clickable and Payment CTA appearing '}, {'klarna': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 7e0a362ffe2efd9b1892c33de6d6e1e1f056d41f43d0d734bb55c4db4ca67de5 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"32";s:4:"name";s:45:"CISA<sup>®</sup> Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"2299.00";s:9:"basePrice";s:9:"2299.0000";s:19:"display_total_price";s:8:"2,299.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:2:"90";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:17:"CISA<sup>®</sup>";s:7:"priceId";s:5:"21890";s:11:"billingType";i:1;s:7:"img_url";s:67:"https://www.simplilearn.com/ice9/course_images/icons/ITSecCISA.svgz";s:10:"course_url";s:43:"/cyber-security/cisa-certification-training";s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:1:"3";s:18:"primary_label_name";s:14:"Cyber Security";s:12:"cateforyInfo";a:1:{i:3;s:14:"Cyber Security";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+1-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 638 (char 637) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[I] | 69.67 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x00000274411022B0> value = 'I', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/cyber-security/cissp-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: US [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'CISSP®', 'course_type': 'Online Self Learning', 'base_price': '$ 2,200.00', 'final_price': '2,200.00'}, (['Credit Card', 'PayPal', 'Klarna'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'klarna': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: cd176da9f76eb93b06f086eeb47e49aa582320a23ec85edda7a694b995ed9ec3 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"34";s:4:"name";s:39:"CISSP<sup>®</sup> Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:7:"2200.00";s:9:"basePrice";s:15:"2200.0000000000";s:19:"display_total_price";s:8:"2,200.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"2";s:10:"accessDays";s:3:"180";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:18:"CISSP<sup>®</sup>";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:68:"https://www.simplilearn.com/ice9/course_images/icons/ITSecCISSP.svgz";s:10:"course_url";s:44:"/cyber-security/cissp-certification-training";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:1:"3";s:18:"primary_label_name";s:14:"Cyber Security";s:12:"cateforyInfo";a:1:{i:3;s:14:"Cyber Security";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+1-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 627 (char 626) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[J] | 70.10 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x0000027441102370> value = 'J', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/big-data-and-analytics/big-data-and-hadoop-training [32mINFO [0m setup:orders_page.py:30 Country Set to: US [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'Big Data Hadoop and Spark Developer', 'course_type': 'Online Self Learning', 'base_price': '$ 899.00', 'final_price': '899.00'}, (['Credit Card', 'PayPal', 'Klarna'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'klarna': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: c854b0b9a15192aa8571d5b5f575dddfe81d7a2a4343ce3465cba4d8552aff24 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"15";s:4:"name";s:56:"Big Data Hadoop and Spark Developer Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:6:"899.00";s:9:"basePrice";s:14:"899.0000000000";s:19:"display_total_price";s:6:"899.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"2";s:10:"accessDays";s:3:"180";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:35:"Big Data Hadoop and Spark Developer";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:96:"https://www.simplilearn.com/ice9/course_images/icons/Big-Data_Big-Data-and-Hadoop-Developer.svgz";s:10:"course_url";s:52:"/big-data-and-analytics/big-data-and-hadoop-training";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:2:"35";s:18:"primary_label_name";s:8:"Big Data";s:12:"cateforyInfo";a:2:{i:35;s:8:"Big Data";i:16;s:18:"Big Data Analytics";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+1-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 714 (char 713) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[K] | 204.74 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x0000027441102430> value = 'K', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/agile-and-scrum/agile-and-scrum-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: GB [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:43 Payment Page is not Loaded [32mINFO [0m setup:orders_page.py:44 url opend for payment is : https://www.simplilearn.com/secure/checkout/details/error?authtoken=39893624269a1142783e6261bb9f1f5017a3f975e3b3fba6cf45aa049524ecf6 [32mINFO [0m setup:orders_page.py:54 clicked on Enroll Now button again [32mINFO [0m setup:orders_page.py:59 Payment Page is not Loaded [32mINFO [0m setup:orders_page.py:60 url opend for paymnent is : https://www.simplilearn.com/secure/checkout/details/error?authtoken=7f6a95aec9b85b3c9c33ef35588eae4fb0f8a6772576723d5da164e77914a80a [31m[1mERROR [0m setup:selenium_helper.py:61 Message: [33mWARNING [0m 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/secure/checkout/details/error?authtoken=7f6a95aec9b85b3c9c33ef35588eae4fb0f8a6772576723d5da164e77914a80a is not visible [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ('Failed to Load Cart Page',) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 7f6a95aec9b85b3c9c33ef35588eae4fb0f8a6772576723d5da164e77914a80a [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:28:{s:2:"id";s:1:"4";s:4:"name";s:50:"Certified ScrumMaster<sup>®</sup> (CSM) Classroom";s:11:"description";s:4:" - 1";s:5:"price";s:6:"549.00";s:9:"basePrice";s:3:"549";s:19:"display_total_price";s:6:"549.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"1";s:10:"workshopId";s:7:"1740362";s:5:"venue";s:3:"TBD";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:40:"Certified ScrumMaster<sup>®</sup> (CSM)";s:11:"billingType";i:1;s:7:"img_url";s:77:"https://www.simplilearn.com/ice9/course_images/icons/AGILE-AND-SCRUM-CSM.svgz";s:10:"course_url";s:43:"/agile-and-scrum/csm-certification-training";s:17:"training_type_txt";s:9:"Classroom";s:4:"from";s:10:"2023-05-04";s:2:"to";s:10:"2023-05-05";s:4:"days";i:2;s:9:"isExpired";i:0;s:6:"isSold";i:0;s:13:"workshopDates";N;s:16:"primary_label_id";s:1:"9";s:18:"primary_label_name";s:15:"Agile and Scrum";s:12:"cateforyInfo";a:1:{i:9;s:15:"Agile and Scrum";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+1-123456789'}] [32mINFO [0m setup:test_orders_and_payment_flow.py:134 SQL DATA in JSON format: {'id': '4', 'name': 'Certified ScrumMaster (CSM) Classroom', 'description': ' - 1', 'price': '549.00', 'basePrice': '549', 'display_total_price': '549.00', 'quantity': 'isEarlyBird', 'type': 'classroom', 'trainingType_id': '1', 'workshopId': '1740362', 'venue': 'TBD', 'productTypeId': '1', 'productTypeName': 'course', 'actual_name': 'Certified ScrumMaster (CSM)', 'img_url': 'https://www.simplilearn.com/ice9/course_images/icons/AGILE-AND-SCRUM-CSM.svgz', 'course_url': '/agile-and-scrum/csm-certification-training', 'training_type_txt': 'Classroom', 'from': '2023-05-04', 'to': '2023-05-05', 'days': 'isExpired', 'isSold': 'workshopDates', 'primary_label_id': '9', 'primary_label_name': 'Agile and Scrum'} [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 137, in test_Orders_and_Payment_Flow_certification for i in course_data[1][1]: IndexError: tuple index out of range | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[M] | 99.79 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x00000274411025B0> value = 'M', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/cyber-security/cisa-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: GB [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'CISA®', 'course_type': 'Online Bootcamp', 'base_price': '£ 2,799.00', 'final_price': '2,799.00'}, (['Credit Card', 'PayPal'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: fe3722edca97d18eefb7c1017891959b06a84fa9118bc898d2171eea1fc4f6a5 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"32";s:4:"name";s:45:"CISA<sup>®</sup> Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"2799.00";s:9:"basePrice";s:9:"2799.0000";s:19:"display_total_price";s:8:"2,799.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:2:"90";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:17:"CISA<sup>®</sup>";s:7:"priceId";s:4:"9124";s:11:"billingType";i:1;s:7:"img_url";s:67:"https://www.simplilearn.com/ice9/course_images/icons/ITSecCISA.svgz";s:10:"course_url";s:43:"/cyber-security/cisa-certification-training";s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:1:"3";s:18:"primary_label_name";s:14:"Cyber Security";s:12:"cateforyInfo";a:1:{i:3;s:14:"Cyber Security";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+44-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 637 (char 636) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[N] | 100.05 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x0000027441102670> value = 'N', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/cyber-security/cissp-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: GB [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'CISSP®', 'course_type': 'Online Self Learning', 'base_price': '£ 2,099.00', 'final_price': '2,099.00'}, (['Credit Card', 'PayPal'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: a0177883b427edc2163f78194a553d2036760b2d6846423067f1ef2b25433465 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"34";s:4:"name";s:39:"CISSP<sup>®</sup> Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:7:"2099.00";s:9:"basePrice";s:15:"2099.0000000000";s:19:"display_total_price";s:8:"2,099.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"2";s:10:"accessDays";s:3:"180";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:18:"CISSP<sup>®</sup>";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:68:"https://www.simplilearn.com/ice9/course_images/icons/ITSecCISSP.svgz";s:10:"course_url";s:44:"/cyber-security/cissp-certification-training";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:1:"3";s:18:"primary_label_name";s:14:"Cyber Security";s:12:"cateforyInfo";a:1:{i:3;s:14:"Cyber Security";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+44-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 627 (char 626) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[O] | 100.65 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x0000027441102730> value = 'O', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/big-data-and-analytics/big-data-and-hadoop-training [32mINFO [0m setup:orders_page.py:30 Country Set to: GB [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'Big Data Hadoop and Spark Developer', 'course_type': 'Online Self Learning', 'base_price': '£ 969.00', 'final_price': '969.00'}, (['Credit Card', 'PayPal'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: c785c432b564a8970e18e11e878ba67b66cc5fa933b5a5a454f98e2f52ea2027 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"15";s:4:"name";s:56:"Big Data Hadoop and Spark Developer Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:6:"969.00";s:9:"basePrice";s:8:"969.0000";s:19:"display_total_price";s:6:"969.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"2";s:10:"accessDays";s:3:"180";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:35:"Big Data Hadoop and Spark Developer";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:96:"https://www.simplilearn.com/ice9/course_images/icons/Big-Data_Big-Data-and-Hadoop-Developer.svgz";s:10:"course_url";s:52:"/big-data-and-analytics/big-data-and-hadoop-training";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:2:"35";s:18:"primary_label_name";s:8:"Big Data";s:12:"cateforyInfo";a:2:{i:35;s:8:"Big Data";i:16;s:18:"Big Data Analytics";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+44-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 708 (char 707) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[R] | 99.92 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x0000027441102970> value = 'R', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/cyber-security/cisa-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: AU [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'CISA®', 'course_type': 'Online Bootcamp', 'base_price': 'A$ 3,799.00', 'final_price': '3,799.00'}, (['Credit Card', 'PayPal'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: ddecb5ca96187f9a16e600b0b471af9cd4e7fd408f83c25d65e78da1eb3205fa [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"32";s:4:"name";s:45:"CISA<sup>®</sup> Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"3799.00";s:9:"basePrice";s:9:"3799.0000";s:19:"display_total_price";s:8:"3,799.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:2:"90";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:17:"CISA<sup>®</sup>";s:7:"priceId";s:4:"9819";s:11:"billingType";i:1;s:7:"img_url";s:67:"https://www.simplilearn.com/ice9/course_images/icons/ITSecCISA.svgz";s:10:"course_url";s:43:"/cyber-security/cisa-certification-training";s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:1:"3";s:18:"primary_label_name";s:14:"Cyber Security";s:12:"cateforyInfo";a:1:{i:3;s:14:"Cyber Security";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+61-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 637 (char 636) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[S] | 100.36 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x0000027441102A30> 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/cyber-security/cissp-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: AU [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'CISSP®', 'course_type': 'Online Self Learning', 'base_price': 'A$ 2,689.00', 'final_price': '2,689.00'}, (['Credit Card', 'PayPal'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 3cc696c682acfcfd6069950d1a8dc9d4341f566258f7e1a4883d428badbb78e4 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"34";s:4:"name";s:39:"CISSP<sup>®</sup> Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:7:"2689.00";s:9:"basePrice";s:15:"2689.0000000000";s:19:"display_total_price";s:8:"2,689.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"2";s:10:"accessDays";s:3:"180";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:18:"CISSP<sup>®</sup>";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:68:"https://www.simplilearn.com/ice9/course_images/icons/ITSecCISSP.svgz";s:10:"course_url";s:44:"/cyber-security/cissp-certification-training";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:1:"3";s:18:"primary_label_name";s:14:"Cyber Security";s:12:"cateforyInfo";a:1:{i:3;s:14:"Cyber Security";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+61-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 627 (char 626) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[T] | 99.79 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x0000027441102AF0> value = 'T', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/big-data-and-analytics/big-data-and-hadoop-training [32mINFO [0m setup:orders_page.py:30 Country Set to: AU [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'Big Data Hadoop and Spark Developer', 'course_type': 'Online Self Learning', 'base_price': 'A$ 1,125.00', 'final_price': '1,125.00'}, (['Credit Card', 'PayPal'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 80d98ba639f290c8b585017091385c660a27cd4e944b04764cbe53c7dacfe4da [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"15";s:4:"name";s:56:"Big Data Hadoop and Spark Developer Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1125.00";s:9:"basePrice";s:15:"1125.0000000000";s:19:"display_total_price";s:8:"1,125.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"2";s:10:"accessDays";s:3:"180";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:35:"Big Data Hadoop and Spark Developer";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:96:"https://www.simplilearn.com/ice9/course_images/icons/Big-Data_Big-Data-and-Hadoop-Developer.svgz";s:10:"course_url";s:52:"/big-data-and-analytics/big-data-and-hadoop-training";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:2:"35";s:18:"primary_label_name";s:8:"Big Data";s:12:"cateforyInfo";a:2:{i:35;s:8:"Big Data";i:16;s:18:"Big Data Analytics";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+61-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 718 (char 717) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[U] | 203.24 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x0000027441102BB0> value = 'U', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/agile-and-scrum/agile-and-scrum-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: DE [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:43 Payment Page is not Loaded [32mINFO [0m setup:orders_page.py:44 url opend for payment is : https://www.simplilearn.com/secure/checkout/details/error?authtoken=7d524dd8cee00b95fc12407a550c11c08a2e364e8d4c20ae17f4a0e35449e132 [32mINFO [0m setup:orders_page.py:54 clicked on Enroll Now button again [32mINFO [0m setup:orders_page.py:59 Payment Page is not Loaded [32mINFO [0m setup:orders_page.py:60 url opend for paymnent is : https://www.simplilearn.com/secure/checkout/details/error?authtoken=9e0283494551fa6fb312e26328ca9bac00076167676bb5f9ca69d24be08eccfa [31m[1mERROR [0m setup:selenium_helper.py:61 Message: [33mWARNING [0m 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/secure/checkout/details/error?authtoken=9e0283494551fa6fb312e26328ca9bac00076167676bb5f9ca69d24be08eccfa is not visible [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ('Failed to Load Cart Page',) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 9e0283494551fa6fb312e26328ca9bac00076167676bb5f9ca69d24be08eccfa [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:28:{s:2:"id";s:1:"4";s:4:"name";s:50:"Certified ScrumMaster<sup>®</sup> (CSM) Classroom";s:11:"description";s:4:" - 1";s:5:"price";s:6:"599.00";s:9:"basePrice";s:3:"599";s:19:"display_total_price";s:6:"599.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"1";s:10:"workshopId";s:7:"1740369";s:5:"venue";s:3:"TBD";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:40:"Certified ScrumMaster<sup>®</sup> (CSM)";s:11:"billingType";i:1;s:7:"img_url";s:77:"https://www.simplilearn.com/ice9/course_images/icons/AGILE-AND-SCRUM-CSM.svgz";s:10:"course_url";s:43:"/agile-and-scrum/csm-certification-training";s:17:"training_type_txt";s:9:"Classroom";s:4:"from";s:10:"2023-05-04";s:2:"to";s:10:"2023-05-05";s:4:"days";i:2;s:9:"isExpired";i:0;s:6:"isSold";i:0;s:13:"workshopDates";N;s:16:"primary_label_id";s:1:"9";s:18:"primary_label_name";s:15:"Agile and Scrum";s:12:"cateforyInfo";a:1:{i:9;s:15:"Agile and Scrum";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+61-123456789'}] [32mINFO [0m setup:test_orders_and_payment_flow.py:134 SQL DATA in JSON format: {'id': '4', 'name': 'Certified ScrumMaster (CSM) Classroom', 'description': ' - 1', 'price': '599.00', 'basePrice': '599', 'display_total_price': '599.00', 'quantity': 'isEarlyBird', 'type': 'classroom', 'trainingType_id': '1', 'workshopId': '1740369', 'venue': 'TBD', 'productTypeId': '1', 'productTypeName': 'course', 'actual_name': 'Certified ScrumMaster (CSM)', 'img_url': 'https://www.simplilearn.com/ice9/course_images/icons/AGILE-AND-SCRUM-CSM.svgz', 'course_url': '/agile-and-scrum/csm-certification-training', 'training_type_txt': 'Classroom', 'from': '2023-05-04', 'to': '2023-05-05', 'days': 'isExpired', 'isSold': 'workshopDates', 'primary_label_id': '9', 'primary_label_name': 'Agile and Scrum'} [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 137, in test_Orders_and_Payment_Flow_certification for i in course_data[1][1]: IndexError: tuple index out of range | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[W] | 97.94 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x0000027441102D30> 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/cyber-security/cisa-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: DE [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'CISA®', 'course_type': 'Online Bootcamp', 'base_price': '€ 2,799.00', 'final_price': '2,799.00'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: fc464ed947eaa42dd9338a87b972779cb64128d53c92af68b9eda74d9443fdb9 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"32";s:4:"name";s:45:"CISA<sup>®</sup> Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"2799.00";s:9:"basePrice";s:9:"2799.0000";s:19:"display_total_price";s:8:"2,799.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:2:"90";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:17:"CISA<sup>®</sup>";s:7:"priceId";s:4:"9124";s:11:"billingType";i:1;s:7:"img_url";s:67:"https://www.simplilearn.com/ice9/course_images/icons/ITSecCISA.svgz";s:10:"course_url";s:43:"/cyber-security/cisa-certification-training";s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:1:"3";s:18:"primary_label_name";s:14:"Cyber Security";s:12:"cateforyInfo";a:1:{i:3;s:14:"Cyber Security";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+49-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 637 (char 636) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[X] | 102.83 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x0000027441102DF0> 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/cyber-security/cissp-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: DE [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'CISSP®', 'course_type': 'Online Self Learning', 'base_price': '€ 2,099.00', 'final_price': '2,099.00'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 9e1ef6e88fafa1e11ccea23c6286d286ed475b5562cf99772b8e64eb09cf2648 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"34";s:4:"name";s:39:"CISSP<sup>®</sup> Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:7:"2099.00";s:9:"basePrice";s:15:"2099.0000000000";s:19:"display_total_price";s:8:"2,099.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"2";s:10:"accessDays";s:3:"180";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:18:"CISSP<sup>®</sup>";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:68:"https://www.simplilearn.com/ice9/course_images/icons/ITSecCISSP.svgz";s:10:"course_url";s:44:"/cyber-security/cissp-certification-training";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:1:"3";s:18:"primary_label_name";s:14:"Cyber Security";s:12:"cateforyInfo";a:1:{i:3;s:14:"Cyber Security";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+49-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 627 (char 626) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[Y] | 99.06 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x0000027441102EB0> value = 'Y', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/big-data-and-analytics/big-data-and-hadoop-training [32mINFO [0m setup:orders_page.py:30 Country Set to: DE [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'Big Data Hadoop and Spark Developer', 'course_type': 'Online Self Learning', 'base_price': '€ 749.00', 'final_price': '749.00'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 4ad27ad65b55a9debd842d3eafb5ff84803d4569feae6f956d2dc1ed176559e4 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"15";s:4:"name";s:56:"Big Data Hadoop and Spark Developer Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:6:"749.00";s:9:"basePrice";s:8:"749.0000";s:19:"display_total_price";s:6:"749.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"2";s:10:"accessDays";s:3:"180";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:35:"Big Data Hadoop and Spark Developer";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:96:"https://www.simplilearn.com/ice9/course_images/icons/Big-Data_Big-Data-and-Hadoop-Developer.svgz";s:10:"course_url";s:52:"/big-data-and-analytics/big-data-and-hadoop-training";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:2:"35";s:18:"primary_label_name";s:8:"Big Data";s:12:"cateforyInfo";a:2:{i:35;s:8:"Big Data";i:16;s:18:"Big Data Analytics";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+49-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 708 (char 707) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AB] | 97.88 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x000002744110E130> 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("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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/cyber-security/cisa-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: SG [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'CISA®', 'course_type': 'Online Bootcamp', 'base_price': '$ 2,799.00', 'final_price': '3,022.92'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 389a2e37750d5e735471afa4d611195d8658474f5d67602a47e470fbacad862d [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"32";s:4:"name";s:45:"CISA<sup>®</sup> Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"3022.92";s:9:"basePrice";s:9:"2799.0000";s:19:"display_total_price";s:8:"2,799.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:2:"90";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:17:"CISA<sup>®</sup>";s:7:"priceId";s:4:"9122";s:11:"billingType";i:1;s:7:"img_url";s:67:"https://www.simplilearn.com/ice9/course_images/icons/ITSecCISA.svgz";s:10:"course_url";s:43:"/cyber-security/cisa-certification-training";s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:1:"3";s:18:"primary_label_name";s:14:"Cyber Security";s:12:"cateforyInfo";a:1:{i:3;s:14:"Cyber Security";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+65-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 637 (char 636) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AC] | 98.53 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x000002744110E1F0> value = 'AC', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/cyber-security/cissp-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: SG [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'CISSP®', 'course_type': 'Online Self Learning', 'base_price': '$ 2,099.00', 'final_price': '2,266.92'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: d5bd7647f0a071b7cdbf3922759136e994837d2d4adae8141cb0b9f90ab73b9b [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"34";s:4:"name";s:39:"CISSP<sup>®</sup> Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:7:"2266.92";s:9:"basePrice";s:15:"2099.0000000000";s:19:"display_total_price";s:8:"2,099.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"2";s:10:"accessDays";s:3:"180";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:18:"CISSP<sup>®</sup>";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:68:"https://www.simplilearn.com/ice9/course_images/icons/ITSecCISSP.svgz";s:10:"course_url";s:44:"/cyber-security/cissp-certification-training";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:1:"3";s:18:"primary_label_name";s:14:"Cyber Security";s:12:"cateforyInfo";a:1:{i:3;s:14:"Cyber Security";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+65-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 627 (char 626) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AD] | 98.54 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x000002744110E2B0> 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/big-data-and-analytics/big-data-and-hadoop-training [32mINFO [0m setup:orders_page.py:30 Country Set to: SG [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'Big Data Hadoop and Spark Developer', 'course_type': 'Online Self Learning', 'base_price': '$ 748.00', 'final_price': '807.84'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 263686de0676bd198753a1511443d04b7f431094059c7faf51db46d02c1dba03 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"15";s:4:"name";s:56:"Big Data Hadoop and Spark Developer Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:6:"807.84";s:9:"basePrice";s:8:"748.0000";s:19:"display_total_price";s:6:"748.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"2";s:10:"accessDays";s:3:"180";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:35:"Big Data Hadoop and Spark Developer";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:96:"https://www.simplilearn.com/ice9/course_images/icons/Big-Data_Big-Data-and-Hadoop-Developer.svgz";s:10:"course_url";s:52:"/big-data-and-analytics/big-data-and-hadoop-training";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:2:"35";s:18:"primary_label_name";s:8:"Big Data";s:12:"cateforyInfo";a:2:{i:35;s:8:"Big Data";i:16;s:18:"Big Data Analytics";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+65-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 708 (char 707) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AG] | 99.17 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x000002744110E4F0> value = 'AG', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/cyber-security/cisa-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: AE [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'CISA®', 'course_type': 'Online Bootcamp', 'base_price': '$ 2,799.00', 'final_price': '2,799.00'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: b85999f88793de57d617d4ff8ceafe6af3d3ee8090dbe735c9db4017588cab7d [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"32";s:4:"name";s:45:"CISA<sup>®</sup> Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"2799.00";s:9:"basePrice";s:9:"2799.0000";s:19:"display_total_price";s:8:"2,799.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:2:"90";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:17:"CISA<sup>®</sup>";s:7:"priceId";s:4:"9127";s:11:"billingType";i:1;s:7:"img_url";s:67:"https://www.simplilearn.com/ice9/course_images/icons/ITSecCISA.svgz";s:10:"course_url";s:43:"/cyber-security/cisa-certification-training";s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:1:"3";s:18:"primary_label_name";s:14:"Cyber Security";s:12:"cateforyInfo";a:1:{i:3;s:14:"Cyber Security";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+971-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 637 (char 636) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AH] | 99.07 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x000002744110E5B0> value = 'AH', 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/cyber-security/cissp-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: AE [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'CISSP®', 'course_type': 'Online Self Learning', 'base_price': '$ 2,099.00', 'final_price': '2,099.00'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 927913a6a785f778dfb5d3505119d1bf4339c6000ce4a4999e95b7574dc6a99a [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"34";s:4:"name";s:39:"CISSP<sup>®</sup> Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:7:"2099.00";s:9:"basePrice";s:15:"2099.0000000000";s:19:"display_total_price";s:8:"2,099.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"2";s:10:"accessDays";s:3:"180";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:18:"CISSP<sup>®</sup>";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:68:"https://www.simplilearn.com/ice9/course_images/icons/ITSecCISSP.svgz";s:10:"course_url";s:44:"/cyber-security/cissp-certification-training";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:1:"3";s:18:"primary_label_name";s:14:"Cyber Security";s:12:"cateforyInfo";a:1:{i:3;s:14:"Cyber Security";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+971-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 627 (char 626) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AI] | 98.99 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x000002744110E670> 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() 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['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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:190: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/big-data-and-analytics/big-data-and-hadoop-training [32mINFO [0m setup:orders_page.py:30 Country Set to: AE [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'Big Data Hadoop and Spark Developer', 'course_type': 'Online Self Learning', 'base_price': '$ 749.00', 'final_price': '749.00'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: de09758de34d5eec02a0748f8b390e1bfb6d57e59fdd0909d51b55853ec41473 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:24:{s:2:"id";s:2:"15";s:4:"name";s:56:"Big Data Hadoop and Spark Developer Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:6:"749.00";s:9:"basePrice";s:8:"749.0000";s:19:"display_total_price";s:6:"749.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"2";s:10:"accessDays";s:3:"180";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:35:"Big Data Hadoop and Spark Developer";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:96:"https://www.simplilearn.com/ice9/course_images/icons/Big-Data_Big-Data-and-Hadoop-Developer.svgz";s:10:"course_url";s:52:"/big-data-and-analytics/big-data-and-hadoop-training";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:2:"35";s:18:"primary_label_name";s:8:"Big Data";s:12:"cateforyInfo";a:2:{i:35;s:8:"Big Data";i:16;s:18:"Big Data Analytics";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+971-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:168 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 133, in test_Orders_and_Payment_Flow_certification sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 266, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 708 (char 707) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[A] | 104.19 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744110ECA0>, value = 'A' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed ------------------------------Captured stderr call------------------------------ --- Logging error --- Traceback (most recent call last): File "c:\users\qateam\appdata\local\programs\python\python38\lib\logging\__init__.py", line 1084, in emit stream.write(msg + self.terminator) File "c:\users\qateam\appdata\local\programs\python\python38\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode character '\u20b9' in position 160: character maps to <undefined> Call stack: File "c:\users\qateam\appdata\local\programs\python\python38\lib\runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "c:\users\qateam\appdata\local\programs\python\python38\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "C:\Users\qateam\AppData\Local\Programs\Python\Python38\Scripts\pytest.exe\__main__.py", line 7, in <module> sys.exit(console_main()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\config\__init__.py", line 190, in console_main code = main() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\config\__init__.py", line 167, in main ret: Union[ExitCode, int] = config.hook.pytest_cmdline_main( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 317, in pytest_cmdline_main return wrap_session(config, _main) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 270, in wrap_session session.exitstatus = doit(config, session) or 0 File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 324, in _main config.hook.pytest_runtestloop(session=session) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 349, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 112, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 131, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 220, in call_and_report call = call_runtest_hook(item, when, **kwds) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 259, in call_runtest_hook return CallInfo.from_call( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 339, in from_call result: Optional[TResult] = func() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 260, in <lambda> lambda: ihook(item=item, **kwds), when=when, reraise=reraise File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 167, in pytest_runtest_call item.runtest() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\python.py", line 1789, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\python.py", line 195, in pytest_pyfunc_call result = testfunction(**testargs) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 488, in test_Orders_and_Payment_Flow_masters_program logging.info(f"course_data: {course_data}") Message: "course_data: ({'course_name': 'Full Stack Web Developer - MEAN Stack', 'course_type': 'Online Bootcamp', 'base_price': '₹ 45,762.00', 'final_price': '53,999.16'}, (['Credit Card', 'Debit Card', 'Net Banking', 'UPI', 'EMI', 'ShopSe EMI', 'CCAvenue'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'debitcard': 'All option clickable and Payment CTA appearing '}, {'net_banking': 'All option clickable and Payment CTA appearing '}, {'UPI': 'All option clickable and Payment CTA appearing '}, {'EMI': 'All option clickable and Payment CTA appearing '}, {'CCAvenue': 'All option clickable and Payment CTA appearing '}, {'ShopSE EMI': 'All option clickable and Payment CTA appearing '}]))" Arguments: () -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/full-stack-web-developer-mean-stack-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: IN [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:345 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Full Stack Web Developer - MEAN Stack', 'course_type': 'Online Bootcamp', 'base_price': '₹ 45,762.00', 'final_price': '53,999.16'}, (['Credit Card', 'Debit Card', 'Net Banking', 'UPI', 'EMI', 'ShopSe EMI', 'CCAvenue'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'debitcard': 'All option clickable and Payment CTA appearing '}, {'net_banking': 'All option clickable and Payment CTA appearing '}, {'UPI': 'All option clickable and Payment CTA appearing '}, {'EMI': 'All option clickable and Payment CTA appearing '}, {'CCAvenue': 'All option clickable and Payment CTA appearing '}, {'ShopSE EMI': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: 83abfd04c4438d728172feaea84841d6edfa383a4f71e3c5913fa80b5d199893 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:34:{s:2:"id";s:3:"105";s:4:"name";s:65:"Full Stack Web Developer - MEAN Stack Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:8:"53999.16";s:9:"basePrice";s:5:"45762";s:19:"display_total_price";s:9:"45,762.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:37:"Full Stack Web Developer - MEAN Stack";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:83:"https://www.simplilearn.com/ice9/course_images/bundle313x225/mean-stack-master.svgz";s:10:"course_url";N;s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:8:"cohortId";s:24:"63c2d0492b22261dd54ecdd1";s:14:"welcomeClassId";s:24:"63c2d0ff2b22261dd54ecddb";s:10:"cohortName";s:25:"MS MEAN JUN 2023 Cohort 1";s:21:"welcomeClassStartDate";i:1684348200;s:15:"cohortStartDate";i:1685799000;s:13:"cohortEndDate";i:1698514200;s:25:"welcomeClassStartDateUser";i:1684418400;s:19:"cohortStartDateUser";i:1685867400;s:17:"cohortEndDateUser";i:1698597000;s:16:"primary_label_id";s:2:"25";s:18:"primary_label_name";s:20:"Software Development";s:12:"cateforyInfo";a:1:{i:25;s:20:"Software Development";}s:15:"program_version";i:1;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+91-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 924 (char 923) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[B] | 105.24 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744110ED60>, value = 'B' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed ------------------------------Captured stderr call------------------------------ --- Logging error --- Traceback (most recent call last): File "c:\users\qateam\appdata\local\programs\python\python38\lib\logging\__init__.py", line 1084, in emit stream.write(msg + self.terminator) File "c:\users\qateam\appdata\local\programs\python\python38\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode character '\u20b9' in position 157: character maps to <undefined> Call stack: File "c:\users\qateam\appdata\local\programs\python\python38\lib\runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "c:\users\qateam\appdata\local\programs\python\python38\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "C:\Users\qateam\AppData\Local\Programs\Python\Python38\Scripts\pytest.exe\__main__.py", line 7, in <module> sys.exit(console_main()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\config\__init__.py", line 190, in console_main code = main() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\config\__init__.py", line 167, in main ret: Union[ExitCode, int] = config.hook.pytest_cmdline_main( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 317, in pytest_cmdline_main return wrap_session(config, _main) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 270, in wrap_session session.exitstatus = doit(config, session) or 0 File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 324, in _main config.hook.pytest_runtestloop(session=session) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 349, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 112, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 131, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 220, in call_and_report call = call_runtest_hook(item, when, **kwds) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 259, in call_runtest_hook return CallInfo.from_call( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 339, in from_call result: Optional[TResult] = func() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 260, in <lambda> lambda: ihook(item=item, **kwds), when=when, reraise=reraise File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 167, in pytest_runtest_call item.runtest() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\python.py", line 1789, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\python.py", line 195, in pytest_pyfunc_call result = testfunction(**testargs) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 488, in test_Orders_and_Payment_Flow_masters_program logging.info(f"course_data: {course_data}") Message: "course_data: ({'course_name': 'Automation Testing Masters Program', 'course_type': 'Online Bootcamp', 'base_price': '₹ 45,762.00', 'final_price': '53,999.16'}, (['Credit Card', 'Debit Card', 'Net Banking', 'UPI', 'EMI', 'ShopSe EMI', 'CCAvenue'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'debitcard': 'All option clickable and Payment CTA appearing '}, {'net_banking': 'All option clickable and Payment CTA appearing '}, {'UPI': 'All option clickable and Payment CTA appearing '}, {'EMI': 'All option clickable and Payment CTA appearing '}, {'CCAvenue': 'All option clickable and Payment CTA appearing '}, {'ShopSE EMI': 'All option clickable and Payment CTA appearing '}]))" Arguments: () -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/automation-testing-masters-program-certification-training-course [32mINFO [0m setup:orders_page.py:30 Country Set to: IN [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:345 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Automation Testing Masters Program', 'course_type': 'Online Bootcamp', 'base_price': '₹ 45,762.00', 'final_price': '53,999.16'}, (['Credit Card', 'Debit Card', 'Net Banking', 'UPI', 'EMI', 'ShopSe EMI', 'CCAvenue'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'debitcard': 'All option clickable and Payment CTA appearing '}, {'net_banking': 'All option clickable and Payment CTA appearing '}, {'UPI': 'All option clickable and Payment CTA appearing '}, {'EMI': 'All option clickable and Payment CTA appearing '}, {'CCAvenue': 'All option clickable and Payment CTA appearing '}, {'ShopSE EMI': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: 96178b5d7a8757443c869895bb568960d5c7583ad8e692282f8d90dbf93af2ea [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:34:{s:2:"id";s:3:"112";s:4:"name";s:62:"Automation Testing Masters Program Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:8:"53999.16";s:9:"basePrice";s:5:"45762";s:19:"display_total_price";s:9:"45,762.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:34:"Automation Testing Masters Program";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:105:"https://www.simplilearn.com/ice9/course_images/bundle313x225/Automation-Testing-Masters-Program-icon.svgz";s:10:"course_url";N;s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:8:"cohortId";s:24:"641c32c32d85af2fc6b0a0ff";s:14:"welcomeClassId";s:24:"64478777ffb4bf3181a326a0";s:10:"cohortName";s:24:"MS ATE MAY 2023 Cohort 1";s:21:"welcomeClassStartDate";i:1683657000;s:15:"cohortStartDate";i:1683984600;s:13:"cohortEndDate";i:1698773400;s:25:"welcomeClassStartDateUser";i:1683725400;s:19:"cohortStartDateUser";i:1684053000;s:17:"cohortEndDateUser";i:1698856200;s:16:"primary_label_id";s:2:"25";s:18:"primary_label_name";s:20:"Software Development";s:12:"cateforyInfo";a:1:{i:25;s:20:"Software Development";}s:15:"program_version";i:2;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+91-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 939 (char 938) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[D] | 62.58 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744110EEE0>, value = 'D' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed ------------------------------Captured stderr call------------------------------ --- Logging error --- Traceback (most recent call last): File "c:\users\qateam\appdata\local\programs\python\python38\lib\logging\__init__.py", line 1084, in emit stream.write(msg + self.terminator) File "c:\users\qateam\appdata\local\programs\python\python38\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode character '\u20b9' in position 151: character maps to <undefined> Call stack: File "c:\users\qateam\appdata\local\programs\python\python38\lib\runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "c:\users\qateam\appdata\local\programs\python\python38\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "C:\Users\qateam\AppData\Local\Programs\Python\Python38\Scripts\pytest.exe\__main__.py", line 7, in <module> sys.exit(console_main()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\config\__init__.py", line 190, in console_main code = main() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\config\__init__.py", line 167, in main ret: Union[ExitCode, int] = config.hook.pytest_cmdline_main( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 317, in pytest_cmdline_main return wrap_session(config, _main) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 270, in wrap_session session.exitstatus = doit(config, session) or 0 File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 324, in _main config.hook.pytest_runtestloop(session=session) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 349, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 112, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 131, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 220, in call_and_report call = call_runtest_hook(item, when, **kwds) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 259, in call_runtest_hook return CallInfo.from_call( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 339, in from_call result: Optional[TResult] = func() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 260, in <lambda> lambda: ihook(item=item, **kwds), when=when, reraise=reraise File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 167, in pytest_runtest_call item.runtest() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\python.py", line 1789, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\python.py", line 195, in pytest_pyfunc_call result = testfunction(**testargs) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 488, in test_Orders_and_Payment_Flow_masters_program logging.info(f"course_data: {course_data}") Message: "course_data: ({'course_name': 'Digital Marketing Specialist', 'course_type': 'Online Bootcamp', 'base_price': '₹ 54,407.00', 'final_price': '64,200.26'}, (['Credit Card', 'Debit Card', 'Net Banking', 'UPI', 'EMI', 'ShopSe EMI', 'CCAvenue'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'debitcard': 'All option clickable and Payment CTA appearing '}, {'net_banking': 'All option clickable and Payment CTA appearing '}, {'UPI': 'All option clickable and Payment CTA appearing '}, {'EMI': 'All option clickable and Payment CTA appearing '}, {'CCAvenue': 'All option clickable and Payment CTA appearing '}, {'ShopSE EMI': 'All option clickable and Payment CTA appearing '}]))" Arguments: () -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/advanced-digital-marketing-certification-training-course [32mINFO [0m setup:orders_page.py:30 Country Set to: IN [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:345 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Digital Marketing Specialist', 'course_type': 'Online Bootcamp', 'base_price': '₹ 54,407.00', 'final_price': '64,200.26'}, (['Credit Card', 'Debit Card', 'Net Banking', 'UPI', 'EMI', 'ShopSe EMI', 'CCAvenue'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'debitcard': 'All option clickable and Payment CTA appearing '}, {'net_banking': 'All option clickable and Payment CTA appearing '}, {'UPI': 'All option clickable and Payment CTA appearing '}, {'EMI': 'All option clickable and Payment CTA appearing '}, {'CCAvenue': 'All option clickable and Payment CTA appearing '}, {'ShopSE EMI': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: 3b318c008ebed1a353fe2e852f00c61eb99d49dcdd0abbadcbecaa8d8e266f08 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:25:{s:2:"id";s:2:"23";s:4:"name";s:49:"Digital Marketing Specialist Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:8:"64200.26";s:9:"basePrice";s:5:"54407";s:19:"display_total_price";s:9:"54,407.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:28:"Digital Marketing Specialist";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:88:"https://www.simplilearn.com/ice9/course_images/bundle313x225/Digital-marketing-head.svgz";s:10:"course_url";s:57:"/advanced-digital-marketing-certification-training-course";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:2:"18";s:18:"primary_label_name";s:17:"Digital Marketing";s:12:"cateforyInfo";a:1:{i:18;s:17:"Digital Marketing";}s:15:"program_version";i:3;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+91-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 702 (char 701) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[E] | 109.72 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744110EFA0>, value = 'E' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/full-stack-web-developer-mean-stack-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: US [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Full Stack Web Developer - MEAN Stack', 'course_type': 'Online Bootcamp', 'base_price': '$ 1,499.00', 'final_price': '1,499.00'}, (['Credit Card', 'PayPal', 'Affirm', 'Klarna'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'Affirm': 'All option clickable and Payment CTA appearing '}, {'klarna': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: 3283e5c30937bef6be255732b3f61a540e1b96982f4f3dccb6175f27bb30b295 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:34:{s:2:"id";s:3:"105";s:4:"name";s:65:"Full Stack Web Developer - MEAN Stack Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1499.00";s:9:"basePrice";s:4:"1499";s:19:"display_total_price";s:8:"1,499.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:37:"Full Stack Web Developer - MEAN Stack";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:83:"https://www.simplilearn.com/ice9/course_images/bundle313x225/mean-stack-master.svgz";s:10:"course_url";N;s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:8:"cohortId";s:24:"6439410c9983df7081eafceb";s:14:"welcomeClassId";s:24:"643941e0ffb4bf3181906fbe";s:10:"cohortName";s:25:"MS MEAN SEP 2023 Cohort 1";s:21:"welcomeClassStartDate";i:1686681000;s:15:"cohortStartDate";i:1693661400;s:13:"cohortEndDate";i:1708277400;s:25:"welcomeClassStartDateUser";i:1686713400;s:19:"cohortStartDateUser";i:1693692000;s:17:"cohortEndDateUser";i:1708318800;s:16:"primary_label_id";s:2:"25";s:18:"primary_label_name";s:20:"Software Development";s:12:"cateforyInfo";a:1:{i:25;s:20:"Software Development";}s:15:"program_version";i:1;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+1-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 921 (char 920) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[F] | 109.96 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744111D0A0>, value = 'F' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/automation-testing-masters-program-certification-training-course [32mINFO [0m setup:orders_page.py:30 Country Set to: US [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Automation Testing Masters Program', 'course_type': 'Online Bootcamp', 'base_price': '$ 1,499.00', 'final_price': '1,499.00'}, (['Credit Card', 'PayPal', 'Affirm', 'Klarna'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'Affirm': 'All option clickable and Payment CTA appearing '}, {'klarna': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: 66dfceb8b81d494e2c1363584ad0352dfccd2c00f19aa09fbf74ac5497eae305 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:34:{s:2:"id";s:3:"112";s:4:"name";s:62:"Automation Testing Masters Program Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1499.00";s:9:"basePrice";s:4:"1499";s:19:"display_total_price";s:8:"1,499.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:34:"Automation Testing Masters Program";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:105:"https://www.simplilearn.com/ice9/course_images/bundle313x225/Automation-Testing-Masters-Program-icon.svgz";s:10:"course_url";N;s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:8:"cohortId";s:24:"641c32c32d85af2fc6b0a0ff";s:14:"welcomeClassId";s:24:"64478777ffb4bf3181a326a0";s:10:"cohortName";s:24:"MS ATE MAY 2023 Cohort 1";s:21:"welcomeClassStartDate";i:1683657000;s:15:"cohortStartDate";i:1683984600;s:13:"cohortEndDate";i:1698773400;s:25:"welcomeClassStartDateUser";i:1683687600;s:19:"cohortStartDateUser";i:1684015200;s:17:"cohortEndDateUser";i:1698818400;s:16:"primary_label_id";s:2:"25";s:18:"primary_label_name";s:20:"Software Development";s:12:"cateforyInfo";a:1:{i:25;s:20:"Software Development";}s:15:"program_version";i:2;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+1-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 936 (char 935) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[H] | 68.23 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744111D220>, value = 'H' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/advanced-digital-marketing-certification-training-course [32mINFO [0m setup:orders_page.py:30 Country Set to: US [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Digital Marketing Specialist', 'course_type': 'Online Bootcamp', 'base_price': '$ 1,649.00', 'final_price': '1,649.00'}, (['Credit Card', 'PayPal', 'Affirm', 'Klarna'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'Affirm': 'All option clickable and Payment CTA appearing '}, {'klarna': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: 385b953b4358fa4a85e0cb1ea217d0281429b96fc4e62d8d1e591c452d9056e7 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:25:{s:2:"id";s:2:"23";s:4:"name";s:49:"Digital Marketing Specialist Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1649.00";s:9:"basePrice";s:4:"1649";s:19:"display_total_price";s:8:"1,649.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:28:"Digital Marketing Specialist";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:88:"https://www.simplilearn.com/ice9/course_images/bundle313x225/Digital-marketing-head.svgz";s:10:"course_url";s:57:"/advanced-digital-marketing-certification-training-course";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:2:"18";s:18:"primary_label_name";s:17:"Digital Marketing";s:12:"cateforyInfo";a:1:{i:18;s:17:"Digital Marketing";}s:15:"program_version";i:3;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+1-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 699 (char 698) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[I] | 141.26 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744111D2E0>, value = 'I' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/full-stack-web-developer-mean-stack-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: GB [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Full Stack Web Developer - MEAN Stack', 'course_type': 'Online Bootcamp', 'base_price': '£ 1,390.00', 'final_price': '1,390.00'}, (['Credit Card', 'PayPal'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: 74aa870139a5ca293c31380bd65c1d4d1df173aa281604d6f880d353336092bc [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:34:{s:2:"id";s:3:"105";s:4:"name";s:65:"Full Stack Web Developer - MEAN Stack Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1390.00";s:9:"basePrice";s:4:"1390";s:19:"display_total_price";s:8:"1,390.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:37:"Full Stack Web Developer - MEAN Stack";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:83:"https://www.simplilearn.com/ice9/course_images/bundle313x225/mean-stack-master.svgz";s:10:"course_url";N;s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:8:"cohortId";s:24:"6439410c9983df7081eafceb";s:14:"welcomeClassId";s:24:"643941e0ffb4bf3181906fbe";s:10:"cohortName";s:25:"MS MEAN SEP 2023 Cohort 1";s:21:"welcomeClassStartDate";i:1686681000;s:15:"cohortStartDate";i:1693661400;s:13:"cohortEndDate";i:1708277400;s:25:"welcomeClassStartDateUser";i:1686735000;s:19:"cohortStartDateUser";i:1693713600;s:17:"cohortEndDateUser";i:1708340400;s:16:"primary_label_id";s:2:"25";s:18:"primary_label_name";s:20:"Software Development";s:12:"cateforyInfo";a:1:{i:25;s:20:"Software Development";}s:15:"program_version";i:1;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+1-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 921 (char 920) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[J] | 142.43 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744111D3A0>, value = 'J' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/automation-testing-masters-program-certification-training-course [32mINFO [0m setup:orders_page.py:30 Country Set to: GB [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Automation Testing Masters Program', 'course_type': 'Online Bootcamp', 'base_price': '£ 1,099.00', 'final_price': '1,099.00'}, (['Credit Card', 'PayPal'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: 7c8414dd3347f823a8ba763cb4af64021599124f07565d533c9ff84b1c4477f3 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:34:{s:2:"id";s:3:"112";s:4:"name";s:62:"Automation Testing Masters Program Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1099.00";s:9:"basePrice";s:4:"1099";s:19:"display_total_price";s:8:"1,099.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:34:"Automation Testing Masters Program";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:105:"https://www.simplilearn.com/ice9/course_images/bundle313x225/Automation-Testing-Masters-Program-icon.svgz";s:10:"course_url";N;s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:8:"cohortId";s:24:"641c32c32d85af2fc6b0a0ff";s:14:"welcomeClassId";s:24:"64478777ffb4bf3181a326a0";s:10:"cohortName";s:24:"MS ATE MAY 2023 Cohort 1";s:21:"welcomeClassStartDate";i:1683657000;s:15:"cohortStartDate";i:1683984600;s:13:"cohortEndDate";i:1698773400;s:25:"welcomeClassStartDateUser";i:1683709200;s:19:"cohortStartDateUser";i:1684036800;s:17:"cohortEndDateUser";i:1698836400;s:16:"primary_label_id";s:2:"25";s:18:"primary_label_name";s:20:"Software Development";s:12:"cateforyInfo";a:1:{i:25;s:20:"Software Development";}s:15:"program_version";i:2;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+44-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 936 (char 935) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[L] | 100.69 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744111D520>, value = 'L' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/advanced-digital-marketing-certification-training-course [32mINFO [0m setup:orders_page.py:30 Country Set to: GB [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Digital Marketing Specialist', 'course_type': 'Online Bootcamp', 'base_price': '£ 1,049.00', 'final_price': '1,049.00'}, (['Credit Card', 'PayPal'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: 7f8c68b2c721d4cacb2224e95d570c61aaeb5f2771f3770dc044461aaa36c1fb [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:25:{s:2:"id";s:2:"23";s:4:"name";s:49:"Digital Marketing Specialist Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1049.00";s:9:"basePrice";s:4:"1049";s:19:"display_total_price";s:8:"1,049.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:28:"Digital Marketing Specialist";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:88:"https://www.simplilearn.com/ice9/course_images/bundle313x225/Digital-marketing-head.svgz";s:10:"course_url";s:57:"/advanced-digital-marketing-certification-training-course";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:2:"18";s:18:"primary_label_name";s:17:"Digital Marketing";s:12:"cateforyInfo";a:1:{i:18;s:17:"Digital Marketing";}s:15:"program_version";i:3;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+44-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 699 (char 698) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[M] | 143.22 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744111D5E0>, value = 'M' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/full-stack-web-developer-mean-stack-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: AU [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Full Stack Web Developer - MEAN Stack', 'course_type': 'Online Bootcamp', 'base_price': 'A$ 1,605.00', 'final_price': '1,605.00'}, (['Credit Card', 'PayPal'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: ac8430f15a732cf7489004b766637226c6b1d10a22365c4ecd6456c774005ea2 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:34:{s:2:"id";s:3:"105";s:4:"name";s:65:"Full Stack Web Developer - MEAN Stack Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1605.00";s:9:"basePrice";s:4:"1605";s:19:"display_total_price";s:8:"1,605.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:37:"Full Stack Web Developer - MEAN Stack";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:83:"https://www.simplilearn.com/ice9/course_images/bundle313x225/mean-stack-master.svgz";s:10:"course_url";N;s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:8:"cohortId";s:24:"6439410c9983df7081eafceb";s:14:"welcomeClassId";s:24:"643941e0ffb4bf3181906fbe";s:10:"cohortName";s:25:"MS MEAN SEP 2023 Cohort 1";s:21:"welcomeClassStartDate";i:1686681000;s:15:"cohortStartDate";i:1693661400;s:13:"cohortEndDate";i:1708277400;s:25:"welcomeClassStartDateUser";i:1686767400;s:19:"cohortStartDateUser";i:1693746000;s:17:"cohortEndDateUser";i:1708380000;s:16:"primary_label_id";s:2:"25";s:18:"primary_label_name";s:20:"Software Development";s:12:"cateforyInfo";a:1:{i:25;s:20:"Software Development";}s:15:"program_version";i:1;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+61-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 921 (char 920) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[N] | 142.46 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744111D6A0>, value = 'N' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/automation-testing-masters-program-certification-training-course [32mINFO [0m setup:orders_page.py:30 Country Set to: AU [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Automation Testing Masters Program', 'course_type': 'Online Bootcamp', 'base_price': 'A$ 1,649.00', 'final_price': '1,649.00'}, (['Credit Card', 'PayPal'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: bf2a853f2cf23eaa20323b48017488ae00dce108c300820373c419b76b14eaa9 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:34:{s:2:"id";s:3:"112";s:4:"name";s:62:"Automation Testing Masters Program Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1649.00";s:9:"basePrice";s:4:"1649";s:19:"display_total_price";s:8:"1,649.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:34:"Automation Testing Masters Program";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:105:"https://www.simplilearn.com/ice9/course_images/bundle313x225/Automation-Testing-Masters-Program-icon.svgz";s:10:"course_url";N;s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:8:"cohortId";s:24:"641c32c32d85af2fc6b0a0ff";s:14:"welcomeClassId";s:24:"64478777ffb4bf3181a326a0";s:10:"cohortName";s:24:"MS ATE MAY 2023 Cohort 1";s:21:"welcomeClassStartDate";i:1683657000;s:15:"cohortStartDate";i:1683984600;s:13:"cohortEndDate";i:1698773400;s:25:"welcomeClassStartDateUser";i:1683741600;s:19:"cohortStartDateUser";i:1684069200;s:17:"cohortEndDateUser";i:1698876000;s:16:"primary_label_id";s:2:"25";s:18:"primary_label_name";s:20:"Software Development";s:12:"cateforyInfo";a:1:{i:25;s:20:"Software Development";}s:15:"program_version";i:2;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+61-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 936 (char 935) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[P] | 100.77 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744111D820>, value = 'P' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/advanced-digital-marketing-certification-training-course [32mINFO [0m setup:orders_page.py:30 Country Set to: AU [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Digital Marketing Specialist', 'course_type': 'Online Bootcamp', 'base_price': 'A$ 1,399.00', 'final_price': '1,399.00'}, (['Credit Card', 'PayPal'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: 87429a5d912025043824b44307d4168d0b83f61ef9269a763046543538f1e8a2 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:25:{s:2:"id";s:2:"23";s:4:"name";s:49:"Digital Marketing Specialist Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1399.00";s:9:"basePrice";s:4:"1399";s:19:"display_total_price";s:8:"1,399.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:28:"Digital Marketing Specialist";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:88:"https://www.simplilearn.com/ice9/course_images/bundle313x225/Digital-marketing-head.svgz";s:10:"course_url";s:57:"/advanced-digital-marketing-certification-training-course";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:2:"18";s:18:"primary_label_name";s:17:"Digital Marketing";s:12:"cateforyInfo";a:1:{i:18;s:17:"Digital Marketing";}s:15:"program_version";i:3;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+61-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 699 (char 698) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[Q] | 141.42 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744111D8E0>, value = 'Q' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/full-stack-web-developer-mean-stack-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: DE [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Full Stack Web Developer - MEAN Stack', 'course_type': 'Online Bootcamp', 'base_price': '€ 1,390.00', 'final_price': '1,390.00'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: 09a348580c13ccdc7c40476f9e00b63751322bfaab8dfdccec05d144da1d91a4 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:34:{s:2:"id";s:3:"105";s:4:"name";s:65:"Full Stack Web Developer - MEAN Stack Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1390.00";s:9:"basePrice";s:4:"1390";s:19:"display_total_price";s:8:"1,390.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:37:"Full Stack Web Developer - MEAN Stack";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:83:"https://www.simplilearn.com/ice9/course_images/bundle313x225/mean-stack-master.svgz";s:10:"course_url";N;s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:8:"cohortId";s:24:"6439410c9983df7081eafceb";s:14:"welcomeClassId";s:24:"643941e0ffb4bf3181906fbe";s:10:"cohortName";s:25:"MS MEAN SEP 2023 Cohort 1";s:21:"welcomeClassStartDate";i:1686681000;s:15:"cohortStartDate";i:1693661400;s:13:"cohortEndDate";i:1708277400;s:25:"welcomeClassStartDateUser";i:1686738600;s:19:"cohortStartDateUser";i:1693717200;s:17:"cohortEndDateUser";i:1708344000;s:16:"primary_label_id";s:2:"25";s:18:"primary_label_name";s:20:"Software Development";s:12:"cateforyInfo";a:1:{i:25;s:20:"Software Development";}s:15:"program_version";i:1;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+61-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 921 (char 920) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[R] | 140.73 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744111D9A0>, value = 'R' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/automation-testing-masters-program-certification-training-course [32mINFO [0m setup:orders_page.py:30 Country Set to: DE [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Automation Testing Masters Program', 'course_type': 'Online Bootcamp', 'base_price': '€ 1,099.00', 'final_price': '1,099.00'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: 7e79903e695094882c733b57d847f67154a5b480fed6cd4c105a6c3daeac754e [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:34:{s:2:"id";s:3:"112";s:4:"name";s:62:"Automation Testing Masters Program Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1099.00";s:9:"basePrice";s:4:"1099";s:19:"display_total_price";s:8:"1,099.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:34:"Automation Testing Masters Program";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:105:"https://www.simplilearn.com/ice9/course_images/bundle313x225/Automation-Testing-Masters-Program-icon.svgz";s:10:"course_url";N;s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:8:"cohortId";s:24:"641c32c32d85af2fc6b0a0ff";s:14:"welcomeClassId";s:24:"64478777ffb4bf3181a326a0";s:10:"cohortName";s:24:"MS ATE MAY 2023 Cohort 1";s:21:"welcomeClassStartDate";i:1683657000;s:15:"cohortStartDate";i:1683984600;s:13:"cohortEndDate";i:1698773400;s:25:"welcomeClassStartDateUser";i:1683712800;s:19:"cohortStartDateUser";i:1684040400;s:17:"cohortEndDateUser";i:1698840000;s:16:"primary_label_id";s:2:"25";s:18:"primary_label_name";s:20:"Software Development";s:12:"cateforyInfo";a:1:{i:25;s:20:"Software Development";}s:15:"program_version";i:2;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+61-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 936 (char 935) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[T] | 99.88 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744111DB20>, value = 'T' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/advanced-digital-marketing-certification-training-course [32mINFO [0m setup:orders_page.py:30 Country Set to: DE [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Digital Marketing Specialist', 'course_type': 'Online Bootcamp', 'base_price': '€ 1,049.00', 'final_price': '1,049.00'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: 0aa52eb3a8763d5970f36db0fd5439f393fadb05748cc9d0f9a3ffc4eea2e724 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:25:{s:2:"id";s:2:"23";s:4:"name";s:49:"Digital Marketing Specialist Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1049.00";s:9:"basePrice";s:4:"1049";s:19:"display_total_price";s:8:"1,049.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:28:"Digital Marketing Specialist";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:88:"https://www.simplilearn.com/ice9/course_images/bundle313x225/Digital-marketing-head.svgz";s:10:"course_url";s:57:"/advanced-digital-marketing-certification-training-course";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:2:"18";s:18:"primary_label_name";s:17:"Digital Marketing";s:12:"cateforyInfo";a:1:{i:18;s:17:"Digital Marketing";}s:15:"program_version";i:3;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+49-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 699 (char 698) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[U] | 141.93 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744111DBE0>, value = 'U' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/full-stack-web-developer-mean-stack-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: SG [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Full Stack Web Developer - MEAN Stack', 'course_type': 'Online Bootcamp', 'base_price': '$ 1,390.00', 'final_price': '1,501.20'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: f00e42878bdaaef13aebcf8e021738abbffa206e0adc6eea0fe67169b251b652 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:34:{s:2:"id";s:3:"105";s:4:"name";s:65:"Full Stack Web Developer - MEAN Stack Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1501.20";s:9:"basePrice";s:4:"1390";s:19:"display_total_price";s:8:"1,390.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:37:"Full Stack Web Developer - MEAN Stack";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:83:"https://www.simplilearn.com/ice9/course_images/bundle313x225/mean-stack-master.svgz";s:10:"course_url";N;s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:8:"cohortId";s:24:"6439410c9983df7081eafceb";s:14:"welcomeClassId";s:24:"643941e0ffb4bf3181906fbe";s:10:"cohortName";s:25:"MS MEAN SEP 2023 Cohort 1";s:21:"welcomeClassStartDate";i:1686681000;s:15:"cohortStartDate";i:1693661400;s:13:"cohortEndDate";i:1708277400;s:25:"welcomeClassStartDateUser";i:1686760200;s:19:"cohortStartDateUser";i:1693738800;s:17:"cohortEndDateUser";i:1708369200;s:16:"primary_label_id";s:2:"25";s:18:"primary_label_name";s:20:"Software Development";s:12:"cateforyInfo";a:1:{i:25;s:20:"Software Development";}s:15:"program_version";i:1;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+65-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 921 (char 920) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[V] | 141.67 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744110E820>, value = 'V' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/automation-testing-masters-program-certification-training-course [32mINFO [0m setup:orders_page.py:30 Country Set to: SG [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Automation Testing Masters Program', 'course_type': 'Online Bootcamp', 'base_price': '$ 1,099.00', 'final_price': '1,186.92'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: 15dff9c2504f1c10eb5a37fc9f9b40a376212827da6a49e4a8c2a74757adf4c5 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:34:{s:2:"id";s:3:"112";s:4:"name";s:62:"Automation Testing Masters Program Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1186.92";s:9:"basePrice";s:4:"1099";s:19:"display_total_price";s:8:"1,099.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:34:"Automation Testing Masters Program";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:105:"https://www.simplilearn.com/ice9/course_images/bundle313x225/Automation-Testing-Masters-Program-icon.svgz";s:10:"course_url";N;s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:8:"cohortId";s:24:"641c32c32d85af2fc6b0a0ff";s:14:"welcomeClassId";s:24:"64478777ffb4bf3181a326a0";s:10:"cohortName";s:24:"MS ATE MAY 2023 Cohort 1";s:21:"welcomeClassStartDate";i:1683657000;s:15:"cohortStartDate";i:1683984600;s:13:"cohortEndDate";i:1698773400;s:25:"welcomeClassStartDateUser";i:1683734400;s:19:"cohortStartDateUser";i:1684062000;s:17:"cohortEndDateUser";i:1698865200;s:16:"primary_label_id";s:2:"25";s:18:"primary_label_name";s:20:"Software Development";s:12:"cateforyInfo";a:1:{i:25;s:20:"Software Development";}s:15:"program_version";i:2;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+65-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 936 (char 935) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[X] | 100.53 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744111DD90>, 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/advanced-digital-marketing-certification-training-course [32mINFO [0m setup:orders_page.py:30 Country Set to: AE [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Digital Marketing Specialist', 'course_type': 'Online Bootcamp', 'base_price': '$ 1,049.00', 'final_price': '1,049.00'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: 964235c070fd20061f51b5ac4dd9a482f61ee9108ce1b8e199126cb918c48ba4 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:25:{s:2:"id";s:2:"23";s:4:"name";s:49:"Digital Marketing Specialist Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1049.00";s:9:"basePrice";s:4:"1049";s:19:"display_total_price";s:8:"1,049.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:28:"Digital Marketing Specialist";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:88:"https://www.simplilearn.com/ice9/course_images/bundle313x225/Digital-marketing-head.svgz";s:10:"course_url";s:57:"/advanced-digital-marketing-certification-training-course";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:2:"18";s:18:"primary_label_name";s:17:"Digital Marketing";s:12:"cateforyInfo";a:1:{i:18;s:17:"Digital Marketing";}s:15:"program_version";i:3;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+65-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 699 (char 698) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[Y] | 141.63 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744111DE50>, value = 'Y' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/full-stack-web-developer-mean-stack-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: AE [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Full Stack Web Developer - MEAN Stack', 'course_type': 'Online Bootcamp', 'base_price': '$ 1,390.00', 'final_price': '1,390.00'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: c44ce55a8ad60e9fe4c07e2c6768b68d4d679bef39a5bd85c670a816470daa34 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:34:{s:2:"id";s:3:"105";s:4:"name";s:65:"Full Stack Web Developer - MEAN Stack Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1390.00";s:9:"basePrice";s:4:"1390";s:19:"display_total_price";s:8:"1,390.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:37:"Full Stack Web Developer - MEAN Stack";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:83:"https://www.simplilearn.com/ice9/course_images/bundle313x225/mean-stack-master.svgz";s:10:"course_url";N;s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:8:"cohortId";s:24:"6439410c9983df7081eafceb";s:14:"welcomeClassId";s:24:"643941e0ffb4bf3181906fbe";s:10:"cohortName";s:25:"MS MEAN SEP 2023 Cohort 1";s:21:"welcomeClassStartDate";i:1686681000;s:15:"cohortStartDate";i:1693661400;s:13:"cohortEndDate";i:1708277400;s:25:"welcomeClassStartDateUser";i:1686745800;s:19:"cohortStartDateUser";i:1693724400;s:17:"cohortEndDateUser";i:1708354800;s:16:"primary_label_id";s:2:"25";s:18:"primary_label_name";s:20:"Software Development";s:12:"cateforyInfo";a:1:{i:25;s:20:"Software Development";}s:15:"program_version";i:1;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+971-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 921 (char 920) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[Z] | 139.11 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x000002744111DF10>, value = 'Z' 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/automation-testing-masters-program-certification-training-course [32mINFO [0m setup:orders_page.py:30 Country Set to: AE [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Automation Testing Masters Program', 'course_type': 'Online Bootcamp', 'base_price': '$ 1,099.00', 'final_price': '1,099.00'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: 3dd23e4b1c7123ed550c8e4ec649b1e7b05298fc00dcb7657affd340aa765be9 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:34:{s:2:"id";s:3:"112";s:4:"name";s:62:"Automation Testing Masters Program Online Classroom Flexi-Pass";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1099.00";s:9:"basePrice";s:4:"1099";s:19:"display_total_price";s:8:"1,099.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:34:"Automation Testing Masters Program";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:105:"https://www.simplilearn.com/ice9/course_images/bundle313x225/Automation-Testing-Masters-Program-icon.svgz";s:10:"course_url";N;s:17:"training_type_txt";s:27:"Online Classroom Flexi-Pass";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:8:"cohortId";s:24:"641c32c32d85af2fc6b0a0ff";s:14:"welcomeClassId";s:24:"64478777ffb4bf3181a326a0";s:10:"cohortName";s:24:"MS ATE MAY 2023 Cohort 1";s:21:"welcomeClassStartDate";i:1683657000;s:15:"cohortStartDate";i:1683984600;s:13:"cohortEndDate";i:1698773400;s:25:"welcomeClassStartDateUser";i:1683720000;s:19:"cohortStartDateUser";i:1684047600;s:17:"cohortEndDateUser";i:1698850800;s:16:"primary_label_id";s:2:"25";s:18:"primary_label_name";s:20:"Software Development";s:12:"cateforyInfo";a:1:{i:25;s:20:"Software Development";}s:15:"program_version";i:2;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+971-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 936 (char 935) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[AB] | 98.80 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowMastersProgram object at 0x00000274411280D0>, 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 = testdata['sql_query'].replace('<token_no>',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_items,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) 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: 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: 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: 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:555: Failed -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/advanced-digital-marketing-certification-training-course [32mINFO [0m setup:orders_page.py:30 Country Set to: AE [32mINFO [0m setup:orders_page.py:159 clicked on Enroll Now button for Masters Program [32mINFO [0m setup:orders_page.py:162 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:579 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:485 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:488 course_data: ({'course_name': 'Digital Marketing Specialist', 'course_type': 'Online Bootcamp', 'base_price': '$ 1,049.00', 'final_price': '1,049.00'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:492 Token No is: e30bdbd155bbb8b8757b1d768a4d952cfb12f9d74217be482ffe8d330b54a032 [32mINFO [0m setup:test_orders_and_payment_flow.py:496 RAW SQL Data: [{'items': 'a:1:{i:0;a:25:{s:2:"id";s:2:"23";s:4:"name";s:49:"Digital Marketing Specialist Online Self Learning";s:11:"description";s:4:" - 1";s:5:"price";s:7:"1049.00";s:9:"basePrice";s:4:"1049";s:19:"display_total_price";s:8:"1,049.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:6:"online";s:15:"trainingType_id";s:1:"9";s:10:"accessDays";s:3:"335";s:13:"productTypeId";s:1:"2";s:15:"productTypeName";s:6:"bundle";s:11:"actual_name";s:28:"Digital Marketing Specialist";s:7:"priceId";s:0:"";s:11:"billingType";i:1;s:7:"img_url";s:88:"https://www.simplilearn.com/ice9/course_images/bundle313x225/Digital-marketing-head.svgz";s:10:"course_url";s:57:"/advanced-digital-marketing-certification-training-course";s:17:"training_type_txt";s:20:"Online Self Learning";s:9:"messageTT";s:0:"";s:11:"offering_id";N;s:16:"primary_label_id";s:2:"18";s:18:"primary_label_name";s:17:"Digital Marketing";s:12:"cateforyInfo";a:1:{i:18;s:17:"Digital Marketing";}s:15:"program_version";i:3;}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+971-123456789'}] [31m[1mERROR [0m setup:test_orders_and_payment_flow.py:533 Exception occurred Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 497, in test_Orders_and_Payment_Flow_masters_program sql_items = self.convert_items_to_json(sql_data) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 629, in convert_items_to_json data = json.loads(data) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\__init__.py", line 357, in loads return _default_decoder.decode(s) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 699 (char 698) | |||
Failed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_orderAndPayment_flow_certification_program_report_details_to_DB | 0.01 | |
self = <test_orders_and_payment_flow.TestOrderAndPaymentFlowCertificationProgram object at 0x00000274410E3460> @pytest.mark.order(-1) @pytest.mark.test_details("0000", "high", "Order and Payment Flow", "Om") def test_orderAndPayment_flow_certification_program_report_details_to_DB(self): # Inserting order and payment flow certification program report to DB current_date = date.today() read_csvFile = pd.read_csv('Report.csv', usecols=[ 'Course_Type', 'Status'], encoding='unicode_escape') total_rows = len(read_csvFile) logging.info(f'Total rows present in file are {total_rows}') total_certification_row_count = 0 pass_count = 0 all_course_types = read_csvFile['Course_Type'] length = len(all_course_types) all_status = read_csvFile['Status'] for index in range(0, length): if 'Certification Program' == all_course_types[index]: total_certification_row_count += 1 > if all_course_types[index] == 'Certification Program' and all_status[index].lower() == 'success' or 'cta not available': E AttributeError: 'float' object has no attribute 'lower' test_prod\test_orders_and_payment_flow.py:64: AttributeError -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:53 Total rows present in file are 105 | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[A] | 109.35 | |
------------------------------Captured stderr call------------------------------ --- Logging error --- Traceback (most recent call last): File "c:\users\qateam\appdata\local\programs\python\python38\lib\logging\__init__.py", line 1084, in emit stream.write(msg + self.terminator) File "c:\users\qateam\appdata\local\programs\python\python38\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode character '\u20b9' in position 171: character maps to <undefined> Call stack: File "c:\users\qateam\appdata\local\programs\python\python38\lib\runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "c:\users\qateam\appdata\local\programs\python\python38\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "C:\Users\qateam\AppData\Local\Programs\Python\Python38\Scripts\pytest.exe\__main__.py", line 7, in <module> sys.exit(console_main()) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\config\__init__.py", line 190, in console_main code = main() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\config\__init__.py", line 167, in main ret: Union[ExitCode, int] = config.hook.pytest_cmdline_main( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 317, in pytest_cmdline_main return wrap_session(config, _main) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 270, in wrap_session session.exitstatus = doit(config, session) or 0 File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 324, in _main config.hook.pytest_runtestloop(session=session) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\main.py", line 349, in pytest_runtestloop item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 112, in pytest_runtest_protocol runtestprotocol(item, nextitem=nextitem) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 131, in runtestprotocol reports.append(call_and_report(item, "call", log)) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 220, in call_and_report call = call_runtest_hook(item, when, **kwds) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 259, in call_runtest_hook return CallInfo.from_call( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 339, in from_call result: Optional[TResult] = func() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 260, in <lambda> lambda: ihook(item=item, **kwds), when=when, reraise=reraise File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\runner.py", line 167, in pytest_runtest_call item.runtest() File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\python.py", line 1789, in runtest self.ihook.pytest_pyfunc_call(pyfuncitem=self) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\hooks.py", line 286, in __call__ return self._hookexec(self, self.get_hookimpls(), kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 93, in _hookexec return self._inner_hookexec(hook, methods, kwargs) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\manager.py", line 84, in <lambda> self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall( File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\pluggy\callers.py", line 187, in _multicall res = hook_impl.function(*args) File "c:\users\qateam\appdata\local\programs\python\python38\lib\site-packages\_pytest\python.py", line 195, in pytest_pyfunc_call result = testfunction(**testargs) File "C:\test_repos\pre_sales_test_python\test_prod\test_orders_and_payment_flow.py", line 124, in test_Orders_and_Payment_Flow_certification logging.info(f"course_data: {course_data}") Message: "course_data: ({'course_name': 'Certified ScrumMaster® (CSM)', 'course_type': 'May 06 - May 07\\n(2 days) Classroom', 'base_price': '₹ 18,999.00', 'final_price': '22,418.82'}, (['Credit Card', 'Debit Card', 'Net Banking', 'UPI', 'EMI', '', 'CCAvenue'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'debitcard': 'All option clickable and Payment CTA appearing '}, {'net_banking': 'All option clickable and Payment CTA appearing '}, {'UPI': 'All option clickable and Payment CTA appearing '}, {'EMI': 'All option clickable and Payment CTA appearing '}, {'CCAvenue': 'All option clickable and Payment CTA appearing '}]))" Arguments: () -------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/agile-and-scrum/agile-and-scrum-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: IN [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:selenium_helper.py:61 Message: [33mWARNING [0m setup:selenium_helper.py:62 the locator ('xpath', "//li[@id='shopse']//h2[contains(text(),'EMI')][not(contains(@style,'none'))]/ancestor::a") on url https://www.simplilearn.com/secure/checkout/details?authtoken=eaed52bbeb4905de13fa8ca3bc36753b9e6d6a36cd1db2e89ad79c5ca70a53fb is not visible [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:345 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'Certified ScrumMaster® (CSM)', 'course_type': 'May 06 - May 07\n(2 days) Classroom', 'base_price': '₹ 18,999.00', 'final_price': '22,418.82'}, (['Credit Card', 'Debit Card', 'Net Banking', 'UPI', 'EMI', '', 'CCAvenue'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'debitcard': 'All option clickable and Payment CTA appearing '}, {'net_banking': 'All option clickable and Payment CTA appearing '}, {'UPI': 'All option clickable and Payment CTA appearing '}, {'EMI': 'All option clickable and Payment CTA appearing '}, {'CCAvenue': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: eaed52bbeb4905de13fa8ca3bc36753b9e6d6a36cd1db2e89ad79c5ca70a53fb [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:28:{s:2:"id";s:1:"4";s:4:"name";s:50:"Certified ScrumMaster<sup>®</sup> (CSM) Classroom";s:11:"description";s:4:" - 1";s:5:"price";s:8:"22418.82";s:9:"basePrice";s:5:"18999";s:19:"display_total_price";s:9:"18,999.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"1";s:10:"workshopId";s:7:"1740744";s:5:"venue";s:3:"TBD";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:40:"Certified ScrumMaster<sup>®</sup> (CSM)";s:11:"billingType";i:1;s:7:"img_url";s:77:"https://www.simplilearn.com/ice9/course_images/icons/AGILE-AND-SCRUM-CSM.svgz";s:10:"course_url";s:43:"/agile-and-scrum/csm-certification-training";s:17:"training_type_txt";s:9:"Classroom";s:4:"from";s:10:"2023-05-06";s:2:"to";s:10:"2023-05-07";s:4:"days";i:2;s:9:"isExpired";i:0;s:6:"isSold";i:0;s:13:"workshopDates";N;s:16:"primary_label_id";s:1:"9";s:18:"primary_label_name";s:15:"Agile and Scrum";s:12:"cateforyInfo";a:1:{i:9;s:15:"Agile and Scrum";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+91-123456789'}] [32mINFO [0m setup:test_orders_and_payment_flow.py:134 SQL DATA in JSON format: {'id': '4', 'name': 'Certified ScrumMaster (CSM) Classroom', 'description': ' - 1', 'price': '22418.82', 'basePrice': '18999', 'display_total_price': '18,999.00', 'quantity': 'isEarlyBird', 'type': 'classroom', 'trainingType_id': '1', 'workshopId': '1740744', 'venue': 'TBD', 'productTypeId': '1', 'productTypeName': 'course', 'actual_name': 'Certified ScrumMaster (CSM)', 'img_url': 'https://www.simplilearn.com/ice9/course_images/icons/AGILE-AND-SCRUM-CSM.svgz', 'course_url': '/agile-and-scrum/csm-certification-training', 'training_type_txt': 'Classroom', 'from': '2023-05-06', 'to': '2023-05-07', 'days': 'isExpired', 'isSold': 'workshopDates', 'primary_label_id': '9', 'primary_label_name': 'Agile and Scrum'} [32mINFO [0m setup:test_orders_and_payment_flow.py:338 Verifiaction Status Log Message: ['DB Verification Successfull'] | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[B] | 36.79 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/agile-and-scrum/pmi-acp-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: IN [32mINFO [0m setup:test_orders_and_payment_flow.py:157 Enroll Now button is not Appearing | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[F] | 109.01 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/agile-and-scrum/agile-and-scrum-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: US [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'Certified ScrumMaster® (CSM)', 'course_type': 'May 04 - May 05\n(2 days) Classroom', 'base_price': '$ 599.00', 'final_price': '599.00'}, (['Credit Card', 'PayPal', 'Affirm', 'Klarna'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'Affirm': 'All option clickable and Payment CTA appearing '}, {'klarna': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 3b66954653516302487278789be21e0af3e6ea3631b9ff9df997f2e23d6dfdd2 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:28:{s:2:"id";s:1:"4";s:4:"name";s:50:"Certified ScrumMaster<sup>®</sup> (CSM) Classroom";s:11:"description";s:4:" - 1";s:5:"price";s:6:"599.00";s:9:"basePrice";s:3:"599";s:19:"display_total_price";s:6:"599.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"1";s:10:"workshopId";s:7:"1736504";s:5:"venue";s:3:"TBD";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:40:"Certified ScrumMaster<sup>®</sup> (CSM)";s:11:"billingType";i:1;s:7:"img_url";s:77:"https://www.simplilearn.com/ice9/course_images/icons/AGILE-AND-SCRUM-CSM.svgz";s:10:"course_url";s:43:"/agile-and-scrum/csm-certification-training";s:17:"training_type_txt";s:9:"Classroom";s:4:"from";s:10:"2023-05-04";s:2:"to";s:10:"2023-05-05";s:4:"days";i:2;s:9:"isExpired";i:0;s:6:"isSold";i:0;s:13:"workshopDates";N;s:16:"primary_label_id";s:1:"9";s:18:"primary_label_name";s:15:"Agile and Scrum";s:12:"cateforyInfo";a:1:{i:9;s:15:"Agile and Scrum";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+91-123456789'}] [32mINFO [0m setup:test_orders_and_payment_flow.py:134 SQL DATA in JSON format: {'id': '4', 'name': 'Certified ScrumMaster (CSM) Classroom', 'description': ' - 1', 'price': '599.00', 'basePrice': '599', 'display_total_price': '599.00', 'quantity': 'isEarlyBird', 'type': 'classroom', 'trainingType_id': '1', 'workshopId': '1736504', 'venue': 'TBD', 'productTypeId': '1', 'productTypeName': 'course', 'actual_name': 'Certified ScrumMaster (CSM)', 'img_url': 'https://www.simplilearn.com/ice9/course_images/icons/AGILE-AND-SCRUM-CSM.svgz', 'course_url': '/agile-and-scrum/csm-certification-training', 'training_type_txt': 'Classroom', 'from': '2023-05-04', 'to': '2023-05-05', 'days': 'isExpired', 'isSold': 'workshopDates', 'primary_label_id': '9', 'primary_label_name': 'Agile and Scrum'} [32mINFO [0m setup:test_orders_and_payment_flow.py:338 Verifiaction Status Log Message: ['DB Verification Successfull'] | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[G] | 36.88 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/agile-and-scrum/pmi-acp-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: US [32mINFO [0m setup:test_orders_and_payment_flow.py:157 Enroll Now button is not Appearing | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[L] | 36.98 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/agile-and-scrum/pmi-acp-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: GB [32mINFO [0m setup:test_orders_and_payment_flow.py:157 Enroll Now button is not Appearing | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[P] | 142.54 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/agile-and-scrum/agile-and-scrum-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: AU [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'Certified ScrumMaster® (CSM)', 'course_type': 'May 04 - May 05\n(2 days) Classroom', 'base_price': 'A$ 799.00', 'final_price': '799.00'}, (['Credit Card', 'PayPal'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 2b6c6469c1e1925235e14ad455e1b5d689f91f5c1b9b44f0891e9abea9c3e161 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:28:{s:2:"id";s:1:"4";s:4:"name";s:50:"Certified ScrumMaster<sup>®</sup> (CSM) Classroom";s:11:"description";s:4:" - 1";s:5:"price";s:6:"799.00";s:9:"basePrice";s:3:"799";s:19:"display_total_price";s:6:"799.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"1";s:10:"workshopId";s:7:"1740357";s:5:"venue";s:3:"TBD";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:40:"Certified ScrumMaster<sup>®</sup> (CSM)";s:11:"billingType";i:1;s:7:"img_url";s:77:"https://www.simplilearn.com/ice9/course_images/icons/AGILE-AND-SCRUM-CSM.svgz";s:10:"course_url";s:43:"/agile-and-scrum/csm-certification-training";s:17:"training_type_txt";s:9:"Classroom";s:4:"from";s:10:"2023-05-04";s:2:"to";s:10:"2023-05-05";s:4:"days";i:2;s:9:"isExpired";i:0;s:6:"isSold";i:0;s:13:"workshopDates";N;s:16:"primary_label_id";s:1:"9";s:18:"primary_label_name";s:15:"Agile and Scrum";s:12:"cateforyInfo";a:1:{i:9;s:15:"Agile and Scrum";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+44-123456789'}] [32mINFO [0m setup:test_orders_and_payment_flow.py:134 SQL DATA in JSON format: {'id': '4', 'name': 'Certified ScrumMaster (CSM) Classroom', 'description': ' - 1', 'price': '799.00', 'basePrice': '799', 'display_total_price': '799.00', 'quantity': 'isEarlyBird', 'type': 'classroom', 'trainingType_id': '1', 'workshopId': '1740357', 'venue': 'TBD', 'productTypeId': '1', 'productTypeName': 'course', 'actual_name': 'Certified ScrumMaster (CSM)', 'img_url': 'https://www.simplilearn.com/ice9/course_images/icons/AGILE-AND-SCRUM-CSM.svgz', 'course_url': '/agile-and-scrum/csm-certification-training', 'training_type_txt': 'Classroom', 'from': '2023-05-04', 'to': '2023-05-05', 'days': 'isExpired', 'isSold': 'workshopDates', 'primary_label_id': '9', 'primary_label_name': 'Agile and Scrum'} [32mINFO [0m setup:test_orders_and_payment_flow.py:338 Verifiaction Status Log Message: ['DB Verification Successfull'] | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[Q] | 37.33 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/agile-and-scrum/pmi-acp-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: AU [32mINFO [0m setup:test_orders_and_payment_flow.py:157 Enroll Now button is not Appearing | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[V] | 36.98 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/agile-and-scrum/pmi-acp-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: DE [32mINFO [0m setup:test_orders_and_payment_flow.py:157 Enroll Now button is not Appearing | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[Z] | 140.55 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/agile-and-scrum/agile-and-scrum-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: SG [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'Certified ScrumMaster® (CSM)', 'course_type': 'May 04 - May 05\n(2 days) Classroom', 'base_price': '$ 599.00', 'final_price': '646.92'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 0139e1e0c5813355845a46c47ecdf6a76ba28cbfae42fcb2bc754f6e2458834b [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:28:{s:2:"id";s:1:"4";s:4:"name";s:50:"Certified ScrumMaster<sup>®</sup> (CSM) Classroom";s:11:"description";s:4:" - 1";s:5:"price";s:6:"646.92";s:9:"basePrice";s:3:"599";s:19:"display_total_price";s:6:"599.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"1";s:10:"workshopId";s:7:"1740374";s:5:"venue";s:3:"TBD";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:40:"Certified ScrumMaster<sup>®</sup> (CSM)";s:11:"billingType";i:1;s:7:"img_url";s:77:"https://www.simplilearn.com/ice9/course_images/icons/AGILE-AND-SCRUM-CSM.svgz";s:10:"course_url";s:43:"/agile-and-scrum/csm-certification-training";s:17:"training_type_txt";s:9:"Classroom";s:4:"from";s:10:"2023-05-04";s:2:"to";s:10:"2023-05-05";s:4:"days";i:2;s:9:"isExpired";i:0;s:6:"isSold";i:0;s:13:"workshopDates";N;s:16:"primary_label_id";s:1:"9";s:18:"primary_label_name";s:15:"Agile and Scrum";s:12:"cateforyInfo";a:1:{i:9;s:15:"Agile and Scrum";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+65-123456789'}] [32mINFO [0m setup:test_orders_and_payment_flow.py:134 SQL DATA in JSON format: {'id': '4', 'name': 'Certified ScrumMaster (CSM) Classroom', 'description': ' - 1', 'price': '646.92', 'basePrice': '599', 'display_total_price': '599.00', 'quantity': 'isEarlyBird', 'type': 'classroom', 'trainingType_id': '1', 'workshopId': '1740374', 'venue': 'TBD', 'productTypeId': '1', 'productTypeName': 'course', 'actual_name': 'Certified ScrumMaster (CSM)', 'img_url': 'https://www.simplilearn.com/ice9/course_images/icons/AGILE-AND-SCRUM-CSM.svgz', 'course_url': '/agile-and-scrum/csm-certification-training', 'training_type_txt': 'Classroom', 'from': '2023-05-04', 'to': '2023-05-05', 'days': 'isExpired', 'isSold': 'workshopDates', 'primary_label_id': '9', 'primary_label_name': 'Agile and Scrum'} [32mINFO [0m setup:test_orders_and_payment_flow.py:338 Verifiaction Status Log Message: ['DB Verification Successfull'] | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AA] | 37.03 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/agile-and-scrum/pmi-acp-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: SG [32mINFO [0m setup:test_orders_and_payment_flow.py:157 Enroll Now button is not Appearing | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AE] | 142.61 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/agile-and-scrum/agile-and-scrum-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: AE [32mINFO [0m setup:orders_page.py:38 clicked on Enroll Now button [32mINFO [0m setup:orders_page.py:41 Payment Page Loaded [31m[1mERROR [0m setup:ssvc_cart_page.py:55 Exception in City dropdown Traceback (most recent call last): File "C:\test_repos\pre_sales_test_python\pages_prod\ssvc_cart_page.py", line 52, in fill_learner_details_and_proceed self.city_dropdown.select_element_by_index(1) File "C:\test_repos\pre_sales_test_python\core\page_factory.py", line 60, in __getattr__ raise NoSuchElementException("An exception of type " + type(error).__name__ + " occurred. With Element -: " + loc) selenium.common.exceptions.NoSuchElementException: Message: An exception of type TimeoutException occurred. With Element -: city_dropdown [32mINFO [0m setup:test_orders_and_payment_flow.py:216 <class 'tuple'> [32mINFO [0m setup:ssvc_cart_page.py:367 Payment Deatils Entered [32mINFO [0m setup:test_orders_and_payment_flow.py:121 <class 'tuple'> [32mINFO [0m setup:test_orders_and_payment_flow.py:124 course_data: ({'course_name': 'Certified ScrumMaster® (CSM)', 'course_type': 'May 04 - May 05\n(2 days) Classroom', 'base_price': '$ 599.00', 'final_price': '599.00'}, (['Credit Card', 'PayPal', '2Checkout'], [{'creditcard': 'All option clickable and Payment CTA appearing '}, {'Paypal': 'All option clickable and Payment CTA appearing '}, {'2checkout': 'All option clickable and Payment CTA appearing '}])) [32mINFO [0m setup:test_orders_and_payment_flow.py:128 Token No is: 3a8e49596d5b2b094ba3cc89d40ef6c786373b5613ec4e5b0e0f215e9ea836e2 [32mINFO [0m setup:test_orders_and_payment_flow.py:132 RAW SQL Data: [{'items': 'a:1:{i:0;a:28:{s:2:"id";s:1:"4";s:4:"name";s:50:"Certified ScrumMaster<sup>®</sup> (CSM) Classroom";s:11:"description";s:4:" - 1";s:5:"price";s:6:"599.00";s:9:"basePrice";s:3:"599";s:19:"display_total_price";s:6:"599.00";s:8:"quantity";i:1;s:11:"isEarlyBird";i:0;s:4:"type";s:9:"classroom";s:15:"trainingType_id";s:1:"1";s:10:"workshopId";s:7:"1740365";s:5:"venue";s:3:"TBD";s:13:"productTypeId";s:1:"1";s:15:"productTypeName";s:6:"course";s:11:"actual_name";s:40:"Certified ScrumMaster<sup>®</sup> (CSM)";s:11:"billingType";i:1;s:7:"img_url";s:77:"https://www.simplilearn.com/ice9/course_images/icons/AGILE-AND-SCRUM-CSM.svgz";s:10:"course_url";s:43:"/agile-and-scrum/csm-certification-training";s:17:"training_type_txt";s:9:"Classroom";s:4:"from";s:10:"2023-05-04";s:2:"to";s:10:"2023-05-05";s:4:"days";i:2;s:9:"isExpired";i:0;s:6:"isSold";i:0;s:13:"workshopDates";N;s:16:"primary_label_id";s:1:"9";s:18:"primary_label_name";s:15:"Agile and Scrum";s:12:"cateforyInfo";a:1:{i:9;s:15:"Agile and Scrum";}}}', 'emailId': 'simplilearnautomation@gmail.com', 'contactNumber': '+971-123456789'}] [32mINFO [0m setup:test_orders_and_payment_flow.py:134 SQL DATA in JSON format: {'id': '4', 'name': 'Certified ScrumMaster (CSM) Classroom', 'description': ' - 1', 'price': '599.00', 'basePrice': '599', 'display_total_price': '599.00', 'quantity': 'isEarlyBird', 'type': 'classroom', 'trainingType_id': '1', 'workshopId': '1740365', 'venue': 'TBD', 'productTypeId': '1', 'productTypeName': 'course', 'actual_name': 'Certified ScrumMaster (CSM)', 'img_url': 'https://www.simplilearn.com/ice9/course_images/icons/AGILE-AND-SCRUM-CSM.svgz', 'course_url': '/agile-and-scrum/csm-certification-training', 'training_type_txt': 'Classroom', 'from': '2023-05-04', 'to': '2023-05-05', 'days': 'isExpired', 'isSold': 'workshopDates', 'primary_label_id': '9', 'primary_label_name': 'Agile and Scrum'} [32mINFO [0m setup:test_orders_and_payment_flow.py:338 Verifiaction Status Log Message: ['DB Verification Successfull'] | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowCertificationProgram::test_Orders_and_Payment_Flow_certification[AF] | 36.98 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:102 Total URL Present is: 5 [32mINFO [0m setup:test_orders_and_payment_flow.py:113 Url Opened is: https://www.simplilearn.com/agile-and-scrum/pmi-acp-certification-training [32mINFO [0m setup:orders_page.py:30 Country Set to: AE [32mINFO [0m setup:test_orders_and_payment_flow.py:157 Enroll Now button is not Appearing | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[C] | 57.91 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/ui-ux-design-masters-program-certification-course [32mINFO [0m setup:orders_page.py:30 Country Set to: IN [32mINFO [0m setup:test_orders_and_payment_flow.py:522 Enroll Now button is not Appearing | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[G] | 56.95 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/ui-ux-design-masters-program-certification-course [32mINFO [0m setup:orders_page.py:30 Country Set to: US [32mINFO [0m setup:test_orders_and_payment_flow.py:522 Enroll Now button is not Appearing | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[K] | 57.32 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/ui-ux-design-masters-program-certification-course [32mINFO [0m setup:orders_page.py:30 Country Set to: GB [32mINFO [0m setup:test_orders_and_payment_flow.py:522 Enroll Now button is not Appearing | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[O] | 58.76 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/ui-ux-design-masters-program-certification-course [32mINFO [0m setup:orders_page.py:30 Country Set to: AU [32mINFO [0m setup:test_orders_and_payment_flow.py:522 Enroll Now button is not Appearing | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[S] | 57.43 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/ui-ux-design-masters-program-certification-course [32mINFO [0m setup:orders_page.py:30 Country Set to: DE [32mINFO [0m setup:test_orders_and_payment_flow.py:522 Enroll Now button is not Appearing | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[W] | 57.34 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/ui-ux-design-masters-program-certification-course [32mINFO [0m setup:orders_page.py:30 Country Set to: SG [32mINFO [0m setup:test_orders_and_payment_flow.py:522 Enroll Now button is not Appearing | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_Orders_and_Payment_Flow_masters_program[AA] | 57.63 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:476 Url Opened is: https://www.simplilearn.com/ui-ux-design-masters-program-certification-course [32mINFO [0m setup:orders_page.py:30 Country Set to: AE [32mINFO [0m setup:test_orders_and_payment_flow.py:522 Enroll Now button is not Appearing | |||
Passed | test_orders_and_payment_flow.py::TestOrderAndPaymentFlowMastersProgram::test_orderAndPayment_flow_master_program_report_details_to_DB | 0.58 | |
-------------------------------Captured log call-------------------------------- [32mINFO [0m setup:test_orders_and_payment_flow.py:415 Total rows present in file are 105 [32mINFO [0m setup:test_orders_and_payment_flow.py:431 Total master program urls are 7 [32mINFO [0m setup:test_orders_and_payment_flow.py:433 Total testcases passes is 7 [32mINFO [0m setup:test_orders_and_payment_flow.py:434 Total testcases failed is 0 [32mINFO [0m setup:db_helper.py:51 DB_type selected : mysql [32mINFO [0m setup:db_connection.py:96 Requested Query : INSERT INTO automation_ice9.td_order_and_payment_flow_report_details(module_name, sub_module_name, total_testcase_count, passed, failed, run_date) VALUES( 'Order and Payment Flow', 'Master Program', '7', '7', '0', '2023-05-04'); |