def setUp(self): CRMAbstractTest.__init__(self) # Navigate to Login page self.loginPage.navigateToWeb(self.cfCrmUrl, self.cfDriver) logInfo("Login with a requestor account") self.loginPage.loginCRM(self.cfRequestorUserName, self.cfRequestorPassword) logInfo("Click Purchase Request thumbmail on Home page") self.homePage.clickThumbnail(self.cfThumbnailPurchaseRequest) logInfo("Click 'Add New' button on Manage Purchase page") self.managePurchasePage.clickAddNewButton() logInfo(" Enter all required fields with valid data") self.addNewPurchaseRequestPage.enterPurchaseRequestInfo(requestType = self.cfRequestTypeEquipment, department = self.cfDepartmentBOM, expectedDate = self.cfExpectedDate, justification = self.cfJustification, billableToClient = self.cfBillableToClientNo, description = self.cfDescription, paymentMethod = self.cfPaymentMethodCash, moneyType = self.cfMoneyTypeUSD, salesTax = self.cfSalesTaxNoSalesTax, resolution = self.cfResolutionNew, forwardTo = self.cfForwardTo) logInfo("Click Save button") self.addNewPurchaseRequestPage.clickSaveButton()
def tearDown(self): logInfo("Delete the created purchase request") self.managePurchasePage.deleteAPurchaseRequestByID(purchaseRequestID = PurchaseFilterINT.glPurchaseRequestID) logInfo("Log out of the system") self.header.logOut() self.loginPage.closeBrowser() self.assertEqual(int(os.environ['ANKI_WARNINGS']), int(os.environ['ANKI_ERRORS']))
def tearDown(self): logInfo("Delete the created purchase request") self.managePurchasePage.deleteAPurchaseRequestByID( purchaseRequestID=self.managePurchasePage.getPurchaseRequestID()) logInfo("Log out of the system") self.header.logOut() self.loginPage.closeBrowser() self.assertEqual(int(os.environ['ANKI_WARNINGS']), int(os.environ['ANKI_ERRORS']))
def loginCRM(self, username , password): try: self.enterUsername(username) self.enterPassword(password) self.clickLoginButton() logInfo("Login successfully") except Exception, e: print str(e) logWarning("Login unsuccessfully, please check username and password" ) # Close Browser and set test case is failed self.closeBrowser() self.fail()
def deleteAPurchaseRequestByID(self,purchaseRequestID): self.switchRoleByRoleName(self.cfLoginAsRequestor) purchaseRequestExist = self.doesPurchaseRequestIDExist(purchaseRequestID) if purchaseRequestExist == True: self.selectAPurchaseRequestByID(purchaseRequestID) self.clickDeleteButton() #Click OK button on CRM pop up self.clickOKButton() #wait for purchase request deleted wait(2) else: logInfo("The purchase does not exist in the system")
def loginCRM(self, username, password): try: self.enterUsername(username) self.enterPassword(password) self.clickLoginButton() logInfo("Login successfully") except Exception, e: print str(e) logWarning( "Login unsuccessfully, please check username and password") # Close Browser and set test case is failed self.closeBrowser() self.fail()
def tearDown(self): logInfo("Go to Manage request page") self.editPurchaseRequestPage.navigateToWeb(self.cfManagePurchaseRequestUrl, self.cfDriver) logInfo("Delete the created purchase request") self.managePurchasePage.deleteAPurchaseRequestByID(purchaseRequestID = PurchaseEditINT.glPurchaseRequestID) logInfo("Log out of the system") self.header.logOut() self.loginPage.closeBrowser() self.assertEqual(int(os.environ['ANKI_WARNINGS']), int(os.environ['ANKI_ERRORS']))
def TC_05(self): logInfo("TC05 - User can delete a purchase request") #Pre-condition: Login with a valid account and have at least one new purchase request created purchaseRequestID = self.managePurchasePage.getPurchaseRequestID() logInfo("Step 1 - Delete a purchase request") self.managePurchasePage.deleteAPurchaseRequestByID(purchaseRequestID = purchaseRequestID) logInfo("VP - the purchase request is deleted") self.managePurchasePage.checkAPurchaseRequestIsDeleted(purchaseRequestID) PurchaseDeleteINT.glPurchaseRequestID = purchaseRequestID
def TC_06(self): logInfo("TC06 - User can filter only one purchase request with exactly matching ID") #Pre-condition: Login with a valid account and have at least one new purchase request created purchaseRequestID = self.managePurchasePage.getPurchaseRequestID() logInfo("Step 1 - Filter the created purchase request") self.managePurchasePage.filterPurchaseRequestByID(purchaseRequestID = purchaseRequestID) logInfo("VP - User can filter only one purchase request with exactly matching ID") self.managePurchasePage.checkOnlyOnePurchaseRequestMarchingID(purchaseRequestID = purchaseRequestID) PurchaseFilterINT.glPurchaseRequestID = purchaseRequestID
def TC_05(self): logInfo("TC05 - User can delete a purchase request") #Pre-condition: Login with a valid account and have at least one new purchase request created purchaseRequestID = self.managePurchasePage.getPurchaseRequestID() logInfo("Step 1 - Delete a purchase request") self.managePurchasePage.deleteAPurchaseRequestByID( purchaseRequestID=purchaseRequestID) logInfo("VP - the purchase request is deleted") self.managePurchasePage.checkAPurchaseRequestIsDeleted( purchaseRequestID) PurchaseDeleteINT.glPurchaseRequestID = purchaseRequestID
def tearDown(self): logInfo("Go to Manage request page") self.editPurchaseRequestPage.navigateToWeb( self.cfManagePurchaseRequestUrl, self.cfDriver) logInfo("Delete the created purchase request") self.managePurchasePage.deleteAPurchaseRequestByID( purchaseRequestID=PurchaseEditINT.glPurchaseRequestID) logInfo("Log out of the system") self.header.logOut() self.loginPage.closeBrowser() self.assertEqual(int(os.environ['ANKI_WARNINGS']), int(os.environ['ANKI_ERRORS']))
def TC_06(self): logInfo( "TC06 - User can filter only one purchase request with exactly matching ID" ) #Pre-condition: Login with a valid account and have at least one new purchase request created purchaseRequestID = self.managePurchasePage.getPurchaseRequestID() logInfo("Step 1 - Filter the created purchase request") self.managePurchasePage.filterPurchaseRequestByID( purchaseRequestID=purchaseRequestID) logInfo( "VP - User can filter only one purchase request with exactly matching ID" ) self.managePurchasePage.checkOnlyOnePurchaseRequestMarchingID( purchaseRequestID=purchaseRequestID) PurchaseFilterINT.glPurchaseRequestID = purchaseRequestID
def logOut(self): self.click(self.lnkLogout) if self.doesElementExisted(LoginPage().pagUnique) == True: logInfo("Log out of system successfully") else: logWarning("Log out unsuccessfully")
def TC_02(self): logInfo( "TC02 - User is able to add new Purchase Request when saving with required fields are filled" ) #Pre-condition: Login with a valid account and have at least one new purchase request created self.loginPage.loginCRM(self.cfRequestorUserName, self.cfRequestorPassword) logInfo("Step 1 - Click Purchase Request thumbmail on Home page") self.homePage.clickThumbnail(self.cfThumbnailPurchaseRequest) logInfo("Step 2 - Click 'Add New' button on Manage Purchase page") self.managePurchasePage.clickAddNewButton() logInfo("Step 3 - Enter all required fields with valid data") self.addNewPurchaseRequestPage.enterPurchaseRequestInfo( requestType=self.cfRequestTypeEquipment, department=self.cfDepartmentBOM, expectedDate=self.cfExpectedDate, justification=self.cfJustification, billableToClient=self.cfBillableToClientNo, description=self.cfDescription, paymentMethod=self.cfPaymentMethodCash, moneyType=self.cfMoneyTypeUSD, salesTax=self.cfSalesTaxNoSalesTax, resolution=self.cfResolutionNew, forwardTo=self.cfForwardTo) logInfo("Step 4 - Click Save button") self.addNewPurchaseRequestPage.clickSaveButton() logInfo("VP - User is able to add new Purchase Request") self.addNewPurchaseRequestPage.checkAddANewPurchaseSuccessfully()
def TC_01(self): logInfo( "TC01 - User is able to access Manage Request from Request header menu or Purchase Request thumbnail on Home page" ) # Pre-condition : Login with a valid account logInfo("Login with a valid account") self.loginPage.loginCRM(self.cfRequestorUserName, self.cfRequestorPassword) logInfo("Step 1 - Click Purchase Request thumbmail on Home page") self.homePage.clickThumbnail(self.cfThumbnailPurchaseRequest) logInfo("VP - User is able to access Manage Request") self.managePurchasePage.checkTheCorrespondingManagePurchasePageIsDisplayed() logInfo("Step 2 - Navigate to Request> Purchase Request> Manage Request") self.header.navigateMenu("Requests>Purchase Request>Manage Request") logInfo("VP - User is able to access Manage Request") self.managePurchasePage.checkTheCorrespondingManagePurchasePageIsDisplayed()
def TC_03(self): logInfo( "TC03 - User is able to open Edit Purchase Request page from Manage request page or form Detail Purchase page" ) #Pre-condition: Login with a valid account and have at least one new purchase request created purchaseRequestID = self.managePurchasePage.getPurchaseRequestID() logInfo( "Step 1 - Click on Edit Purchase Request button from Manage request page" ) self.managePurchasePage.clickEditPurchaseRequestButton( purchaseRequestID=purchaseRequestID) logInfo( "VP - User is able to open Edit Purchase Request page from Manage request page" ) self.editPurchaseRequestPage.checkTheCorrespondingEditPurchasePageIsDisplayed( ) logInfo("Step 2 - Hit Cancel button to go back to Manage Request page") self.editPurchaseRequestPage.clickCancelButton() logInfo( "Step 3 - Click on Purchase Request ID from Manage request page") self.managePurchasePage.clickPurchaseRequestByID( purchaseRequestID=purchaseRequestID) logInfo("Step 4 - Click Edit button on Purchase Request Details") self.purchaseRequestDetails.clickEditButton() logInfo( "VP - User is able to open Edit Purchase Request page from Manage request page" ) self.editPurchaseRequestPage.checkTheCorrespondingEditPurchasePageIsDisplayed( ) PurchaseEditINT.glPurchaseRequestID = purchaseRequestID
def TC_01(self): logInfo( "TC01 - User is able to access Manage Request from Request header menu or Purchase Request thumbnail on Home page" ) #Pre-condition : Login with a valid account logInfo("Login with a valid account") self.loginPage.loginCRM(self.cfRequestorUserName, self.cfRequestorPassword) logInfo("Step 1 - Click Purchase Request thumbmail on Home page") self.homePage.clickThumbnail(self.cfThumbnailPurchaseRequest) logInfo("VP - User is able to access Manage Request") self.managePurchasePage.checkTheCorrespondingManagePurchasePageIsDisplayed( ) logInfo( "Step 2 - Navigate to Request> Purchase Request> Manage Request") self.header.navigateMenu("Requests>Purchase Request>Manage Request") logInfo("VP - User is able to access Manage Request") self.managePurchasePage.checkTheCorrespondingManagePurchasePageIsDisplayed( )
def TC_04(self): logInfo("TC04 - Delete button is only available with Requestor role") #Pre-condition: Login with a requestor account purchaseRequestID = self.managePurchasePage.getPurchaseRequestID() logInfo("Step 1 - Search for a purchase request") self.managePurchasePage.filterPurchaseRequestByID( purchaseRequestID=purchaseRequestID) logInfo("VP - Delete button display") self.managePurchasePage.checkDeleteButtonDisplayed() logInfo("Step 2 - Switch to Department Head role") self.managePurchasePage.switchRoleByRoleName( roleName=self.cfLoginAsDepartmentHead) logInfo("VP - Delete button DOES NOT display") self.managePurchasePage.checkDeleteButtonDoesNotDisplay() logInfo("Step 3 - Switch to Purchasing role") self.managePurchasePage.switchRoleByRoleName( roleName=self.cfLoginAsPurchasing) logInfo("VP - Delete button DOES NOT display") self.managePurchasePage.checkDeleteButtonDoesNotDisplay() logInfo("Step 4 - Switch to Director of Global Operations role") self.managePurchasePage.switchRoleByRoleName( roleName=self.cfLoginAsDirectorOfGlobalOperations) logInfo("VP - Delete button DOES NOT display") self.managePurchasePage.checkDeleteButtonDoesNotDisplay() logInfo("Step 5 - Switch to VP of Sales") self.managePurchasePage.switchRoleByRoleName( roleName=self.cfLoginAsVPOfSales) logInfo("VP - Delete button DOES NOT display") self.managePurchasePage.checkDeleteButtonDoesNotDisplay() logInfo("Step 6 - Switch to President/CEO") self.managePurchasePage.switchRoleByRoleName( roleName=self.cfLoginAsPresidentCEO) logInfo("VP - Delete button DOES NOT display") self.managePurchasePage.checkDeleteButtonDoesNotDisplay() logInfo("Step 7 - Switch to US Accounting") self.managePurchasePage.switchRoleByRoleName( roleName=self.cfLoginAsUSAccounting) logInfo("VP - Delete button DOES NOT display") self.managePurchasePage.checkDeleteButtonDoesNotDisplay() PurchaseDeleteINT.glPurchaseRequestID = purchaseRequestID
def TC_03(self): logInfo("TC03 - User is able to open Edit Purchase Request page from Manage request page or form Detail Purchase page") #Pre-condition: Login with a valid account and have at least one new purchase request created purchaseRequestID = self.managePurchasePage.getPurchaseRequestID() logInfo("Step 1 - Click on Edit Purchase Request button from Manage request page") self.managePurchasePage.clickEditPurchaseRequestButton(purchaseRequestID = purchaseRequestID) logInfo("VP - User is able to open Edit Purchase Request page from Manage request page") self.editPurchaseRequestPage.checkTheCorrespondingEditPurchasePageIsDisplayed() logInfo("Step 2 - Hit Cancel button to go back to Manage Request page") self.editPurchaseRequestPage.clickCancelButton() logInfo("Step 3 - Click on Purchase Request ID from Manage request page") self.managePurchasePage.clickPurchaseRequestByID(purchaseRequestID = purchaseRequestID) logInfo("Step 4 - Click Edit button on Purchase Request Details") self.purchaseRequestDetails.clickEditButton() logInfo("VP - User is able to open Edit Purchase Request page from Manage request page") self.editPurchaseRequestPage.checkTheCorrespondingEditPurchasePageIsDisplayed() PurchaseEditINT.glPurchaseRequestID = purchaseRequestID
def TC_04(self): logInfo("TC04 - Delete button is only available with Requestor role") #Pre-condition: Login with a requestor account purchaseRequestID = self.managePurchasePage.getPurchaseRequestID() logInfo("Step 1 - Search for a purchase request") self.managePurchasePage.filterPurchaseRequestByID(purchaseRequestID = purchaseRequestID) logInfo("VP - Delete button display") self.managePurchasePage.checkDeleteButtonDisplayed() logInfo("Step 2 - Switch to Department Head role") self.managePurchasePage.switchRoleByRoleName(roleName = self.cfLoginAsDepartmentHead) logInfo("VP - Delete button DOES NOT display") self.managePurchasePage.checkDeleteButtonDoesNotDisplay() logInfo("Step 3 - Switch to Purchasing role") self.managePurchasePage.switchRoleByRoleName(roleName = self.cfLoginAsPurchasing) logInfo("VP - Delete button DOES NOT display") self.managePurchasePage.checkDeleteButtonDoesNotDisplay() logInfo("Step 4 - Switch to Director of Global Operations role") self.managePurchasePage.switchRoleByRoleName(roleName = self.cfLoginAsDirectorOfGlobalOperations) logInfo("VP - Delete button DOES NOT display") self.managePurchasePage.checkDeleteButtonDoesNotDisplay() logInfo("Step 5 - Switch to VP of Sales") self.managePurchasePage.switchRoleByRoleName(roleName = self.cfLoginAsVPOfSales) logInfo("VP - Delete button DOES NOT display") self.managePurchasePage.checkDeleteButtonDoesNotDisplay() logInfo("Step 6 - Switch to President/CEO") self.managePurchasePage.switchRoleByRoleName(roleName = self.cfLoginAsPresidentCEO) logInfo("VP - Delete button DOES NOT display") self.managePurchasePage.checkDeleteButtonDoesNotDisplay() logInfo("Step 7 - Switch to US Accounting") self.managePurchasePage.switchRoleByRoleName(roleName = self.cfLoginAsUSAccounting) logInfo("VP - Delete button DOES NOT display") self.managePurchasePage.checkDeleteButtonDoesNotDisplay() PurchaseDeleteINT.glPurchaseRequestID = purchaseRequestID