Skip to content

Commit

Permalink
remove log_path and use service_log_path consistently instead (#180)
Browse files Browse the repository at this point in the history
* remove log_path and use service_log_path consistently instead

* add LooseVersion for service_log_path
  • Loading branch information
BeyondEvil committed Aug 17, 2018
1 parent 3c07dad commit 5f1c9d3
Show file tree
Hide file tree
Showing 8 changed files with 59 additions and 19 deletions.
7 changes: 2 additions & 5 deletions pytest_selenium/drivers/chrome.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@

def driver_kwargs(capabilities, driver_args, driver_log, driver_path,
chrome_options, **kwargs):
kwargs = {
'desired_capabilities': capabilities,
}
kwargs = {'desired_capabilities': capabilities,
'service_log_path': driver_log}

# Selenium 3.8.0 deprecated chrome_options in favour of options
if LooseVersion(SELENIUM_VERSION) < LooseVersion('3.8.0'):
Expand All @@ -22,8 +21,6 @@ def driver_kwargs(capabilities, driver_args, driver_log, driver_path,

if driver_args is not None:
kwargs['service_args'] = driver_args
if driver_log is not None:
kwargs['service_log_path'] = driver_log
if driver_path is not None:
kwargs['executable_path'] = driver_path
return kwargs
Expand Down
12 changes: 9 additions & 3 deletions pytest_selenium/drivers/edge.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from distutils.version import LooseVersion
from selenium import __version__ as SELENIUM_VERSION


def driver_kwargs(capabilities, driver_log, driver_path, **kwargs):
kwargs = {}

# Selenium 3.14.0 deprecated log_path in favour of service_log_path
if LooseVersion(SELENIUM_VERSION) < LooseVersion('3.14.0'):
kwargs = {'log_path': driver_log}
else:
kwargs = {'service_log_path': driver_log}

if capabilities:
kwargs['capabilities'] = capabilities
if driver_log is not None:
kwargs['log_path'] = driver_log
if driver_path is not None:
kwargs['executable_path'] = driver_path
return kwargs
10 changes: 7 additions & 3 deletions pytest_selenium/drivers/firefox.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,15 @@ def pytest_configure(config):

def driver_kwargs(capabilities, driver_log, driver_path, firefox_options,
**kwargs):
kwargs = {}

# Selenium 3.14.0 deprecated log_path in favour of service_log_path
if LooseVersion(SELENIUM_VERSION) < LooseVersion('3.14.0'):
kwargs = {'log_path': driver_log}
else:
kwargs = {'service_log_path': driver_log}

if capabilities:
kwargs['capabilities'] = capabilities
if driver_log is not None:
kwargs['log_path'] = driver_log
if driver_path is not None:
kwargs['executable_path'] = driver_path

Expand Down
12 changes: 9 additions & 3 deletions pytest_selenium/drivers/internet_explorer.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
from distutils.version import LooseVersion
from selenium import __version__ as SELENIUM_VERSION


def driver_kwargs(capabilities, driver_log, driver_path, **kwargs):
kwargs = {}

# Selenium 3.14.0 deprecated log_file in favour of service_log_path
if LooseVersion(SELENIUM_VERSION) < LooseVersion('3.14.0'):
kwargs = {'log_file': driver_log}
else:
kwargs = {'service_log_path': driver_log}

if capabilities:
kwargs['capabilities'] = capabilities
if driver_log is not None:
kwargs['log_file'] = driver_log
if driver_path is not None:
kwargs['executable_path'] = driver_path
return kwargs
5 changes: 2 additions & 3 deletions pytest_selenium/drivers/phantomjs.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@

def driver_kwargs(capabilities, driver_args, driver_log, driver_path,
**kwargs):
kwargs = {'desired_capabilities': capabilities}
kwargs = {'desired_capabilities': capabilities,
'service_log_path': driver_log}
if driver_args is not None:
kwargs['service_args'] = driver_args
if driver_log is not None:
kwargs['service_log_path'] = driver_log
if driver_path is not None:
kwargs['executable_path'] = driver_path
return kwargs
2 changes: 1 addition & 1 deletion pytest_selenium/pytest_selenium.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,8 @@ def driver_kwargs(request, capabilities, chrome_options, driver_args,
firefox_profile=firefox_profile,
host=pytestconfig.getoption('host'),
port=pytestconfig.getoption('port'),
service_log_path=None,
request=request,
log_path=None,
test='.'.join(split_class_and_test_names(request.node.nodeid))))
pytestconfig._driver_log = driver_log
return kwargs
Expand Down
26 changes: 26 additions & 0 deletions testing/test_driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,3 +132,29 @@ def test_provider_naming(name):
provider = getattr(module, driver)()
assert provider.uses_driver(driver)
assert provider.name == name


def test_service_log_path(testdir):
file_test = testdir.makepyfile("""
import pytest
@pytest.mark.nondestructive
def test_pass(driver_kwargs):
assert driver_kwargs['service_log_path'] is not None
""")
testdir.quick_qa('--driver', 'Firefox',
file_test, passed=1)


def test_no_service_log_path(testdir):
file_test = testdir.makepyfile("""
import pytest
@pytest.fixture
def driver_log():
return None
@pytest.mark.nondestructive
def test_pass(driver_kwargs):
assert driver_kwargs['service_log_path'] is None
""")
testdir.quick_qa('--driver', 'Firefox',
file_test, passed=1)
4 changes: 3 additions & 1 deletion testing/test_testingbot.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,4 +75,6 @@ def test_invalid_host(failure, monkeypatch, tmpdir):
monkeypatch.setattr(os.path, 'expanduser', lambda p: str(tmpdir))
tmpdir.join('.testingbot').write('[credentials]\nkey=foo\nsecret=bar')
out = failure('--host', 'foo.bar.com')
assert "urlopen error" in out
messages = ['nodename nor servname provided, or not known',
'Name or service not known']
assert any(message in out for message in messages)

0 comments on commit 5f1c9d3

Please sign in to comment.