Make changes as per the code review
Browse files- .gitignore +2 -0
- e2e_tests/__init__.py +0 -0
- e2e_tests/test_sauce_labs.py +14 -25
- e2e_tests/utils.py +24 -0
.gitignore
CHANGED
|
@@ -1,5 +1,7 @@
|
|
| 1 |
**/*.swp
|
| 2 |
**/*.env
|
|
|
|
| 3 |
.vscode
|
| 4 |
puppet.db
|
| 5 |
node_modules/
|
|
|
|
|
|
| 1 |
**/*.swp
|
| 2 |
**/*.env
|
| 3 |
+
__pycache__
|
| 4 |
.vscode
|
| 5 |
puppet.db
|
| 6 |
node_modules/
|
| 7 |
+
|
e2e_tests/__init__.py
ADDED
|
File without changes
|
e2e_tests/test_sauce_labs.py
CHANGED
|
@@ -8,6 +8,7 @@ from appium import webdriver
|
|
| 8 |
from appium.webdriver.common.appiumby import AppiumBy
|
| 9 |
from selenium.webdriver.remote.webdriver import WebDriver
|
| 10 |
from dotenv import load_dotenv
|
|
|
|
| 11 |
|
| 12 |
load_dotenv()
|
| 13 |
|
|
@@ -56,7 +57,6 @@ def create_android_driver(sauce_labs=False):
|
|
| 56 |
else:
|
| 57 |
connection_url = APPIUM_SERVER_URL
|
| 58 |
|
| 59 |
-
|
| 60 |
return webdriver.Remote(connection_url, capabilities)
|
| 61 |
|
| 62 |
|
|
@@ -69,10 +69,11 @@ def android_driver(options):
|
|
| 69 |
|
| 70 |
|
| 71 |
def save_server_settings(driver: WebDriver):
|
| 72 |
-
element =
|
| 73 |
-
|
|
|
|
|
|
|
| 74 |
)
|
| 75 |
-
element.click()
|
| 76 |
element = driver.find_element(
|
| 77 |
by=AppiumBy.ID, value=f"{APP_PACKAGE_NAME}:id/serverUrlEditText"
|
| 78 |
)
|
|
@@ -81,31 +82,19 @@ def save_server_settings(driver: WebDriver):
|
|
| 81 |
by=AppiumBy.ID, value=f"{APP_PACKAGE_NAME}:id/uuidEditText"
|
| 82 |
)
|
| 83 |
element.send_keys(TEST_UUID)
|
| 84 |
-
element =
|
| 85 |
-
|
|
|
|
|
|
|
| 86 |
)
|
| 87 |
-
element.click()
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
def wait_for_element(
|
| 91 |
-
driver: WebDriver, by_selector: str, selector_value: str, timeout: int = 2
|
| 92 |
-
):
|
| 93 |
-
from selenium.webdriver.support.wait import WebDriverWait
|
| 94 |
-
from selenium.webdriver.support import expected_conditions as EC
|
| 95 |
-
|
| 96 |
-
try:
|
| 97 |
-
element = WebDriverWait(driver, timeout).until(
|
| 98 |
-
EC.presence_of_element_located((by_selector, selector_value))
|
| 99 |
-
)
|
| 100 |
-
|
| 101 |
-
except:
|
| 102 |
-
element = None
|
| 103 |
-
finally:
|
| 104 |
-
return element
|
| 105 |
|
| 106 |
|
| 107 |
def enable_privacy_settings(driver: WebDriver):
|
| 108 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 109 |
primary_checkbox = driver.find_element(
|
| 110 |
by=AppiumBy.ID, value="android:id/switch_widget"
|
| 111 |
)
|
|
|
|
| 8 |
from appium.webdriver.common.appiumby import AppiumBy
|
| 9 |
from selenium.webdriver.remote.webdriver import WebDriver
|
| 10 |
from dotenv import load_dotenv
|
| 11 |
+
from utils import wait_for_element, find_and_click
|
| 12 |
|
| 13 |
load_dotenv()
|
| 14 |
|
|
|
|
| 57 |
else:
|
| 58 |
connection_url = APPIUM_SERVER_URL
|
| 59 |
|
|
|
|
| 60 |
return webdriver.Remote(connection_url, capabilities)
|
| 61 |
|
| 62 |
|
|
|
|
| 69 |
|
| 70 |
|
| 71 |
def save_server_settings(driver: WebDriver):
|
| 72 |
+
element = find_and_click(
|
| 73 |
+
driver,
|
| 74 |
+
by_selector=AppiumBy.ID,
|
| 75 |
+
selector_value=f"{APP_PACKAGE_NAME}:id/settingsButton",
|
| 76 |
)
|
|
|
|
| 77 |
element = driver.find_element(
|
| 78 |
by=AppiumBy.ID, value=f"{APP_PACKAGE_NAME}:id/serverUrlEditText"
|
| 79 |
)
|
|
|
|
| 82 |
by=AppiumBy.ID, value=f"{APP_PACKAGE_NAME}:id/uuidEditText"
|
| 83 |
)
|
| 84 |
element.send_keys(TEST_UUID)
|
| 85 |
+
element = find_and_click(
|
| 86 |
+
driver,
|
| 87 |
+
by_selector=AppiumBy.ID,
|
| 88 |
+
selector_value=f"{APP_PACKAGE_NAME}:id/saveButton",
|
| 89 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 90 |
|
| 91 |
|
| 92 |
def enable_privacy_settings(driver: WebDriver):
|
| 93 |
+
element = find_and_click(
|
| 94 |
+
driver,
|
| 95 |
+
by_selector=AppiumBy.XPATH,
|
| 96 |
+
selector_value=f"//*[@text='puppet']",
|
| 97 |
+
)
|
| 98 |
primary_checkbox = driver.find_element(
|
| 99 |
by=AppiumBy.ID, value="android:id/switch_widget"
|
| 100 |
)
|
e2e_tests/utils.py
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from selenium.webdriver.remote.webdriver import WebDriver
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
def wait_for_element(
|
| 5 |
+
driver: WebDriver, by_selector: str, selector_value: str, timeout: int = 2
|
| 6 |
+
):
|
| 7 |
+
from selenium.webdriver.support.wait import WebDriverWait
|
| 8 |
+
from selenium.webdriver.support import expected_conditions as EC
|
| 9 |
+
|
| 10 |
+
try:
|
| 11 |
+
element = WebDriverWait(driver, timeout).until(
|
| 12 |
+
EC.presence_of_element_located((by_selector, selector_value))
|
| 13 |
+
)
|
| 14 |
+
|
| 15 |
+
except:
|
| 16 |
+
element = None
|
| 17 |
+
finally:
|
| 18 |
+
return element
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
def find_and_click(driver: WebDriver, by_selector: str, selector_value: str):
|
| 22 |
+
element = driver.find_element(by=by_selector, value=selector_value)
|
| 23 |
+
element.click()
|
| 24 |
+
return element
|