Skip to content

Commit a73dbb2

Browse files
author
Kimberly Sereduck
authored
Feature/fix write method (#145)
* fix writing results to file method * updated file write test with webdriver mock * fixed mock import error, added mock to reqs file, fixed unicode write error * replaced mock with pytest-mock, using pytest tmpdir fixture
1 parent e5643ee commit a73dbb2

File tree

4 files changed

+24
-12
lines changed

4 files changed

+24
-12
lines changed

axe_selenium_python/axe.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,5 +100,8 @@ def write_results(self, data, name="results.json"):
100100
:param name: Name of file to be written to.
101101
:param output: JSON object.
102102
"""
103-
with open(name, "r", encoding="utf8") as f:
104-
f.write(json.dumps(data, indent=4))
103+
with open(name, "w", encoding="utf8") as f:
104+
try:
105+
f.write(unicode(json.dumps(data, indent=4)))
106+
except NameError:
107+
f.write(json.dumps(data, indent=4))
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
pytest==3.8.2
22
selenium==3.14.1
33
pytest-html==1.19.0
4+
pytest-mock==1.10.0

axe_selenium_python/tests/test_axe.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
33
# You can obtain one at http://mozilla.org/MPL/2.0/.
44

5-
from os import path, getenv
5+
import json
6+
from os import getenv, path
67

78
import pytest
89
from selenium import webdriver
@@ -62,3 +63,16 @@ def _perform_axe_run(driver):
6263
axe.inject()
6364
data = axe.execute()
6465
return data
66+
67+
68+
def test_write_results_to_file(tmpdir, mocker):
69+
axe = Axe(mocker.MagicMock())
70+
data = {"testKey": "testValue"}
71+
filename = path.join(str(tmpdir), "results.json")
72+
73+
axe.write_results(data, filename)
74+
75+
with open(filename) as f:
76+
actual_file_contents = json.loads(f.read())
77+
78+
assert data == actual_file_contents

tox.ini

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,10 @@ envlist = py27, py36, flake8
33
skipsdist = true
44

55
[testenv]
6-
passenv = HOME DISPLAY MOZ_HEADLESS PYTEST_ADDOPTS PYTEST_BASE_URL \
7-
SAUCELABS_USR SAUCELABS_PSW JENKINS_URL JOB_NAME BUILD_NUMBER
6+
setenv =
7+
MOZ_HEADLESS = 1
88
deps = -raxe_selenium_python/tests/requirements/tests.txt
9-
commands = pytest
10-
11-
[testenv:py27]
12-
commands = pytest
13-
14-
[testenv:py36]
15-
commands = pytest
9+
commands = pytest -rsx --verbose
1610

1711
[testenv:flake8]
1812
deps = -raxe_selenium_python/tests/requirements/flake8.txt

0 commit comments

Comments
 (0)