diff --git a/axe_selenium_python/axe.py b/axe_selenium_python/axe.py index 8c74072..fe9760b 100755 --- a/axe_selenium_python/axe.py +++ b/axe_selenium_python/axe.py @@ -100,5 +100,8 @@ def write_results(self, data, name="results.json"): :param name: Name of file to be written to. :param output: JSON object. """ - with open(name, "r", encoding="utf8") as f: - f.write(json.dumps(data, indent=4)) + with open(name, "w", encoding="utf8") as f: + try: + f.write(unicode(json.dumps(data, indent=4))) + except NameError: + f.write(json.dumps(data, indent=4)) diff --git a/axe_selenium_python/tests/requirements/tests.txt b/axe_selenium_python/tests/requirements/tests.txt index 5f06fce..dad738a 100644 --- a/axe_selenium_python/tests/requirements/tests.txt +++ b/axe_selenium_python/tests/requirements/tests.txt @@ -1,3 +1,4 @@ pytest==3.8.2 selenium==3.14.1 pytest-html==1.19.0 +pytest-mock==1.10.0 diff --git a/axe_selenium_python/tests/test_axe.py b/axe_selenium_python/tests/test_axe.py index 4217572..ca372e3 100755 --- a/axe_selenium_python/tests/test_axe.py +++ b/axe_selenium_python/tests/test_axe.py @@ -2,7 +2,8 @@ # 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 os import path, getenv +import json +from os import getenv, path import pytest from selenium import webdriver @@ -62,3 +63,16 @@ def _perform_axe_run(driver): axe.inject() data = axe.execute() return data + + +def test_write_results_to_file(tmpdir, mocker): + axe = Axe(mocker.MagicMock()) + data = {"testKey": "testValue"} + filename = path.join(str(tmpdir), "results.json") + + axe.write_results(data, filename) + + with open(filename) as f: + actual_file_contents = json.loads(f.read()) + + assert data == actual_file_contents diff --git a/tox.ini b/tox.ini index f851245..5f669ba 100644 --- a/tox.ini +++ b/tox.ini @@ -3,16 +3,10 @@ envlist = py27, py36, flake8 skipsdist = true [testenv] -passenv = HOME DISPLAY MOZ_HEADLESS PYTEST_ADDOPTS PYTEST_BASE_URL \ - SAUCELABS_USR SAUCELABS_PSW JENKINS_URL JOB_NAME BUILD_NUMBER +setenv = + MOZ_HEADLESS = 1 deps = -raxe_selenium_python/tests/requirements/tests.txt -commands = pytest - -[testenv:py27] -commands = pytest - -[testenv:py36] -commands = pytest +commands = pytest -rsx --verbose [testenv:flake8] deps = -raxe_selenium_python/tests/requirements/flake8.txt