def fileFindReplace(testcaseId, appName, inFileName, inFindText, inReplaceText): stepName = "find '"+ inFindText +"' replace '"+ inReplaceText +"'" baseObjectPath = target.processes()["Safari"].mainWindow().webViews()[0] myResults = bs_common.getResultsData() if baseObjectPath.staticTexts()["Loading..."]: with patience(30): baseObjectPath.staticTexts()["Loading..."].waitForInvalid() if not target.processes()["Safari"].windows().firstWithPredicate_("name like '*"+ inFileName +"*'"): bs_common.writeItemToLogFile("INFO - failed to find "+ inFileName +" open") bs_common.writeResults(testcaseId, stepName, "FAIL") msg = "FAIL - "+ stepName bs_common.scriptFailedExit(msg) keyboard.typeVirtualKey_withModifiersMask_(3, (kUIAControlKeyMask)) baseObjectPath.buttons()[0].click() baseObjectPath.menuItems()["Find & Replace"].click() baseObjectPath.textFields()["Find"].click() keyboard.typeString_(inFindText) baseObjectPath.textFields()["Replace"].click() keyboard.typeString_(inReplaceText) if baseObjectPath.textFields()["Replace"].value() == inReplaceText: baseObjectPath.buttons()["Done\n"].click() bs_common.writeResults(testcaseId, stepName, "PASS") msg = "PASS - "+ stepName bs_common.writeItemToLogFile(msg) else: bs_common.writeResults(testcaseId, stepName, "FAIL") msg = "FAIL - "+ stepName bs_common.scriptFailedExit(msg)
def modifySpreadsheetTabs(testcaseId, inFileName): stepName = "modify spreadsheet tabs" baseObjectPath = target.processes()["Safari"].mainWindow().webViews()[0] myResults = bs_common.getResultsData() if baseObjectPath.staticTexts()["Loading..."]: with patience(30): baseObjectPath.staticTexts()["Loading..."].waitForInvalid() if not target.processes()["Safari"].windows().firstWithPredicate_("name like '*"+ inFileName +"*'"): bs_common.writeItemToLogFile("INFO - failed to find "+ inFileName +" open") bs_common.writeResults(testcaseId, stepName, "FAIL") msg = "FAIL - "+ stepName bs_common.scriptFailedExit(msg) baseObjectPath.buttons()[0].click() time.sleep(1) baseObjectPath.buttons()[0].click() time.sleep(1) if not baseObjectPath.staticTexts()["Sheet 1"] and baseObjectPath.staticTexts()["Sheet 2"]: bs_common.writeItemToLogFile("INFO - failed to find new spreadsheet tabs") bs_common.writeResults(testcaseId, stepName, "FAIL") msg = "FAIL - "+ stepName bs_common.scriptFailedExit(msg) keyboard.pressKey_(kVK_Control) baseObjectPath.staticTexts()["Sheet 2"].click() keyboard.releaseKey_(kVK_Control) baseObjectPath.menuItems()["Delete Sheet"].staticTexts()["Delete Sheet"].click() time.sleep(1) if baseObjectPath.staticTexts()["Sheet 2"]: bs_common.writeItemToLogFile("INFO - failed to delete tab 'Sheet 2'") bs_common.writeResults(testcaseId, stepName, "FAIL") msg = "FAIL - "+ stepName bs_common.scriptFailedExit(msg) baseObjectPath.staticTexts()["Sheet 1"].click() baseObjectPath.staticTexts()["Sheet 1"].doubleClick() keyboard.typeString_("Bills") keyboard.typeVirtualKey_(kVK_Return) time.sleep(1) if not baseObjectPath.staticTexts()["Bills"]: bs_common.writeItemToLogFile("INFO - failed to rename tab") bs_common.writeResults(testcaseId, stepName, "FAIL") msg = "FAIL - "+ stepName bs_common.scriptFailedExit(msg) else: bs_common.writeResults(testcaseId, stepName, "PASS") msg = "PASS - "+ stepName bs_common.writeItemToLogFile(msg)
def formatMenuShowHide(testcaseId, appName, inFileName): stepName = "format menu show / hide" myResults = bs_common.getResultsData() if target.processes()["Safari"].windows()[inFileName]: if target.processes()["Safari"].mainWindow().webViews()[0].buttons()["Text"]: if target.processes()["Safari"].mainWindow().webViews()[0].elements().firstWithPredicate_("className like 'UIAToolbar'").buttons()["Tools"]: target.processes()["Safari"].mainWindow().webViews()[0].elements().firstWithPredicate_("className like 'UIAToolbar'").buttons()["Tools"].click() if target.processes()["Safari"].mainWindow().webViews()[0].menuItems()["Hide Format Panel"].staticTexts()["Hide Format Panel"]: target.processes()["Safari"].mainWindow().webViews()[0].menuItems()["Hide Format Panel"].staticTexts()["Hide Format Panel"].click() else: bs_common.writeItemToLogFile("INFO - failed to find menuItem 'Hide Format Panel'") bs_common.writeResults(testcaseId, stepName, "FAIL") msg = "FAIL - "+ stepName bs_common.scriptFailedExit(msg) time.sleep(5) if target.processes()["Safari"].mainWindow().webViews()[0].elements().firstWithPredicate_("className like 'UIAToolbar'").buttons()["Tools"]: target.processes()["Safari"].mainWindow().webViews()[0].elements().firstWithPredicate_("className like 'UIAToolbar'").buttons()["Tools"].click() if target.processes()["Safari"].mainWindow().webViews()[0].menuItems()["Show Format Panel"].staticTexts()["Show Format Panel"]: target.processes()["Safari"].mainWindow().webViews()[0].menuItems()["Show Format Panel"].staticTexts()["Show Format Panel"].click() else: bs_common.writeItemToLogFile("INFO - failed to find menuItem 'Show Format Panel'") bs_common.writeResults(testcaseId, stepName, "FAIL") msg = "FAIL - "+ stepName bs_common.scriptFailedExit(msg) if target.processes()["Safari"].mainWindow().webViews()[0].buttons()["Text"]: bs_common.writeResults(testcaseId, stepName, "PASS") msg = "PASS - "+ stepName bs_common.writeItemToLogFile(msg) else: bs_common.writeResults(testcaseId, stepName, "FAIL") msg = "FAIL - "+ stepName bs_common.scriptFailedExit(msg)
def fileShowHelp(testcaseId, appName, inFileName): stepName = "show help for '"+ inFileName +"'" baseObjectPath = target.processes()["Safari"].mainWindow().webViews()[0] myResults = bs_common.getResultsData() if not target.processes()["Safari"].windows().firstWithPredicate_("name like '*"+ inFileName +"*'"): bs_common.writeItemToLogFile("INFO - failed to find "+ inFileName +" open") bs_common.writeResults(testcaseId, stepName, "FAIL") msg = "FAIL - "+ stepName bs_common.scriptFailedExit(msg) if baseObjectPath.elements().firstWithPredicate_("className like 'UIAToolbar'").buttons()["Tools"]: baseObjectPath.elements().firstWithPredicate_("className like 'UIAToolbar'").buttons()["Tools"].click() else: bs_common.writeItemToLogFile("INFO - failed to find toolbar") bs_common.writeResults(testcaseId, stepName, "FAIL") msg = "FAIL - "+ stepName bs_common.scriptFailedExit(msg) if baseObjectPath.menuItems()["Help"]: baseObjectPath.menuItems()["Help"].click() else: bs_common.writeItemToLogFile("INFO - failed to find menuItem") bs_common.writeResults(testcaseId, stepName, "FAIL") msg = "FAIL - "+ stepName bs_common.scriptFailedExit(msg) if target.processes()["Safari"].windows()["iCloud Help"]: target.processes()["Safari"].windows()["iCloud Help"].closeButton().click() bs_common.writeResults(testcaseId, stepName , "PASS") msg = "PASS - "+ stepName bs_common.writeItemToLogFile(msg) else: bs_common.writeItemToLogFile("INFO - failed to find help window") bs_common.writeResults(testcaseId, stepName, "FAIL") msg = "FAIL - "+ stepName bs_common.scriptFailedExit(msg)
def runTest(params): ################################################################### sys.path.append('../Libraries') import bs_common, bs_icloud, bs_gilligan ################################################################### bs_common.setConfigurationData() bs_common.writeConfigurationDataToLogFile() bs_common.writeResultsHeaderDataToLogFile() bs_common.writeOSXProfileToFile() myResultsData = bs_common.getResultsData() bs_common.writeItemToCsvFile("Skipper Automation Test Suite started on: "+ time.strftime("%a %d %b %Y %I:%M:%S %p",time.localtime())) bs_common.writeItemToCsvFile("OS: OS X Browser: Safari / "+ myResultsData["configurations"]["browserVersion"]) bs_icloud.loadiCloudURL("xxxxxxxx") bs_icloud.iCloudSignIn("xxxxxxxx") bs_gilligan.loadGilliganApp("xxxxxxxx", "Keynote") bs_common.writeItemToCsvFile("Gilligan login :, PASSED") bs_gilligan.deleteGilliganFiles("xxxxxxxx", "Keynote") bs_common.writeItemToCsvFile("Deleting All Existing Presentations :, PASSED") bs_gilligan.createNewFile("xxxxxxxx", "Keynote", "Photo Portfolio") bs_common.writeItemToCsvFile("Create Presentation (Photo Portfolio Theme via + Icon) :, PASSED") bs_gilligan.fileClose("xxxxxxxx", "Presentation") bs_gilligan.checkFileSyncing("Keynote") bs_gilligan.contextMenu_fileDuplicate("xxxxxxxx", "Keynote", "Presentation") bs_common.writeItemToCsvFile("Duplicate (Via Context Menu) :, PASSED") bs_gilligan.checkFileSyncing("Keynote") bs_gilligan.contextMenu_fileDownload("xxxxxxxx", "Keynote", "Presentation copy", "PowerPoint") bs_common.writeItemToCsvFile("Download (in Powerpoint Via Context Menu) :, PASSED") bs_gilligan.fileRename("xxxxxxxx", "Keynote", "Presentation copy", "Memories_2013") bs_common.writeItemToCsvFile("Rename Presentation :, PASSED") bs_gilligan.checkFileSyncing("Keynote") bs_gilligan.fileOpen("xxxxxxxx", "Keynote", "Memories_2013") bs_common.writeItemToCsvFile("Open existing presentation :, PASSED") bs_gilligan.fileClose("xxxxxxxx", "Memories_2013") bs_gilligan.checkFileSyncing("Keynote") bs_gilligan.gearMenu_fileDuplicate("xxxxxxxx", "Keynote", "Memories_2013") bs_common.writeItemToCsvFile("Duplicate (Via Gear Menu) :, PASSED") bs_gilligan.checkFileSyncing("Keynote") bs_gilligan.gearMenu_fileDownload("xxxxxxxx", "Keynote", "Memories_2013", "Keynote") bs_common.writeItemToCsvFile("Download (in Keynote Via Gear Menu) :, PASSED") bs_gilligan.gearMenu_fileDelete("xxxxxxxx", "Keynote", "Memories_2013") bs_common.writeItemToCsvFile("Delete Presentation (Via Gear Menu) :, PASSED") bs_gilligan.checkFileSyncing("Keynote") bs_gilligan.gearMenu_fileUpload("xxxxxxxx", "Keynote", "test_upload.key") bs_common.writeItemToCsvFile("Upload Presentation :, PASSED") bs_gilligan.checkFileSyncing("Keynote") bs_gilligan.fileOpenUploaded("xxxxxxxx", "Keynote", "test_upload") bs_common.writeItemToCsvFile("Open uploaded presentation :, PASSED") bs_gilligan.fileClose("xxxxxxxx", "test_upload") bs_gilligan.checkFileSyncing("Keynote") bs_gilligan.fileOpen("xxxxxxxx", "Keynote", "test_upload") bs_gilligan.fileClose("xxxxxxxx", "test_upload") bs_gilligan.checkFileSyncing("Keynote") bs_gilligan.exitGilligan("xxxxxxxx", "Keynote") bs_common.writeItemToCsvFile("Gilligan logout :, PASSED") bs_icloud.iCloudSignOut("xxxxxxxx") bs_common.quitSafari() bs_common.fileDeleteFromOSX("Memories_2013.key") bs_common.fileDeleteFromOSX("Presentation copy.ppt") # bs_common.generateResultsEmail("Skipper") bs_common.formatResultsData() bs_common.resetConfigurationData() logPass()
def runTest(params): ################################################################### sys.path.append('../Libraries') import bs_common, bs_icloud, bs_gilligan ################################################################### bs_common.setConfigurationData() bs_common.writeConfigurationDataToLogFile() bs_common.writeResultsHeaderDataToLogFile() bs_common.writeOSXProfileToFile() myResultsData = bs_common.getResultsData() bs_common.writeItemToCsvFile("Pesto Automation Test Suite started on: "+ time.strftime("%a %d %b %Y %I:%M:%S %p",time.localtime())) bs_common.writeItemToCsvFile("OS: OS X Browser: Safari / "+ myResultsData["configurations"]["browserVersion"]) bs_icloud.loadiCloudURL("xxxxxxxx") bs_icloud.iCloudSignIn("xxxxxxxx") bs_gilligan.loadGilliganApp("xxxxxxxx", "Pages") bs_common.writeItemToCsvFile("Gilligan login :, PASSED") bs_gilligan.deleteGilliganFiles("xxxxxxxx", "Pages") bs_common.writeItemToCsvFile("Deleting All Existing Documents :, PASSED") bs_gilligan.validateGearMenu("xxxxxxxx", "Pages") bs_common.writeItemToCsvFile("Validate Gear Menu Items :, PASSED") bs_gilligan.createNewFile("xxxxxxxx", "Pages", "Blank") bs_gilligan.fileClose("xxxxxxxx", "Blank") bs_gilligan.checkFileSyncing("Pages") bs_common.writeItemToCsvFile("Creating Doc (Blank Theme Via Gear Icon) :, PASSED") bs_gilligan.fileRename("xxxxxxxx", "Pages", "Blank", "Test_00.pages") bs_gilligan.checkFileSyncing("Pages") bs_common.writeItemToCsvFile("Rename Blank Doc :, PASSED") bs_gilligan.fileOpen("xxxxxxxx", "Pages", "Test_00.pages") bs_gilligan.formatMenuShowHide("xxxxxxxx", "Pages", "Test_00.pages") bs_gilligan.fileClose("xxxxxxxx", "Test_00.pages") bs_gilligan.checkFileSyncing("Pages") bs_common.writeItemToCsvFile("Blank Document Show/Hide format bar only :, PASSED") bs_gilligan.createNewFile("xxxxxxxx", "Pages", "Personal Photo Letter") bs_gilligan.fileClose("xxxxxxxx", "Personal Photo Letter") bs_gilligan.checkFileSyncing("Pages") bs_common.writeItemToCsvFile("Personal Photo Letter (create/open only) :, PASSED") bs_gilligan.fileRename("xxxxxxxx", "Pages", "Personal Photo Letter", "Test_02") bs_gilligan.checkFileSyncing("Pages") bs_common.writeItemToCsvFile("Rename Personal Photo Letter Doc :, PASSED") bs_gilligan.gearMenu_fileDuplicate("xxxxxxxx", "Pages", "Test_02") bs_gilligan.checkFileSyncing("Pages") bs_common.writeItemToCsvFile("Duplicate (Via Gear Icon) :, PASSED") bs_gilligan.gearMenu_fileDownload("xxxxxxxx", "Pages", "Test_02 copy", "Pages") bs_gilligan.checkFileSyncing("Pages") bs_common.writeItemToCsvFile("Download (In Pages Via Gear Icon) :, PASSED") bs_gilligan.createNewFile("xxxxxxxx", "Pages", "Project Proposal") bs_gilligan.fileClose("xxxxxxxx", "Project Proposal") bs_gilligan.checkFileSyncing("Pages") bs_common.writeItemToCsvFile("Project Proposal *** Create only. Image edit not implemented *** :, PASSED") bs_gilligan.gearMenu_fileDownload("xxxxxxxx", "Pages", "Test_02 copy", "PDF") bs_gilligan.checkFileSyncing("Pages") bs_common.writeItemToCsvFile("Download (In PDF Via Gear Icon) :, PASSED") bs_gilligan.gearMenu_fileDownload("xxxxxxxx", "Pages", "Project Proposal", "Word") bs_gilligan.checkFileSyncing("Pages") bs_common.writeItemToCsvFile("Download (In Word Via Gear Icon) :, PASSED") bs_gilligan.createNewFile("xxxxxxxx", "Pages", "Poster") bs_common.writeItemToCsvFile("Creating Doc (Poster Theme Via + Icon) :, PASSED") bs_gilligan.fileClose("xxxxxxxx", "Poster") bs_common.writeItemToCsvFile("Saving Document :, PASSED") bs_gilligan.checkFileSyncing("Pages") bs_gilligan.gearMenu_fileDelete("xxxxxxxx", "Pages", "Project Proposal") bs_common.writeItemToCsvFile("Deleting Document Via Gear Menu :, PASSED") bs_gilligan.gearMenu_fileUpload("xxxxxxxx", "Pages", "Test_01.pages") bs_gilligan.contextMenu_fileDuplicate("xxxxxxxx", "Pages", "Test_01") bs_gilligan.checkFileSyncing("Pages") bs_common.writeItemToCsvFile("Upload Pages :, PASSED") bs_gilligan.fileRename("xxxxxxxx", "Pages", "Test_01 copy", "Test Uploaded") bs_common.writeItemToCsvFile("Rename Doc :, PASSED") bs_gilligan.fileOpen("xxxxxxxx", "Pages", "Test Uploaded") bs_common.writeItemToCsvFile("Open And Edit Uploaded Pages *** edit not implemented *** :, PASSED") bs_gilligan.fileClose("xxxxxxxx", "Test Uploaded") bs_gilligan.checkFileSyncing("Pages") bs_gilligan.contextMenu_fileDuplicate("xxxxxxxx", "Pages", "Test Uploaded") bs_gilligan.checkFileSyncing("Pages") bs_common.writeItemToCsvFile("Duplicate (Via Context Menu) :, PASSED") bs_gilligan.contextMenu_fileDownload("xxxxxxxx", "Pages", "Test Uploaded copy", "PDF") bs_common.writeItemToCsvFile("Downloading PDF Doc Via Context Menu :, PASSED") bs_gilligan.contextMenu_fileDuplicate("xxxxxxxx", "Pages", "Test_01") bs_gilligan.checkFileSyncing("Pages") bs_gilligan.fileRename("xxxxxxxx", "Pages", "Test_01 copy", "Test_03") bs_gilligan.checkFileSyncing("Pages") bs_common.writeItemToCsvFile("Rename Doc :, PASSED") bs_gilligan.fileOpen("xxxxxxxx", "Pages", "Test_03") bs_gilligan.fileFindReplace("xxxxxxxx", "Pages", "Test_03", "null", "Float") bs_gilligan.fileShowHelp("xxxxxxxx", "Pages", "Test_03") bs_gilligan.fileClose("xxxxxxxx", "Test_03") bs_common.writeItemToCsvFile("Open And Edit Existing Doc :, PASSED") bs_gilligan.gearMenu_fileUpload("xxxxxxxx", "Pages", "test.txt") bs_gilligan.checkFileSyncing("Pages") bs_common.writeItemToCsvFile("Upload Text File :, PASSED") bs_gilligan.gearMenu_fileDelete("xxxxxxxx", "Pages", "test") bs_common.writeItemToCsvFile("Deleting Text File With Delete Key :, PASSED") bs_gilligan.exitGilligan("xxxxxxxx", "Pages") bs_common.writeItemToCsvFile("Gilligan logout:, PASSED") bs_icloud.iCloudSignOut("xxxxxxxx") bs_common.quitSafari() bs_common.fileDeleteFromOSX("Test_02 copy.pages") bs_common.fileDeleteFromOSX("Project Proposal.doc") bs_common.fileDeleteFromOSX("Test Uploaded copy.pages") bs_common.resetConfigurationData() logPass()
def runTest(params): ################################################################### sys.path.append('../Libraries') import bs_common, bs_icloud, bs_gilligan ################################################################### bs_common.setConfigurationData() bs_common.writeConfigurationDataToLogFile() bs_common.writeResultsHeaderDataToLogFile() bs_common.writeOSXProfileToFile() myResultsData = bs_common.getResultsData() bs_common.writeItemToCsvFile("Pi Automation Test Suite started on: "+ time.strftime("%a %d %b %Y %I:%M:%S %p",time.localtime())) bs_common.writeItemToCsvFile("OS: OS X Browser: Safari / "+ myResultsData["configurations"]["browserVersion"]) bs_icloud.loadiCloudURL("xxxxxxxx") bs_icloud.iCloudSignIn("xxxxxxxx") bs_gilligan.loadGilliganApp("xxxxxxxx", "Numbers") bs_common.writeItemToCsvFile("Gilligan login :, PASSED") bs_gilligan.deleteGilliganFiles("xxxxxxxx", "Numbers") bs_common.writeItemToCsvFile("Deleting All Existing Spreadsheets :, PASSED") bs_gilligan.createNewFile("xxxxxxxx", "Numbers", "Budget") bs_common.writeItemToCsvFile("Create Spreadsheet (Budget Theme Via Gear Menu) :, PASSED") bs_gilligan.fileClose("xxxxxxxx", "Budget") bs_gilligan.checkFileSyncing("Numbers") bs_gilligan.gearMenu_fileDownload("xxxxxxxx", "Numbers", "Budget", "Numbers") bs_common.writeItemToCsvFile("Download (in Numbers Via Gear Icon) :, PASSED") bs_gilligan.gearMenu_fileDuplicate("xxxxxxxx", "Numbers", "Budget") bs_common.writeItemToCsvFile("Duplicate (Via Gear menu) :, PASSED") bs_gilligan.fileRename("xxxxxxxx", "Numbers", "Budget copy", "Personal Budget_2013") bs_common.writeItemToCsvFile("Rename Spreadsheet :, PASSED") bs_gilligan.fileOpen("xxxxxxxx", "Numbers", "Personal Budget_2013") bs_common.writeItemToCsvFile("Open existing spreadsheet :, PASSED") bs_gilligan.modifySpreadsheetTabs("xxxxxxxx", "Personal Budget_2013") bs_common.writeItemToCsvFile("Add sheets to spreadsheet :, PASSED") bs_common.writeItemToCsvFile("Delete sheet :, PASSED") bs_common.writeItemToCsvFile("Rename sheet :, PASSED") bs_common.writeItemToCsvFile("Apply Table Style *** not implemented ***:, PASSED") bs_gilligan.fileClose("xxxxxxxx", "Personal Budget_2013") bs_gilligan.checkFileSyncing("Numbers") bs_gilligan.createNewFile("xxxxxxxx", "Numbers", "Mortgage Calculator") bs_common.writeItemToCsvFile("Create Spreadsheet (Mortgage Calculator Theme via + Icon) :, PASSED") bs_common.writeItemToCsvFile("Table editing *** not implemented ***:, PASSED") bs_gilligan.fileClose("xxxxxxxx", "Mortgage Calculator") bs_gilligan.checkFileSyncing("Numbers") bs_gilligan.createNewFile("xxxxxxxx", "Numbers", "Blank") bs_common.writeItemToCsvFile("Create Spreadsheet (Blank Theme via Gear Icon) :, PASSED") bs_common.writeItemToCsvFile("Table editing *** not implemented ***:, PASSED") bs_common.writeItemToCsvFile("Cancel on Delete *** not implemented ***:, PASSED") bs_gilligan.fileClose("xxxxxxxx", "Blank") bs_gilligan.checkFileSyncing("Numbers") bs_gilligan.gearMenu_fileUpload("xxxxxxxx", "Numbers", "test_01.numbers") bs_common.writeItemToCsvFile("Upload Numbers :, PASSED") bs_gilligan.checkFileSyncing("Numbers") bs_gilligan.fileOpenUploaded("xxxxxxxx", "Numbers", "test_01") bs_common.writeItemToCsvFile("Open and Save Uploaded :, PASSED") bs_gilligan.fileClose("xxxxxxxx", "test_01") bs_gilligan.checkFileSyncing("Numbers") bs_gilligan.exitGilligan("xxxxxxxx", "Numbers") bs_common.writeItemToCsvFile("Gilligan logout :, PASSED") bs_icloud.iCloudSignOut("xxxxxxxx") bs_common.quitSafari() bs_common.fileDeleteFromOSX("Budget.numbers") bs_common.resetConfigurationData() logPass()