test harness for selenium testing
This commit is contained in:
67
tests/acceptance/conftest.py
Normal file
67
tests/acceptance/conftest.py
Normal file
@@ -0,0 +1,67 @@
|
||||
import os
|
||||
import pytest
|
||||
import logging
|
||||
from logging.handlers import RotatingFileHandler
|
||||
from selenium import webdriver
|
||||
from selenium.webdriver.common.keys import Keys
|
||||
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
|
||||
|
||||
from .live_server import LiveServer
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def live_app(app):
|
||||
handler = RotatingFileHandler('log/acceptance.log', maxBytes=10000, backupCount=1)
|
||||
handler.setLevel(logging.INFO)
|
||||
app.logger.addHandler(handler)
|
||||
|
||||
runnable = LiveServer(app, port=8943, timeout=10)
|
||||
runnable.spawn_live_server()
|
||||
app.server_url = runnable.server_url
|
||||
|
||||
yield app
|
||||
|
||||
runnable.terminate()
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def browserstack_config():
|
||||
return {
|
||||
"win7_ie10": {
|
||||
"browser": "IE",
|
||||
"browser_version": "10.0",
|
||||
"os": "Windows",
|
||||
"os_version": "7",
|
||||
"resolution": "1024x768",
|
||||
"browserstack.local": True,
|
||||
},
|
||||
"iphone7": {
|
||||
'browserName': 'iPhone',
|
||||
'device': 'iPhone 7',
|
||||
'realMobile': 'true',
|
||||
'os_version': '10.3',
|
||||
"browserstack.local": True,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def driver_builder(browserstack_config):
|
||||
def build_driver(config_key):
|
||||
return webdriver.Remote(
|
||||
command_executor="http://{}:{}@hub.browserstack.com:80/wd/hub".format(
|
||||
os.getenv("BROWSERSTACK_EMAIL"), os.getenv("BROWSERSTACK_TOKEN")
|
||||
),
|
||||
desired_capabilities=browserstack_config.get(config_key),
|
||||
)
|
||||
|
||||
return build_driver
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def ie10_driver(driver_builder):
|
||||
driver = driver_builder("win7_ie10")
|
||||
|
||||
yield driver
|
||||
|
||||
driver.quit()
|
Reference in New Issue
Block a user