File indexing completed on 2024-04-21 16:12:39

0001 #!/usr/bin/env python3
0002 
0003 # SPDX-License-Identifier: MIT
0004 # SPDX-FileCopyrightText: 2016 Microsoft Corporation. All rights reserved.
0005 # SPDX-FileCopyrightText: 2021-2022 Harald Sitter <sitter@kde.org>
0006 
0007 import unittest
0008 from appium import webdriver
0009 from appium.webdriver.common.appiumby import AppiumBy
0010 from selenium.webdriver.support.ui import WebDriverWait
0011 import time
0012 
0013 
0014 class SimpleCalculatorTests(unittest.TestCase):
0015 
0016     @classmethod
0017 
0018     def setUpClass(self):
0019         desired_caps = {}
0020         desired_caps["app"] = "plasmawindowed org.kde.plasma.calculator"
0021         desired_caps["timeouts"] = {'implicit': 10000}
0022         self.driver = webdriver.Remote(
0023             command_executor='http://127.0.0.1:4723',
0024             desired_capabilities=desired_caps)
0025 
0026     def setUp(self):
0027         self.driver.find_element(by=AppiumBy.NAME, value="AC").click()
0028         wait = WebDriverWait(self.driver, 5)
0029         wait.until(lambda x: self.getresults() == '0')
0030 
0031     def tearDown(self):
0032         if not self._outcome.result.wasSuccessful():
0033             self.driver.get_screenshot_as_file("failed_test_shot_{}.png".format(self.id()))
0034 
0035     @classmethod
0036     def tearDownClass(self):
0037         self.driver.quit()
0038 
0039     def getresults(self):
0040         displaytext = self.driver.find_element(by='description', value="Result").text
0041         return displaytext
0042 
0043     def test_initialize(self):
0044         self.driver.find_element(by=AppiumBy.NAME, value="AC").click()
0045         self.driver.find_element(by=AppiumBy.NAME, value="7").click()
0046         self.assertEqual(self.getresults(),"7")
0047 
0048     def test_addition(self):
0049         self.driver.find_element(by=AppiumBy.NAME, value="1").click()
0050         self.driver.find_element(by=AppiumBy.NAME, value="+").click()
0051         self.driver.find_element(by=AppiumBy.NAME, value="7").click()
0052         self.driver.find_element(by=AppiumBy.NAME, value="=").click()
0053         self.assertEqual(self.getresults(),"8")
0054 
0055     def test_combination(self):
0056         self.driver.find_element(by=AppiumBy.NAME, value="7").click()
0057         self.driver.find_element(by=AppiumBy.NAME, value="×").click()
0058         self.driver.find_element(by=AppiumBy.NAME, value="9").click()
0059         self.driver.find_element(by=AppiumBy.NAME, value="+").click()
0060         self.driver.find_element(by=AppiumBy.NAME, value="1").click()
0061         self.driver.find_element(by=AppiumBy.NAME, value="=").click()
0062         self.driver.find_element(by=AppiumBy.NAME, value="÷").click()
0063         self.driver.find_element(by=AppiumBy.NAME, value="8").click()
0064         self.driver.find_element(by=AppiumBy.NAME, value="=").click()
0065         self.assertEqual(self.getresults(),"8")
0066 
0067     def test_division(self):
0068         self.driver.find_element(by=AppiumBy.NAME, value="8").click()
0069         self.driver.find_element(by=AppiumBy.NAME, value="8").click()
0070         self.driver.find_element(by=AppiumBy.NAME, value="÷").click()
0071         self.driver.find_element(by=AppiumBy.NAME, value="1").click()
0072         self.driver.find_element(by=AppiumBy.NAME, value="1").click()
0073         self.driver.find_element(by=AppiumBy.NAME, value="=").click()
0074         self.assertEqual(self.getresults(),"8")
0075 
0076     def test_multiplication(self):
0077         self.driver.find_element(by=AppiumBy.NAME, value="9").click()
0078         self.driver.find_element(by=AppiumBy.NAME, value="×").click()
0079         self.driver.find_element(by=AppiumBy.NAME, value="8").click()
0080         self.driver.find_element(by=AppiumBy.NAME, value="=").click()
0081         self.assertEqual(self.getresults(),"72")
0082 
0083     def test_subtraction(self):
0084         self.driver.find_element(by=AppiumBy.NAME, value="9").click()
0085         self.driver.find_element(by=AppiumBy.NAME, value="-").click()
0086         self.driver.find_element(by=AppiumBy.NAME, value="1").click()
0087         self.driver.find_element(by=AppiumBy.NAME, value="=").click()
0088         self.assertEqual(self.getresults(),"8")
0089 
0090 
0091 if __name__ == '__main__':
0092     unittest.main()