Skip to content
This repository was archived by the owner on Aug 10, 2022. It is now read-only.

Commit 26ce1fe

Browse files
committed
Blacked tests
1 parent bd13510 commit 26ce1fe

File tree

13 files changed

+559
-362
lines changed

13 files changed

+559
-362
lines changed

tests/conftest.py

Lines changed: 111 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
import os
2+
import sys
23
from collections import namedtuple
34
from itertools import chain
45

56
import pytest
67

8+
try:
9+
from typing import Text, Optional, Generator, Iterable
10+
except ImportError:
11+
pass
712

8-
class Platform(namedtuple('Platform', 'name version browsers extra')):
13+
14+
class Platform(namedtuple("Platform", "name version browsers extra")):
915
def platform_capabilities(self):
1016
# type: () -> Optional[Iterable[dict]]
1117
"""
@@ -14,10 +20,7 @@ def platform_capabilities(self):
1420
if not self.is_appium_based:
1521
return
1622

17-
caps = {
18-
'platformName': self.name,
19-
'platformVersion': self.version
20-
}
23+
caps = {"platformName": self.name, "platformVersion": self.version}
2124
if isinstance(self.extra, dict):
2225
caps.update(self.extra)
2326
return caps
@@ -47,76 +50,102 @@ def get_browser_capabilities(self, browser_name, headless=False):
4750
from selenium.webdriver import ChromeOptions
4851

4952
options = None
50-
if 'firefox' == browser_name:
53+
if "firefox" == browser_name:
5154
options = FirefoxOptions()
52-
elif 'chrome' == browser_name:
55+
elif "chrome" == browser_name:
5356
options = ChromeOptions()
54-
options.add_argument('disable-infobars')
57+
options.add_argument("disable-infobars")
5558
if options and headless:
5659
options.headless = True
5760

5861
# huck for preventing overwriting 'platform' value in desired_capabilities by chrome options
5962
browser_caps = options.to_capabilities() if options else {}
60-
browser_name, browser_version = [b for b in self.browsers if browser_name.lower() == b[0].lower()][0]
61-
browser_caps.update({
62-
'browserName': browser_name,
63-
'version': browser_version,
64-
'platform': self.full_name
65-
})
63+
browser_name, browser_version = [
64+
b for b in self.browsers if browser_name.lower() == b[0].lower()
65+
][0]
66+
browser_caps.update(
67+
{
68+
"browserName": browser_name,
69+
"version": browser_version,
70+
"platform": self.full_name,
71+
}
72+
)
6673
if isinstance(self.extra, dict):
6774
browser_caps.update(self.extra)
6875
return browser_caps
6976

7077
@property
7178
def is_appium_based(self):
72-
if self.extra and ('appiumVersion' in self.extra or 'deviceName' in self.extra):
79+
if self.extra and ("appiumVersion" in self.extra or "deviceName" in self.extra):
7380
return True
7481
return False
7582

7683
@property
7784
def full_name(self):
7885
if self.version:
79-
return '{} {}'.format(self.name, self.version)
86+
return "{} {}".format(self.name, self.version)
8087
return self.name
8188

8289

83-
COMMON_BROWSERS = [('chrome', 'latest'), ('firefox', 'latest')]
84-
SUPPORTED_PLATFORMS = [Platform(name='Windows', version='10',
85-
browsers=COMMON_BROWSERS + [('internet explorer', 'latest'),
86-
('MicrosoftEdge', 'latest')], extra=None),
87-
Platform(name='Linux', version='', browsers=COMMON_BROWSERS, extra=None),
88-
Platform(name='macOS', version='10.13', browsers=COMMON_BROWSERS + [('safari', 'latest')],
89-
extra=None),
90-
91-
Platform(name='iPhone', version='10.0', browsers=[], extra={
92-
"appiumVersion": "1.7.2",
93-
"deviceName": "Iphone Emulator",
94-
"deviceOrientation": "portrait",
95-
"browserName": "Safari",
96-
}), Platform(name='Android', version='6.0', browsers=[], extra={
97-
"appiumVersion": "1.9.1",
98-
"deviceName": "Android Emulator",
99-
"deviceOrientation": "portrait",
100-
"browserName": "Chrome",
101-
"newCommandTimeout": 60 * 5
102-
}),
103-
# Platform(name='Android', version='7.0', browsers=[], extra={
104-
# "appiumVersion": "1.9.1",
105-
# "deviceName": "Android Emulator",
106-
# "deviceOrientation": "portrait",
107-
# "browserName": "Chrome",
108-
# "newCommandTimeout": 60 * 5
109-
# }),
110-
# Platform(name='Android', version='8.0', browsers=[], extra={
111-
# "appiumVersion": "1.9.1",
112-
# "deviceName": "Samsung S9+",
113-
# "deviceOrientation": "portrait",
114-
# "browserName": "Chrome",
115-
# "newCommandTimeout": 60 * 5
116-
# })
117-
]
118-
SUPPORTED_PLATFORMS_DICT = {platform.full_name: platform for platform in SUPPORTED_PLATFORMS}
119-
SUPPORTED_BROWSERS = set(chain(*[platform.browsers for platform in SUPPORTED_PLATFORMS]))
90+
COMMON_BROWSERS = [("chrome", "latest"), ("firefox", "latest")]
91+
SUPPORTED_PLATFORMS = [
92+
Platform(
93+
name="Windows",
94+
version="10",
95+
browsers=COMMON_BROWSERS
96+
+ [("internet explorer", "latest"), ("MicrosoftEdge", "latest")],
97+
extra=None,
98+
),
99+
Platform(name="Linux", version="", browsers=COMMON_BROWSERS, extra=None),
100+
Platform(
101+
name="macOS",
102+
version="10.13",
103+
browsers=COMMON_BROWSERS + [("safari", "latest")],
104+
extra=None,
105+
),
106+
Platform(
107+
name="iPhone",
108+
version="10.0",
109+
browsers=[],
110+
extra={
111+
"appiumVersion": "1.7.2",
112+
"deviceName": "Iphone Emulator",
113+
"deviceOrientation": "portrait",
114+
"browserName": "Safari",
115+
},
116+
),
117+
Platform(
118+
name="Android",
119+
version="9",
120+
browsers=[],
121+
extra={
122+
"appiumVersion": "1.9.1",
123+
"deviceName": "Samsung S9+",
124+
"deviceOrientation": "portrait",
125+
"browserName": "Chrome",
126+
"newCommandTimeout": 60 * 5,
127+
},
128+
), # Platform(name='Android', version='7.0', browsers=[], extra={
129+
# "appiumVersion": "1.9.1",
130+
# "deviceName": "Android Emulator",
131+
# "deviceOrientation": "portrait",
132+
# "browserName": "Chrome",
133+
# "newCommandTimeout": 60 * 5
134+
# }),
135+
# Platform(name='Android', version='8.0', browsers=[], extra={
136+
# "appiumVersion": "1.9.1",
137+
# "deviceName": "Samsung S9+",
138+
# "deviceOrientation": "portrait",
139+
# "browserName": "Chrome",
140+
# "newCommandTimeout": 60 * 5
141+
# })
142+
]
143+
SUPPORTED_PLATFORMS_DICT = {
144+
platform.full_name: platform for platform in SUPPORTED_PLATFORMS
145+
}
146+
SUPPORTED_BROWSERS = set(
147+
chain(*[platform.browsers for platform in SUPPORTED_PLATFORMS])
148+
)
120149

121150

122151
def pytest_addoption(parser):
@@ -129,9 +158,9 @@ def pytest_addoption(parser):
129158
def _get_capabilities(platform_name=None, browser_name=None, headless=False):
130159
if platform_name is None:
131160
sys2platform_name = {
132-
'linux': 'Linux',
133-
'darwin': 'macOS 10.13',
134-
'win32': 'Windows 10'
161+
"linux": "Linux",
162+
"darwin": "macOS 10.13",
163+
"win32": "Windows 10",
135164
}
136165
platform_name = sys2platform_name[sys.platform]
137166
platform = SUPPORTED_PLATFORMS_DICT[platform_name]
@@ -146,56 +175,66 @@ def _get_capabilities(platform_name=None, browser_name=None, headless=False):
146175

147176
def _setup_env_vars_for_session():
148177
import uuid
178+
149179
# setup environment variables once per test run if not settled up
150180
# needed for multi thread run
151-
os.environ['APPLITOOLS_BATCH_ID'] = os.environ.get('APPLITOOLS_BATCH_ID', str(uuid.uuid4()))
181+
os.environ["APPLITOOLS_BATCH_ID"] = os.environ.get(
182+
"APPLITOOLS_BATCH_ID", str(uuid.uuid4())
183+
)
152184

153185

154186
def pytest_generate_tests(metafunc):
155-
platform_name = metafunc.config.getoption('platform')
156-
browser_name = metafunc.config.getoption('browser')
157-
headless = metafunc.config.getoption('headless')
187+
platform_name = metafunc.config.getoption("platform")
188+
browser_name = metafunc.config.getoption("browser")
189+
headless = metafunc.config.getoption("headless")
158190

159191
_setup_env_vars_for_session()
160192

161193
if platform_name or browser_name:
162194
desired_caps = _get_capabilities(platform_name, browser_name, headless)
163195
else:
164196
desired_caps = []
165-
platforms = getattr(metafunc.function, 'platform', [])
197+
platforms = getattr(metafunc.function, "platform", [])
166198
if platforms:
167199
platforms = platforms.args
168200

169201
for platform in SUPPORTED_PLATFORMS:
170202
if platform.name not in platforms:
171203
continue
172-
desired_caps.extend(_get_capabilities(platform.full_name, headless=headless))
204+
desired_caps.extend(
205+
_get_capabilities(platform.full_name, headless=headless)
206+
)
173207

174208
# update capabilities from capabilities marker
175-
if hasattr(metafunc, 'function'):
176-
func_capabilities = getattr(metafunc.function, 'capabilities', {})
209+
if hasattr(metafunc, "function"):
210+
func_capabilities = getattr(metafunc.function, "capabilities", {})
177211
if func_capabilities:
178212
for caps in desired_caps:
179213
caps.update(func_capabilities.kwargs)
180214

181215
# generate combinations of driver options before run
182-
if 'driver' in metafunc.fixturenames:
183-
metafunc.parametrize('browser_config', desired_caps, ids=_generate_param_ids(desired_caps), scope='function')
216+
if "driver" in metafunc.fixturenames:
217+
metafunc.parametrize(
218+
"browser_config",
219+
desired_caps,
220+
ids=_generate_param_ids(desired_caps),
221+
scope="function",
222+
)
184223

185224

186225
def _generate_param_ids(desired_caps):
187226
results = []
188227
for caps in desired_caps:
189-
platform = caps.get('platform')
190-
browser = caps.get('browserName', '')
228+
platform = caps.get("platform")
229+
browser = caps.get("browserName", "")
191230
if platform:
192-
browser_version = caps.get('version', '')
231+
browser_version = caps.get("version", "")
193232
browser += str(browser_version)
194233
else:
195-
platform = caps.get('platformName')
196-
platform_version = caps.get('version', '')
234+
platform = caps.get("platformName")
235+
platform_version = caps.get("version", "")
197236
platform += platform_version
198-
results.append('platform: {}, browser: {}'.format(platform, browser))
237+
results.append("platform: {}, browser: {}".format(platform, browser))
199238
return results
200239

201240

tests/functional/conftest.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@
1111
pytest --browser firefox --headless 1 # run all tests on your current platform with firefox browser in headless mode
1212
"""
1313
import pytest
14-
15-
from applitools.core import logger, StdoutLogger
14+
from applitools.core import StdoutLogger, logger
1615
from applitools.core.utils import iteritems
1716

1817
logger.set_logger(StdoutLogger())
@@ -26,18 +25,19 @@ def eyes(request, eyes_class):
2625
eyes.hide_scrollbars = True
2726

2827
# configure eyes options through @pytest.mark.eyes() marker
29-
eyes_mark_opts = request.node.get_closest_marker('eyes')
28+
eyes_mark_opts = request.node.get_closest_marker("eyes")
3029
eyes_mark_opts = eyes_mark_opts.kwargs if eyes_mark_opts else {}
3130

3231
# configure eyes through @pytest.mark.parametrize('eyes', [])
33-
eyes_parametrized_opts = getattr(request, 'param', {})
32+
eyes_parametrized_opts = getattr(request, "param", {})
3433
if set(eyes_mark_opts.keys()).intersection(eyes_parametrized_opts):
35-
raise ValueError("Eyes options conflict. The values from .mark.eyes and .mark.parametrize shouldn't intersect.")
34+
raise ValueError(
35+
"Eyes options conflict. The values from .mark.eyes and .mark.parametrize shouldn't intersect."
36+
)
3637

3738
eyes_mark_opts.update(eyes_parametrized_opts)
3839
for key, val in iteritems(eyes_mark_opts):
3940
setattr(eyes, key, val)
4041

4142
yield eyes
4243
eyes.abort_if_not_closed()
43-

tests/functional/eyes_images/conftest.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import os
22

33
import pytest
4-
54
from applitools.images import Eyes
65
from applitools.images.__version__ import __version__
76

@@ -12,11 +11,14 @@ def eyes_class():
1211

1312

1413
def _setup_env_vars_for_session():
15-
python_version = os.environ.get('TRAVIS_PYTHON_VERSION', None)
14+
python_version = os.environ.get("TRAVIS_PYTHON_VERSION", None)
1615
if not python_version:
1716
import platform
17+
1818
python_version = platform.python_version()
19-
os.environ['APPLITOOLS_BATCH_NAME'] = 'Python {} | Images SDK {}'.format(python_version, __version__)
19+
os.environ["APPLITOOLS_BATCH_NAME"] = "Python {} | Images SDK {}".format(
20+
python_version, __version__
21+
)
2022

2123

2224
def pytest_generate_tests(metafunc):

tests/functional/eyes_images/test_functional.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,44 @@
11
# from applitools.core import Region, UnscaledFixedCutProvider
22
from os import path
33

4-
from PIL import Image
5-
64
from applitools.images import Region, Target
5+
from PIL import Image
76

87
here = path.abspath(path.dirname(__file__))
98

109

1110
def test_check_image(eyes):
12-
eyes.open('images', 'TestCheckImage', dimension=dict(width=100, height=400))
13-
eyes.check_image(path.join(here, 'resources/minions-800x500.jpg'))
11+
eyes.open("images", "TestCheckImage", dimension=dict(width=100, height=400))
12+
eyes.check_image(path.join(here, "resources/minions-800x500.jpg"))
1413
eyes.close()
1514

