Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- Created on Feb 16, 2012
- '''
- import json
- import time
- from selenium import selenium
- import logging
- from psuproperties import Property
- #Suppose all parameters were stripped
- class Building:
- def __init__(self,LCode,Name,Address1,City,State,Zip,Campus):
- self.LCode = LCode
- self.Name = Name
- self.Address1 = Address1
- self.City = City
- self.State = State
- self.Zip = Zip
- self.Campus = Campus
- #Suppose all parameters were stripped
- class StudentGroup:
- def __init__(self,AgencyName,AgencyVendorID,
- AgencyFedTaxID,AgencyACode,AgencyAddressLine1,
- AgencyAddressLine2,AgencyAddressCity,AgencyAddressState,
- AgencyAddressZipCode,AgencyPhoneArea,AgencyPhone,AgencyPhoneExtension,
- AgencyFaxArea,AgencyFax,
- AgencyPhContactPersPHArea,AgencyPhContactPersPH,
- AgencyPhContactPersFaxArea,AgencyPhContactPersFax,
- AgencyPhoneContactPersEmail,
- AgencyPhContactPerson,AgencyWWWHomePage,AgencyRegContactName,AgencyRegistrationPhrase,AgencyNotes):
- self.AgencyName = AgencyName
- self.AgencyVendorID = AgencyVendorID
- self.AgencyFedTaxID = AgencyFedTaxID
- self.AgencyACode = AgencyACode
- self.AgencyAddressLine1 = AgencyAddressLine1
- self.AgencyAddressLine2 = AgencyAddressLine2
- self.AgencyAddressCity = AgencyAddressCity
- self.AgencyAddressState = AgencyAddressState
- self.AgencyAddressZip = AgencyAddressZipCode
- self.AgencyPhoneArea = AgencyPhoneArea
- self.AgencyPhone = AgencyPhone
- self.AgencyPhoneExtension = AgencyPhoneExtension
- self.AgencyFaxArea = AgencyFaxArea
- self.AgencyFax = AgencyFax
- self.AgencyPhContactPersPHArea = AgencyPhContactPersPHArea
- self.AgencyPhContactPersPH = AgencyPhContactPersPH
- self.AgencyPhContactPersFaxArea = AgencyPhContactPersFaxArea
- self.AgencyPhContactPersFax = AgencyPhContactPersFax
- self.AgencyPhoneContactPersEmail = AgencyPhoneContactPersEmail
- self.Comment = ""
- if AgencyPhContactPerson != "":
- self.Comment = "AgencyPhContactPerson: " + AgencyPhContactPerson + "\n"
- if AgencyWWWHomePage != "":
- self.Comment += "AgencyWWWHomePage: " + AgencyWWWHomePage + "\n"
- if AgencyRegContactName != "":
- self.Comment += "AgencyRegContactName: " + AgencyRegContactName + "\n"
- if AgencyRegistrationPhrase != "":
- self.Comment += "AgencyRegistrationPhrase" + AgencyRegistrationPhrase + "\n"
- if AgencyRegistrationPhrase != "":
- self.Comment += "AgencyNotes: " + AgencyNotes + "\n"
- #Suppose all parameters were stripped
- class Instructor:
- def __init__(self,
- InstructorRankRCode,InstructorNameLast,InstructorNameFirst,InstructorNameMI,
- InstructorBirthdate,InstructorActiveFlag,InstructorPSUID,InstructorTCode,
- InstructorEmplName,InstructorPosition,InstructorAgencyACode,InstructorHomeAddress1,InstructorHomeAddress2,
- InstructorHomeCity,InstructorHomeState,InstructorHomeCountry,InstructorHomeZipCode,
- InstructorWorkAddr1,InstructorWorkAddr2,InstructorWorkAddrCity,
- InstructorWorkAddrState,InstructorWorkCountry,InstructorWorkAddrZIPCode,
- InstructorHomePhoneArea,InstructorHomePhone,InstructorHomeFAXArea,InstructorHomeFAX,InstructorWorkPhoneNoArea,InstructorWorkPhoneNo,InstructorWorkFAXArea,InstructorWorkFAX,
- InstructorHomeEMailAddr,InstructorWorkEMailAddr,InstructorBio,InstructorDistinctiveQual,
- InstructorDegree,InstructorWWWHomePage,InstructorMiscInfo):
- self.InstructorRankRCode = InstructorRankRCode
- self.InstructorNameLast = InstructorNameLast
- self.InstructorNameFirst = InstructorNameFirst
- self.InstructorNameMI = InstructorNameMI
- self.InstructorBirthdate = InstructorBirthdate
- self.InstructorActiveFlag = "Inactive"
- if InstructorActiveFlag == "1":
- self.InstructorActiveFlag = "Active"
- self.InstructorPSUID = InstructorPSUID
- self.InstructorTCode = InstructorTCode
- self.InstructorEmplName = InstructorEmplName
- self.InstructorPosition = InstructorPosition
- self.InstructorAgencyACode = InstructorAgencyACode
- self.InstructorHomeAddress1 = InstructorHomeAddress1
- self.InstructorHomeAddress2 = InstructorHomeAddress2
- self.InstructorHomeCity = InstructorHomeCity
- self.InstructorHomeState = InstructorHomeState
- self.InstructorHomeCountry = InstructorHomeCountry
- self.InstructorHomeZipCode = InstructorHomeZipCode
- self.InstructorHomeZip = InstructorHomeZipCode
- self.InstructorWorkAddr1 = InstructorWorkAddr1
- self.InstructorWorkAddr2 = InstructorWorkAddr2
- self.InstructorWorkAddrCity = InstructorWorkAddrCity
- self.InstructorWorkAddrState = InstructorWorkAddrState
- self.InstructorWorkCountry = InstructorWorkCountry
- self.InstructorWorkAddrZIPCode = InstructorWorkAddrZIPCode
- self.InstructorWorkZip = InstructorWorkAddrZIPCode
- self.InstructorHomePhoneArea = InstructorHomePhoneArea
- self.InstructorHomePhone = InstructorHomePhone
- self.InstructorHomeFAXArea = InstructorHomeFAXArea
- self.InstructorHomeFAX = InstructorHomeFAX
- self.InstructorWorkPhoneNoArea = InstructorWorkPhoneNoArea
- self.InstructorWorkPhoneNo = InstructorWorkPhoneNo
- self.InstructorWorkFAXArea = InstructorWorkFAXArea
- self.InstructorWorkFAX = InstructorWorkFAX
- if InstructorHomePhone == "" and InstructorHomeFAX=="" and InstructorWorkPhoneNo=="" and InstructorWorkFAX=="":
- self.InstructorHomePhoneArea = "999"
- self.InstructorHomePhone = "9999999"
- self.InstructorHomeEMailAddr = InstructorHomeEMailAddr.strip()
- self.InstructorWorkEMailAddr = InstructorWorkEMailAddr.strip()
- if self.InstructorHomeEMailAddr == "" and self.InstructorWorkEMailAddr == "":
- self.InstructorHomeEMailAddr = "unknown@pdx.edu"
- self.InstructorBio = InstructorBio
- self.InstructorDistinctiveQual = InstructorDistinctiveQual
- InstructorDegree = InstructorDegree.upper()
- while True:
- found = False
- for c in InstructorDegree:
- if ord(c)<65 or ord(c)>90:
- InstructorDegree = InstructorDegree.replace(c,'')
- found = True
- break
- if not found:
- break
- self.InstructorDegree = InstructorDegree
- self.InstructorWWWHomePage = InstructorWWWHomePage
- self.InstructorMiscInfo = InstructorMiscInfo
- def extractArea(self,phone):
- return phone[0:2]
- def extractPhone(self,phone):
- return phone[3:]
- class DAgent:
- def __init__(self,host,username,password):
- self.log = logging.getLogger('ragve.destiny_agent.ceed')
- self.log.setLevel(logging.DEBUG)
- # create console handler and set level to debug
- ch = logging.StreamHandler()
- ch.setLevel(logging.DEBUG)
- # create formatter
- formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
- # add formatter to ch
- ch.setFormatter(formatter)
- # add ch to logger
- self.log.addHandler(ch)
- self.host = host
- self.username = username
- self.password = password
- self.success = False
- def createGroup(self,sg):
- if self.success <> True:
- self.destiny_web_agent = DestinyWebAgent(self.log,self.host)
- loginSuccess = self.destiny_web_agent.login(self.username, self.password)
- if loginSuccess == False:
- self.success = False
- return False
- self.log.info("Logged in successfully")
- createGroup = self.destiny_web_agent.createGroup(sg)
- if createGroup == False:
- self.success = False
- return False
- time.sleep(5)
- logoutSuccess = self.destiny_web_agent.logout()
- if logoutSuccess == False:
- self.success = False
- return False
- self.log.info("Logged out successfully")
- self.success = True
- return True
- def createBuilding(self,loc):
- if self.success <> True:
- self.destiny_web_agent = DestinyWebAgent(self.log,self.host)
- loginSuccess = self.destiny_web_agent.login(self.username, self.password)
- if loginSuccess == False:
- self.success = False
- return False
- self.log.info("Logged in successfully")
- updateCampusSuccess = self.destiny_web_agent.createBuilding(loc)
- if updateCampusSuccess == False:
- self.success = False
- return False
- time.sleep(5)
- logoutSuccess = self.destiny_web_agent.logout()
- if logoutSuccess == False:
- self.success = False
- return False
- self.log.info("Logged out successfully")
- self.success = True
- return True
- def createInstructor(self,inst):
- if self.success <> True:
- self.destiny_web_agent = DestinyWebAgent(self.log,self.host)
- loginSuccess = self.destiny_web_agent.login(self.username, self.password)
- if loginSuccess == False:
- self.success = False
- return False
- self.log.info("Logged in successfully")
- createInstructor = self.destiny_web_agent.createInstructor(inst)
- if createInstructor == False:
- self.success = False
- return False
- time.sleep(5)
- logoutSuccess = self.destiny_web_agent.logout()
- if logoutSuccess == False:
- self.success = False
- return False
- self.log.info("Logged out successfully")
- self.success = True
- return True
- class DestinyWebAgent:
- def __init__(self, log, host):
- self.log = log
- self.selenium = selenium("localhost", 4444, "*firefox", host)
- self.log.info("Initialize the selenium")
- self.selenium.start()
- self.selenium.open("/")
- self.selenium.window_maximize()
- self.selenium.wait_for_page_to_load("30000")
- def login(self, login, password):
- sel = self.selenium
- try:
- sel.type("id=loginId", login)
- sel.type("id=password", password)
- time.sleep(3)
- sel.click("css=input[type=\"image\"]")
- sel.wait_for_page_to_load("30000")
- except Exception as inst:
- self.log.debug("Encounter exception " + str(inst))
- self.tearDown()
- return False
- return True
- def createGroup(self,sg):
- sel = self.selenium
- try:
- sel.click("name=menuOpen")
- time.sleep(3)
- sel.click("name=menuenrolment")
- sel.wait_for_page_to_load("30000")
- time.sleep(3)
- sel.click("id=createGroup")
- sel.wait_for_page_to_load("30000")
- time.sleep(3)
- #update the student group
- sel.type("name=companyName",sg.AgencyName)
- time.sleep(1)
- sel.type("name=businessLicenseNum",sg.AgencyVendorID)
- time.sleep(1)
- sel.type("name=taxRegNum",sg.AgencyFedTaxID)
- time.sleep(1)
- sel.type("name=accountNumber",sg.AgencyACode)
- time.sleep(5)
- sel.select("name=addressType","Agency")
- time.sleep(1)
- sel.type("name=street1",sg.AgencyAddressLine1)
- time.sleep(1)
- sel.type("name=street2",sg.AgencyAddressLine2)
- time.sleep(1)
- sel.type("name=city",sg.AgencyAddressCity)
- time.sleep(1)
- sel.select("name=provinceState",sg.AgencyAddressState)
- time.sleep(1)
- sel.type("name=zipCode",sg.AgencyAddressZip)
- time.sleep(1)
- if sg.AgencyPhone != "":
- sel.select("name=telephoneType","Agency")
- time.sleep(1)
- if sel.is_element_present("//form/div/table/tbody/tr/td/table[6]/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td[.='Agency']"):
- sel.click("//form/div/table/tbody/tr/td/table[6]/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[td[.='Agency']]/td[4]/div/a")
- sel.type("name=areaCode",sg.AgencyPhoneArea)
- time.sleep(1)
- sel.type("name=telephoneNumber",sg.AgencyPhone)
- time.sleep(1)
- sel.type("name=telephoneExt",sg.AgencyPhoneExtension)
- time.sleep(1)
- # sel.click("css=a[name=\"add_phone_button\"] > img")
- if sg.AgencyFax != "":
- sel.select("name=telephoneType","Agency Fax")
- time.sleep(1)
- if sel.is_element_present("//form/div/table/tbody/tr/td/table[6]/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td[.='AgencyFax']"):
- sel.click("//form/div/table/tbody/tr/td/table[6]/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[td[.='AgencyFax']]/td[4]/div/a")
- sel.type("name=areaCode",sg.AgencyFaxArea)
- time.sleep(1)
- sel.type("name=telephoneNumber",sg.AgencyFax)
- time.sleep(1)
- sel.type("name=telephoneExt","")
- time.sleep(1)
- #sel.click("css=a[name=\"add_phone_button\"] > img")
- if sg.AgencyPhContactPersPH != "":
- sel.select("name=telephoneType","Contact")
- time.sleep(3)
- if sel.is_element_present("//form/div/table/tbody/tr/td/table[6]/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td[.='Contact']"):
- sel.click("//form/div/table/tbody/tr/td/table[6]/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[td[.='Contact']]/td[4]/div/a")
- time.sleep(3)
- sel.type("name=areaCode",sg.AgencyPhContactPersPHArea)
- time.sleep(1)
- sel.type("name=telephoneNumber",sg.AgencyPhContactPersPH)
- time.sleep(1)
- sel.type("name=telephoneExt","")
- time.sleep(1)
- #sel.click("css=a[name=\"add_phone_button\"] > img")
- if sg.AgencyPhContactPersFax != "":
- sel.select("name=telephoneType","Fax")
- time.sleep(3)
- if sel.is_element_present("//form/div/table/tbody/tr/td/table[6]/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td[.='Fax']"):
- sel.click("//form/div/table/tbody/tr/td/table[6]/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[td[.='Fax']]/td[4]/div/a")
- time.sleep(3)
- sel.type("name=areaCode",sg.AgencyPhContactPersFaxArea)
- time.sleep(1)
- sel.type("name=telephoneNumber",sg.AgencyPhContactPersFax)
- time.sleep(1)
- sel.type("name=telephoneExt","")
- time.sleep(1)
- #sel.click("css=a[name=\"add_phone_button\"] > img")
- if sg.AgencyPhoneContactPersEmail != "":
- if sel.is_element_present("//body/form/div/table/tbody/tr/td/table[6]/tbody/tr/td/table/tbody/tr/td[3]/table/tbody/tr/td/a[text()='"+sg.AgencyPhoneContactPersEmail+"']") == False:
- sel.type("name=emailAddress",sg.AgencyPhoneContactPersEmail)
- # sel.click("css=a[name="add_email_button"] > img")
- # sel.wait_for_page_to_load("30000")
- # time.sleep(3)
- if sg.Comment != "":
- sel.type("name=comment",sg.Comment)
- # sel.click("css=a[name=\"add_comments_button\"] > img")
- # sel.wait_for_page_to_load("30000")
- # sel.click("id=savePage")
- # if sel.is_element_present("//table[5]/tbody/tr/td/table/tbody/tr/td/div/table/tbody/tr/td/h2/font") :
- # self.tearDown()
- # return False
- except Exception as inst:
- self.log.debug("Encounter exception " + str(inst))
- self.tearDown()
- return False
- return True
- def createBuilding(self,loc):
- sel = self.selenium
- try:
- sel.click("name=curriculumLocations")
- sel.wait_for_page_to_load("30000")
- sel.click("link=Buildings")
- sel.wait_for_page_to_load("30000")
- sel.type("name=helper.building.code",loc.LCode)
- time.sleep(3)
- sel.type("name=helper.building.name",loc.Name)
- time.sleep(3)
- if loc.Campus == "Off Campus":
- sel.select("name=selectedCampusId","Off Campus - CA0003")
- else:
- sel.select("name=selectedCampusId","Portland State University - CA0001")
- sel.type("name=helper.building.address1",loc.Address1)
- time.sleep(3)
- sel.type("name=helper.building.city",loc.City)
- time.sleep(3)
- if loc.State <> "":
- sel.select("name=helper.building.provinceCode",loc.State)
- time.sleep(3)
- sel.type("name=helper.building.zip",loc.Zip)
- time.sleep(3)
- # sel.click("id=savePage")
- # sel.wait_for_page_to_load("30000")
- # if sel.is_element_present("//table[5]/tbody/tr/td/table/tbody/tr/td/div/table/tbody/tr/td/h2/font") :
- # self.tearDown()
- # return False
- except Exception as inst:
- self.log.debug("Encounter exception " + str(inst))
- self.tearDown()
- return False
- return True
- def createInstructor(self,instructor):
- sel = self.selenium
- try:
- sel.click("name=curriculumInstructors")
- sel.wait_for_page_to_load("30000")
- # sel.type("name=instructorNumber","T000001")
- # sel.click("id=search")
- # sel.wait_for_page_to_load("30000")
- # sel.click("link=Aasheim, Lisa")
- sel.click("id=createNewInstructor")
- sel.wait_for_page_to_load("30000")
- time.sleep(3)
- InstructorRankRCode = {"A":"Professor",
- "B":"Associate Professor",
- "C":"Assistant Professor",
- "D":"Adjunct Assistant Professor",
- "E":"Instructor",
- "F":"Adjunct Instructor",
- "G":"Adjunct Associate Professor",
- "I":"Adjunct Professor",
- "K":"Research Assistant",
- "N":"No Rank Assigned",
- "P":"Class Presenter"}
- sel.select("name=instructorKind",InstructorRankRCode[instructor.InstructorRankRCode])
- time.sleep(1)
- sel.type("name=surname",instructor.InstructorNameLast)
- time.sleep(1)
- sel.type("name=givenName",instructor.InstructorNameFirst)
- time.sleep(1)
- sel.type("name=secondGivenName",instructor.InstructorNameMI)
- time.sleep(1)
- sel.type("name=nameToAppearInPrint",instructor.InstructorNameFirst+" "+instructor.InstructorNameLast+" "+instructor.InstructorNameMI)
- time.sleep(1)
- if instructor.InstructorBirthdate != "":
- sel.type("id=birthDateString",instructor.InstructorBirthdate)
- time.sleep(1)
- sel.select("name=status",instructor.InstructorActiveFlag)
- time.sleep(1)
- sel.type("id=personnelNumber",instructor.InstructorPSUID)
- time.sleep(1)
- sel.type("name=netId",instructor.InstructorTCode)
- time.sleep(1)
- sel.type("name=employer",instructor.InstructorEmplName)
- time.sleep(1)
- sel.type("name=jobTitle",instructor.InstructorPosition)
- time.sleep(1)
- sel.type("name=firm",instructor.InstructorAgencyACode)
- time.sleep(1)
- # if instructor home address exists, make a change, otherwise add new one
- if instructor.InstructorHomeAddress1 != "" and instructor.InstructorHomeCity != "":
- sel.type("name=street1",instructor.InstructorHomeAddress1)
- time.sleep(1)
- sel.type("name=street2",instructor.InstructorHomeAddress2)
- time.sleep(1)
- sel.type("name=city",instructor.InstructorHomeCity)
- time.sleep(1)
- if instructor.InstructorHomeState != "":
- sel.select("name=provinceState",instructor.InstructorHomeState)
- time.sleep(1)
- if instructor.InstructorHomeCountry != "":
- sel.select("name=country",instructor.InstructorHomeCountry)
- time.sleep(1)
- sel.type("name=zipCode",instructor.InstructorHomeZip)
- time.sleep(1)
- sel.click("//table[@id='Table2']/tbody/tr/td/table/tbody/tr/td/table[3]/tbody/tr/td[4]/a/img")
- sel.wait_for_page_to_load("30000")
- time.sleep(1)
- if instructor.InstructorWorkAddr1 != "" and instructor.InstructorWorkAddrCity != "":
- sel.select("name=addressType","Office")
- time.sleep(1)
- sel.type("name=street1",instructor.InstructorWorkAddr1)
- time.sleep(1)
- sel.type("name=street2",instructor.InstructorWorkAddr2)
- time.sleep(1)
- sel.type("name=city",instructor.InstructorWorkAddrCity)
- time.sleep(1)
- if instructor.InstructorWorkAddrState != "":
- sel.select("name=provinceState",instructor.InstructorWorkAddrState)
- time.sleep(1)
- if instructor.InstructorWorkCountry != "":
- sel.select("name=country",instructor.InstructorWorkCountry)
- time.sleep(1)
- sel.type("name=zipCode",instructor.InstructorWorkZip)
- time.sleep(1)
- sel.click("//table[@id='Table2']/tbody/tr/td/table/tbody/tr/td/table[3]/tbody/tr/td[4]/a/img")
- sel.wait_for_page_to_load("30000")
- time.sleep(1)
- # if instructor home phone exists, make a change, otherwise add new one
- if instructor.InstructorHomePhone != "":
- sel.type("name=areaCode",instructor.InstructorHomePhoneArea)
- time.sleep(1)
- sel.type("name=telephoneNumber",instructor.InstructorHomePhone)
- time.sleep(1)
- sel.click("//table[@id='Table4']/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[5]/a/img")
- sel.wait_for_page_to_load("30000")
- time.sleep(1)
- # if instructor home fax exists, make a change, otherwise add new one
- if instructor.InstructorHomeFAX != "":
- sel.select("name=telephoneType","Fax")
- time.sleep(1)
- sel.type("name=areaCode",instructor.InstructorHomeFAXArea)
- time.sleep(1)
- sel.type("name=telephoneNumber",instructor.InstructorHomeFAX)
- sel.click("//table[@id='Table4']/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[5]/a/img")
- sel.wait_for_page_to_load("30000")
- time.sleep(1)
- # if instructor work phone exists, make a change, otherwise add new one
- if instructor.InstructorWorkPhoneNo != "":
- sel.select("name=telephoneType","Office")
- time.sleep(1)
- sel.type("name=areaCode",instructor.InstructorWorkPhoneNoArea)
- time.sleep(1)
- sel.type("name=telephoneNumber",instructor.InstructorWorkPhoneNo)
- sel.click("//table[@id='Table4']/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[5]/a/img")
- sel.wait_for_page_to_load("30000")
- time.sleep(1)
- # if instructor work fax exists, make a change, otherwise add new one
- if instructor.InstructorWorkFAX != "":
- sel.select("name=telephoneType","Fax 2")
- time.sleep(1)
- sel.type("name=areaCode",instructor.InstructorWorkFAXArea)
- time.sleep(1)
- sel.type("name=telephoneNumber",instructor.InstructorWorkFAX)
- sel.click("//table[@id='Table4']/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[5]/a/img")
- sel.wait_for_page_to_load("30000")
- time.sleep(1)
- # if instructor home email doesn't exist, add a new one
- if instructor.InstructorHomeEMailAddr != "":
- sel.type("name=emailAddress",instructor.InstructorHomeEMailAddr)
- sel.click("//table[@id='Table4']/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[2]/a/img")
- sel.wait_for_page_to_load("30000")
- time.sleep(1)
- # if instructor work email doesn't exist, add a new one
- if instructor.InstructorWorkEMailAddr != "":
- sel.type("name=emailAddress",instructor.InstructorWorkEMailAddr)
- sel.click("//table[@id='Table4']/tbody/tr/td/table/tbody/tr[2]/td[3]/table/tbody/tr/td[2]/a/img")
- sel.wait_for_page_to_load("30000")
- time.sleep(1)
- # #create new Prof table[5]
- # #update Prof table[6]
- sel.select_frame("//p[3]/table[5]/tbody/tr/td/table/tbody/tr/td/iframe[@id=\"biographies_0__description_pinedit\"]")
- sel.select_frame("//table/tbody/tr[3]/td/div/table/tbody/tr[2]/td/iframe[@id=\"pinEdit\"]")
- for c in instructor.InstructorBio:
- sel.key_press("//","\\"+str(ord(c)))
- # sel.get_eval("window.document.body.innerHTML=\""+instructor.InstructorBio+"\"")
- time.sleep(3)
- sel.select_frame("relative=top")
- sel.select_frame("//p[3]/table[5]/tbody/tr/td/table/tbody/tr/td/iframe[@id=\"biographies_1__description_pinedit\"]")
- sel.select_frame("//table/tbody/tr[3]/td/div/table/tbody/tr[2]/td/iframe[@id=\"pinEdit\"]")
- for c in instructor.InstructorDistinctiveQual:
- sel.key_press("//","\\"+str(ord(c)))
- time.sleep(3)
- sel.select_frame("relative=top")
- DegreeMap = {
- 'BA':'BA',
- 'BS':'BS',
- 'CRC':'CRC',
- 'DMA':'DMA',
- 'DMIN':'DMin',
- 'EDD':'EdD',
- 'EdS':'EDS',
- 'JD':'JD',
- 'LPC':'LPC',
- 'MA':'MA',
- 'MAIS':'MAIS',
- 'MAT':'MAT',
- 'MBA':'MBA',
- 'MD':'MD',
- 'MDIV':'MDiv',
- 'ME':'ME',
- 'MED':'MEd',
- 'MEDL':'MEdL',
- 'MFA':'MFA',
- 'MHS':'MHS',
- 'MLIS':'MLIS',
- 'MLS':'MLS',
- 'MMUS':'MMus',
- 'MOT':'MOT',
- 'MPA':'MPA',
- 'MPH':'MPH',
- 'MS':'MS',
- 'MSE':'MSE',
- 'MSSA':'MSSA',
- 'MST':'MST',
- 'MSW':'MSW',
- 'MTESL':'MTESL',
- 'PHD':'PhD',
- 'PSYD':'PsyD'
- }
- if instructor.InstructorDegree != "":
- if instructor.InstructorDegree in DegreeMap.keys():
- self.InstructorDegree = DegreeMap[instructor.InstructorDegree]
- sel.select("name=credential",instructor.InstructorDegree)
- sel.click("//p[3]/table[7]/tbody/tr[2]/td/input")
- sel.wait_for_page_to_load("30000")
- time.sleep(1)
- else:
- self.log.debug("Encounter invalid degree " + instructor.InstructorDegree)
- self.tearDown()
- return False
- comment = instructor.InstructorWWWHomePage+instructor.InstructorMiscInfo
- if comment != "":
- sel.type("name=comment",instructor.InstructorWWWHomePage+"\n"+instructor.InstructorMiscInfo)
- sel.click("//p[3]/table[9]/tbody/tr/td/table[2]/tbody/tr/td/table/tbody/tr[2]/td[3]/a/img")
- sel.wait_for_page_to_load("30000")
- time.sleep(1)
- # click to save the information
- sel.click("id=savePage")
- sel.wait_for_page_to_load("30000")
- time.sleep(5)
- if sel.is_element_present("//table[5]/tbody/tr/td/table/tbody/tr/td/div/table/tbody/tr/td/h2/font") :
- self.tearDown()
- return False
- except Exception as inst:
- self.log.debug("Encounter exception " + str(inst))
- self.tearDown()
- return False
- return True
- def logout(self):
- sel = self.selenium
- try:
- sel.click("//div[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td[7]/a/img")
- time.sleep(3)
- except Exception as inst:
- self.log.debug("Encounter exception " + str(inst))
- self.tearDown()
- return False
- return True
- def tearDown(self):
- self.selenium.stop()
- self.log.info("Turn off the selenium")
- def CreateNewInstructors(prop,host,username,password):
- f_success = open('/home/locngo/Documents/ktraks/instructors_success.txt','w')
- f_errors = open('/home/locngo/Documents/ktraks/instructors_errors.txt','w')
- json_data=open('/home/locngo/Documents/ktraks/instructor.json')
- body = json.loads(json_data.read())
- json_data.close()
- insts = body["items"]
- da = DAgent(host,username,password)
- for key in insts.keys():
- inst = insts[key]
- da.log.info("Ready to add new instructor: " + key + " - " + str(inst))
- instructor = Instructor(inst["type"],inst["lastname"],inst["firstname"],inst["minitial"],
- inst["birthdate"],inst["active"],inst["psuid"],inst["tcode"],
- inst["employer"],inst["position"],inst["acode"],inst["home"]["street1"],inst["home"]["street2"],
- inst["home"]["city"],inst["home"]["state"],inst["home"]["country"],inst["home"]["zipcode"],
- inst["office"]["street1"],inst["office"]["street2"],inst["office"]["city"],
- inst["office"]["state"],inst["office"]["country"],inst["office"]["zipcode"],
- inst["home"]["phone_area"],inst["home"]["phone_number"],inst["home"]["fax_area"],inst["home"]["fax_number"],inst["office"]["phone_area"],inst["office"]["phone_number"],inst["office"]["fax_area"],inst["office"]["fax_number"],
- inst["home"]["email"],inst["office"]["email"],inst["bio"],inst["dist_qual"],
- inst["degree"],inst["www_home"],inst["miscinfo"])
- createInstructor = da.createInstructor(instructor)
- if(createInstructor):
- f_success.write("Successfully created instructor " + key+"\n")
- f_success.flush()
- da.log.info("Successfully created instructor " + key)
- else:
- f_errors.write("Couldn't create instructor " + key+"\n")
- f_errors.flush()
- da.log.info("Couldn't create instructor " + key)
- f_success.close()
- f_errors.close()
- if da.success == True:
- da.destiny_web_agent.tearDown()
- da.log.info("End of adding instructors")
- def CreateNewStudentGroups(prop,host,username,password):
- f_success = open('/home/locngo/Documents/ktraks/groups_success.txt','w')
- f_errors = open('/home/locngo/Documents/ktraks/groups_errors.txt','w')
- json_data=open('/home/locngo/Documents/ktraks/group.json')
- body = json.loads(json_data.read())
- json_data.close()
- grs = body["items"]
- da = DAgent(host,username,password)
- for key in grs.keys():
- gr = grs[key]
- da.log.info("Ready to add new group: " + key + " - " + str(gr))
- sg = StudentGroup(gr["name"],gr["vendor_id"],gr["fed_tax_id"],gr["acode"],
- gr["addr1"],gr["addr2"],gr["city"],gr["state"],gr["zip"],
- gr["agency_phone_area"],gr["agency_phone_num"],gr["agency_phone_extn"],
- gr["agency_fax_area"],gr["agency_fax_num"],
- gr["person_phone_area"],gr["person_phone_num"],
- gr["person_fax_area"],gr["person_fax_num"],
- gr["person_email"],
- gr["person_name"],gr["www_home"],"",gr["reg_phrase"],gr["notes"])
- createGroup = da.createGroup(sg)
- if(createGroup):
- f_success.write("Successfully created student group " + key+"\n")
- f_success.flush()
- da.log.info("Successfully created student group " + key)
- else:
- f_errors.write("Couldn't create student group " + key+"\n")
- f_errors.flush()
- da.log.info("Couldn't create student group " + key)
- f_success.close()
- f_errors.close()
- if da.success == True:
- da.destiny_web_agent.tearDown()
- da.log.info("End of adding groups")
- def CreateNewBuildings(prop,host,username,password):
- f_success = open('/home/locngo/Documents/ktraks/buildings_success.txt','w')
- f_errors = open('/home/locngo/Documents/ktraks/buildings_errors.txt','w')
- json_data=open('/home/locngo/Documents/ktraks/building.json')
- body = json.loads(json_data.read())
- json_data.close()
- blds = body["items"]
- da = DAgent(host,username,password)
- for key in blds.keys():
- bld = blds[key]
- da.log.info("Ready to add new building: " + key + " - " + str(bld))
- sg = Building(bld["lcode"],bld["name"],bld["addr"],bld["city"],bld["state"],bld["zip"],bld["campus"])
- createBuilding = da.createBuilding(sg)
- if(createBuilding):
- f_success.write("Successfully created building " + key+"\n")
- f_success.flush()
- da.log.info("Successfully created building " + key)
- else:
- f_errors.write("Couldn't create builing " + key+"\n")
- f_errors.flush()
- da.log.info("Couldn't create building " + key)
- f_success.close()
- f_errors.close()
- if da.success == True:
- da.destiny_web_agent.tearDown()
- da.log.info("End of adding buildings")
- if __name__ == '__main__':
- prop = Property()
- host = prop.getProperty('destinyAgent.web_host')
- username = prop.getProperty('destinyAgent.web_login')
- password = prop.getProperty('destinyAgent.web_password')
- # CreateNewInstructors(prop,host,username,password)
- # CreateNewStudentGroups(prop,host,username,password)
- CreateNewBuildings(prop,host,username,password)
- exit(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement