Skip to content

Commit

Permalink
Add capabilities to metadata during hook instead of fixture
Browse files Browse the repository at this point in the history
  • Loading branch information
davehunt committed Mar 1, 2017
1 parent 5e7e296 commit 7d70082
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 12 deletions.
6 changes: 6 additions & 0 deletions docs/news.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
Release Notes
=============

**1.9.1 (2017-03-01)**

* Add capabilities to metadata during :code:`pytest_configure` hook instead of
the :code:`session_capabilities` fixture to make them available to other
plugins earlier.

**1.9.0 (2017-02-27)**

* Add driver and session capabilities to metadata provided by
Expand Down
18 changes: 7 additions & 11 deletions pytest_selenium/pytest_selenium.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,9 @@ def pytest_addhooks(pluginmanager):


@pytest.fixture(scope='session')
def session_capabilities(request, variables):
def session_capabilities(pytestconfig):
"""Returns combined capabilities from pytest-variables and command line"""
config = request.config
capabilities = variables.get('capabilities', {})
capabilities.update({k: v for k, v in config.getoption('capabilities')})
if hasattr(config, '_metadata'):
config._metadata['Capabilities'] = capabilities
return capabilities
return pytestconfig._capabilities


@pytest.fixture
Expand Down Expand Up @@ -110,17 +105,18 @@ def selenium(driver):
yield driver


@pytest.hookimpl(trylast=True)
def pytest_configure(config):
if hasattr(config, 'slaveinput'):
return # xdist slave
config._capabilities = config._variables.get('capabilities', {})
config._capabilities.update({
k: v for k, v in config.getoption('capabilities')})
config.addinivalue_line(
'markers', 'capabilities(kwargs): add or change existing '
'capabilities. specify capabilities as keyword arguments, for example '
'capabilities(foo=''bar'')')
if hasattr(config, '_metadata'):
config._metadata['Driver'] = config.getoption('driver')
config._metadata['Capabilities'] = {
k: v for k, v in config.getoption('capabilities')}
config._metadata['Capabilities'] = config._capabilities
if config.option.driver == 'Remote':
config._metadata['Server'] = 'http://{0}:{1}'.format(
config.getoption('host'),
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
'pytest>=2.7.3',
'pytest-base-url',
'pytest-html>=1.14.0',
'pytest-variables',
'pytest-variables>=1.5.0',
'selenium>=3.0.0',
'requests'],
entry_points={'pytest11': [
Expand Down

0 comments on commit 7d70082

Please sign in to comment.