68 lines
1.7 KiB
Python
68 lines
1.7 KiB
Python
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()
|