1615

1716
def test_check_image_path_fluent(eyes):
18-
eyes.open('images', 'TestCheckImage_Fluent')
19-
eyes.check("TestCheckImage_Fluent", Target().image(path.join(here, "resources/minions-800x500.jpg")))
17+
eyes.open("images", "TestCheckImage_Fluent")
18+
eyes.check(
19+
"TestCheckImage_Fluent",
20+
Target().image(path.join(here, "resources/minions-800x500.jpg")),
21+
)
2022
eyes.close()
2123

2224

2325
def test_check_raw_image_fluent(eyes):
24-
eyes.open('images', 'TestCheckImage_Fluent')
25-
eyes.check("TestCheckImage_Fluent", Target().image(Image.new('RGBA', (600, 600))))
26+
eyes.open("images", "TestCheckImage_Fluent")
27+
eyes.check("TestCheckImage_Fluent", Target().image(Image.new("RGBA", (600, 600))))
2628
eyes.close()
2729

2830

2931
def test_check_image_with_ignore_region_fluent(eyes):
30-
eyes.open('images', 'TestCheckImageWithIgnoreRegion_Fluent')
31-
eyes.check("TestCheckImage_WithIgnoreRegion_Fluent",
32-
Target().image(path.join(here, "resources/minions-800x500.jpg"))
33-
.ignore(Region(10, 20, 30, 40)))
32+
eyes.open("images", "TestCheckImageWithIgnoreRegion_Fluent")
33+
eyes.check(
34+
"TestCheckImage_WithIgnoreRegion_Fluent",
35+
Target()
36+
.image(path.join(here, "resources/minions-800x500.jpg"))
37+
.ignore(Region(10, 20, 30, 40)),
38+
)
3439
eyes.close()
3540

41+
3642
# def test_check_image_fluent_cut_provider(eyes):
3743
# eyes.image_cut = UnscaledFixedCutProvider(200, 100, 100, 50)
3844
# eyes.check("TestCheckImage_Fluent", Target.image("resources/minions-800x500.jpg"))

0 commit comments

Comments
 (0)