Best Python code snippet using autotest_python
auto_updaterefnum.py
Source:auto_updaterefnum.py
1#!/usr/bin/python2# FINAL SCRIPT updated as of 8th July 20203# Workflow - MSIG4# Declare Python libraries needed for this script5import sys6import pandas as pd7import time8import os9import wx10from utils.notification import send11from automagica import *12from connector.dbconfig import read_db_config13from selenium import webdriver14from pathlib import Path15from utils.audit_trail import audit_log16from utils.logging import logging17from selenium.webdriver.common.action_chains import ActionChains18from selenium.webdriver.common.keys import Keys19current_path = os.path.dirname(os.path.abspath(__file__))20dti_path = str(Path(current_path).parent)21# Function to open a web browser22def initBrowser(main_df, msig_base):23 global browser24 try:25 #msig_base.username = ''26 #msig_base.password = ''27 # Check if both username and password are not null28 if msig_base.username != '' and msig_base.password != '':29 # Open using FireFox30 browser = webdriver.Firefox(executable_path = dti_path+r'/selenium_interface/geckodriver.exe')31 browser.maximize_window()32 #browser.get('https://marcmy.asia-assistance.com/marcmy/')33 browser.get('http://marcmyuat.aan.com:8080/marcmy/')34 browser.find_element_by_xpath('/html/body/div[1]/div[1]/div[2]/form/input[2]').clear()35 Wait(3)36 browser.find_element_by_xpath('/html/body/div[1]/div[1]/div[2]/form/input[2]').send_keys(msig_base.username)37 Wait(2)38 browser.find_element_by_xpath('/html/body/div[1]/div[1]/div[2]/form/input[3]').clear()39 Wait(3)40 browser.find_element_by_xpath('/html/body/div[1]/div[1]/div[2]/form/input[3]').send_keys(msig_base.password)41 Wait(2)42 browser.find_element_by_xpath('/html/body/div[1]/div[1]/div[2]/form/button').click()43 Wait(3)44 else:45 config = read_db_config(dti_path+r'\config.ini', 'marc-finance')46 dti_user = config['user']47 dti_pass = config['password']48 # Open using FireFox49 browser = webdriver.Firefox(executable_path = dti_path+r'/selenium_interface/geckodriver.exe')50 browser.maximize_window()51 #browser.get('https://marcmy.asia-assistance.com/marcmy/')52 browser.get('http://marcmyuat.aan.com:8080/marcmy/')53 browser.find_element_by_xpath('/html/body/div[1]/div[1]/div[2]/form/input[2]').clear()54 Wait(3)55 browser.find_element_by_xpath('/html/body/div[1]/div[1]/div[2]/form/input[2]').send_keys(dti_user)56 Wait(2)57 browser.find_element_by_xpath('/html/body/div[1]/div[1]/div[2]/form/input[3]').clear()58 Wait(3)59 browser.find_element_by_xpath('/html/body/div[1]/div[1]/div[2]/form/input[3]').send_keys(dti_pass)60 Wait(2)61 browser.find_element_by_xpath('/html/body/div[1]/div[1]/div[2]/form/button').click()62 Wait(3)63 checkresultdf = msig_dataRetrieve(main_df, msig_base)64 close_Marc(browser)65 return checkresultdf66 except Exception as error:67 close_Marc(browser)68 logging("MSIG - initBrowser", error, msig_base)69 print(error)70# Update Reference Number in MARC71def msig_dataRetrieve(main_df, msig_base):72 admNoList = main_df['Adm. No']73 clientRefNumList = main_df['Client Ref.Num']74 refnum_updated = list()75 refnum_notupdated = list()76 i = 077 for i in range(len(admNoList)):78 try:79 msig_marc(int(admNoList[i]), str(clientRefNumList[i]), msig_base)80 time.sleep(5)81 except Exception:82 audit_log("MSIG - Admission No %s can't be processed. Please check manually" %int(admNoList[i]), "Completed...", msig_base)83 continue84 for i in range(len(admNoList)):85 try:86 refnum_checkdf = refnum_check(int(admNoList[i]), msig_base,refnum_updated,refnum_notupdated)87 time.sleep(5)88 except Exception as error:89 audit_log("MSIG - Reference number checking", error, msig_base)90 continue91 return refnum_checkdf92# Menuevering dataset based on Case ID and update the record93def msig_marc(admNoList, clientRefNumList, msig_base):94 # Direct to Inpatient Cases search page95 #browser.get('https://marcmy.asia-assistance.com/marcmy/pages/inpatient/cases/inpatient_cases_search.xhtml')96 browser.get('http://marcmyuat.aan.com:8080/marcmy/pages/inpatient/cases/inpatient_cases_search.xhtml')97 Wait(5)98 # Find client's information using Admission ID99 browser.find_element_by_xpath('/html/body/div[1]/div[3]/form/div[2]/table[1]/tbody/tr[1]/td[4]/input').send_keys(admNoList)100 Wait(5)101 browser.find_element_by_xpath('/html/body/div[1]/div[3]/form/div[2]/table[1]/tbody/tr[11]/td[2]/button[1]').click()102 Wait(5)103 # Click client's name (a link)104 browser.find_element_by_xpath('/html/body/div[1]/div[3]/form/div[2]/div/div/div/div[3]/table/tbody/tr/td[4]/a').click()105 Wait(5)106 # Click update button107 browser.find_element_by_xpath('/html/body/div[1]/div[3]/form[1]/div[1]/div[1]/div[1]/a[5]').click()108 Wait(5)109 # Clear the textarea and paste new reference number110 try:111 element_textare = '/html/body/div[1]/div[3]/form[1]/div[3]/div[2]/div/div/div[1]/table/tbody/tr[1]/td[2]/input'112 textare = browser.find_element_by_xpath(element_textare)113 textare.clear()114 ActionChains(browser).move_to_element(textare).click(textare).send_keys(clientRefNumList).perform()115 except Exception:116 try:117 time.sleep(3)118 element_textare = '/html/body/div[1]/div[3]/form[1]/div[3]/div[2]/div/div/div[1]/table/tbody/tr[1]/td[2]/input'119 textare = browser.find_element_by_xpath(element_textare)120 textare.click()121 textare.clear()122 textare.send_keys(clientRefNumList)123 except Exception as error:124 logging("MSIG - Automagica - Clear the textarea and paste new reference number", error, msig_base)125 pass126 Wait(5)127 # Save the record128 browser.find_element_by_xpath('/html/body/div[1]/div[3]/form[1]/div[1]/div[1]/div[1]/a[5]').click()129 Wait(5)130 # Unlock the Case ID131 try:132 ActionChains(browser).send_keys(Keys.RIGHT).perform()133 element_unlock = '/html/body/div[1]/div[3]/form[1]/div[1]/div[1]/div[2]/span[5]'134 my_unlock = browser.find_element_by_xpath(element_unlock)135 my_unlock.click()136 Wait(5)137 audit_log("MSIG - Case ID [ %s ] has been unlocked." % admNoList, "Completed...", msig_base)138 except Exception:139 try:140 ActionChains(browser).send_keys(Keys.RIGHT).perform()141 element_unlock = '/html/body/div[1]/div[3]/form[1]/div[1]/div[1]/div[2]/a[3]/img'142 my_unlock = browser.find_element_by_xpath(element_unlock)143 my_unlock.click()144 audit_log("MSIG - Case ID [ %s ] has been unlocked." % admNoList, "Completed...", msig_base)145 except Exception as error:146 logging("MSIG - Automagica - Unlock the Case ID properly", error, msig_base)147 pass148 Wait(5)149def refnum_check(admNoList, msig_base,refnum_updated,refnum_notupdated):150 #browser.get('https://marcmy.asia-assistance.com/marcmy/pages/inpatient/cases/inpatient_cases_search.xhtml')151 browser.get('http://marcmyuat.aan.com:8080/marcmy/pages/inpatient/cases/inpatient_cases_search.xhtml')152 Wait(5)153 # Find client's information using Admission ID154 browser.find_element_by_xpath('/html/body/div[1]/div[3]/form/div[2]/table[1]/tbody/tr[1]/td[4]/input').send_keys(admNoList)155 Wait(5)156 browser.find_element_by_xpath('/html/body/div[1]/div[3]/form/div[2]/table[1]/tbody/tr[11]/td[2]/button[1]').click()157 Wait(5)158 # Click client's name (a link)159 browser.find_element_by_xpath('/html/body/div[1]/div[3]/form/div[2]/div/div/div/div[3]/table/tbody/tr/td[4]/a').click()160 Wait(5)161 # Check id reference number is empty162 try:163 element_textare = '/html/body/div[1]/div[3]/form[1]/div[3]/div[2]/div/div/div[1]/table/tbody/tr[1]/td[2]/input'164 textare = browser.find_element_by_xpath(element_textare)165 refnum_value = textare.get_attribute('value')166 if refnum_value != '':167 print("Case ID [ %s ] is updated." % admNoList)168 refnum_updated.append(admNoList)169 audit_log("MSIG - Case ID [ %s ] is updated." % admNoList, "Completed...", msig_base)170 else:171 print("Case ID [ %s ] is not updated." % admNoList)172 refnum_notupdated.append(admNoList)173 audit_log("MSIG - Case ID [ %s ] is not updated." % admNoList, "Completed...", msig_base)174 except Exception:175 #print("checking refnum error")176 logging("MSIG - Automagica - Reference number value checking", error, msig_base)177 pass178 Wait(5)179 refnum_updateddf = pd.DataFrame(refnum_updated, columns = ['Updated Case ID'])180 refnum_notupdateddf = pd.DataFrame(refnum_notupdated, columns = ['Not Updated Case ID'])181 refnum_checkdf = pd.concat([refnum_updateddf, refnum_notupdateddf], axis=1)182 return refnum_checkdf183 184# Logout from Marc and close browser185def close_Marc(browser):186 try:187 browser.close()188 except Exception as error:...
shared-connection-cache.py
Source:shared-connection-cache.py
...31@lcurl.lock_function32def my_lock(handle, data, locktype, useptr):33 print("-> Mutex lock", file=sys.stderr)34@lcurl.unlock_function35def my_unlock(handle, data, useptr):36 print("<- Mutex unlock", file=sys.stderr)37def main(argv=sys.argv[1:]):38 url: str = argv[0] if len(argv) >= 1 else "https://curl.se/"39 share: ct.POINTER(lcurl.CURLSH) = lcurl.share_init()40 lcurl.share_setopt(share, lcurl.CURLSHOPT_SHARE, lcurl.CURL_LOCK_DATA_CONNECT)41 lcurl.share_setopt(share, lcurl.CURLSHOPT_LOCKFUNC, my_lock)42 lcurl.share_setopt(share, lcurl.CURLSHOPT_UNLOCKFUNC, my_unlock)43 # Loop the transfer and cleanup the handle properly every lap. This will44 # still reuse connections since the pool is in the shared object!45 for i in range(3):46 curl: ct.POINTER(lcurl.CURL) = lcurl.easy_init()47 with curl_guard(False, curl):48 if not curl: continue49 lcurl.easy_setopt(curl, lcurl.CURLOPT_URL, url.encode("utf-8"))...
examine_outlierdb.py
Source:examine_outlierdb.py
...3fn = 'OutlierDB.pickle'4my_lock(fn)5with open(fn, 'rb') as f:6 db = pickle.load(f)7my_unlock(fn)8print(len(db.sorted_index))9for k in db.sorted_index:...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!