Merge pull request #55 from nicoddemus/collect-report-atty
Skip progress display when in non-terminal
This commit is contained in:
10
.travis.yml
10
.travis.yml
@@ -8,23 +8,21 @@ install: "pip install -U tox setuptools_scm"
|
|||||||
env:
|
env:
|
||||||
matrix:
|
matrix:
|
||||||
# note: please use "tox --listenvs" to populate the build matrix
|
# note: please use "tox --listenvs" to populate the build matrix
|
||||||
- TESTENV=py26-pytest24
|
|
||||||
- TESTENV=py26-pytest25
|
|
||||||
- TESTENV=py26-pytest26
|
- TESTENV=py26-pytest26
|
||||||
- TESTENV=py26-pytest27
|
- TESTENV=py26-pytest27
|
||||||
- TESTENV=py26-pytest28
|
- TESTENV=py26-pytest28
|
||||||
- TESTENV=py27-pytest24
|
- TESTENV=py26-pytest29
|
||||||
- TESTENV=py27-pytest25
|
|
||||||
- TESTENV=py27-pytest26
|
- TESTENV=py27-pytest26
|
||||||
- TESTENV=py27-pytest27
|
- TESTENV=py27-pytest27
|
||||||
- TESTENV=py27-pytest28
|
- TESTENV=py27-pytest28
|
||||||
- TESTENV=py34-pytest24
|
- TESTENV=py27-pytest29
|
||||||
- TESTENV=py34-pytest25
|
|
||||||
- TESTENV=py34-pytest26
|
- TESTENV=py34-pytest26
|
||||||
- TESTENV=py34-pytest27
|
- TESTENV=py34-pytest27
|
||||||
- TESTENV=py34-pytest28
|
- TESTENV=py34-pytest28
|
||||||
|
- TESTENV=py34-pytest29
|
||||||
- TESTENV=py35-pytest27
|
- TESTENV=py35-pytest27
|
||||||
- TESTENV=py35-pytest28
|
- TESTENV=py35-pytest28
|
||||||
|
- TESTENV=py35-pytest29
|
||||||
- TESTENV=py27-pytest28-pexpect
|
- TESTENV=py27-pytest28-pexpect
|
||||||
- TESTENV=py35-pytest28-pexpect
|
- TESTENV=py35-pytest28-pexpect
|
||||||
- TESTENV=flakes
|
- TESTENV=flakes
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
- new ``worker_id`` fixture, returns the id of the worker in a test or fixture.
|
- new ``worker_id`` fixture, returns the id of the worker in a test or fixture.
|
||||||
Thanks Jared Hellman for the PR.
|
Thanks Jared Hellman for the PR.
|
||||||
|
|
||||||
|
- display progress during collection only when in a terminal, similar to pytest #1397 issue.
|
||||||
|
Thanks Bruno Oliveira for the PR.
|
||||||
|
|
||||||
|
|
||||||
1.14
|
1.14
|
||||||
----
|
----
|
||||||
|
|||||||
@@ -642,3 +642,25 @@ def test_worker_id_fixture(testdir, n):
|
|||||||
assert worker_ids == set(['master'])
|
assert worker_ids == set(['master'])
|
||||||
else:
|
else:
|
||||||
assert worker_ids == set(['gw0', 'gw1'])
|
assert worker_ids == set(['gw0', 'gw1'])
|
||||||
|
|
||||||
|
|
||||||
|
def test_color_yes_collection_on_non_atty(testdir, request):
|
||||||
|
"""skip collect progress report when working on non-terminals.
|
||||||
|
|
||||||
|
Similar to pytest-dev/pytest#1397
|
||||||
|
"""
|
||||||
|
tr = request.config.pluginmanager.getplugin("terminalreporter")
|
||||||
|
if not hasattr(tr, 'isatty'):
|
||||||
|
pytest.skip('only valid for newer pytest versions')
|
||||||
|
testdir.makepyfile("""
|
||||||
|
import pytest
|
||||||
|
@pytest.mark.parametrize('i', range(10))
|
||||||
|
def test_this(i):
|
||||||
|
assert 1
|
||||||
|
""")
|
||||||
|
args = ['--color=yes', '-n2']
|
||||||
|
result = testdir.runpytest(*args)
|
||||||
|
assert 'test session starts' in result.stdout.str()
|
||||||
|
assert '\x1b[1m' in result.stdout.str()
|
||||||
|
assert 'gw0 [10] / gw1 [10]' in result.stdout.str()
|
||||||
|
assert 'gw0 C / gw1 C' not in result.stdout.str()
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import py
|
import py
|
||||||
|
import pytest
|
||||||
from xdist.slavemanage import SlaveController, unserialize_report
|
from xdist.slavemanage import SlaveController, unserialize_report
|
||||||
from xdist.remote import serialize_report
|
from xdist.remote import serialize_report
|
||||||
import execnet
|
import execnet
|
||||||
@@ -62,6 +63,7 @@ def pytest_funcarg__slave(request):
|
|||||||
return SlaveSetup(request)
|
return SlaveSetup(request)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.xfail(reason='#59')
|
||||||
def test_remoteinitconfig(testdir):
|
def test_remoteinitconfig(testdir):
|
||||||
from xdist.remote import remote_initconfig
|
from xdist.remote import remote_initconfig
|
||||||
config1 = testdir.parseconfig()
|
config1 = testdir.parseconfig()
|
||||||
|
|||||||
12
tox.ini
12
tox.ini
@@ -1,8 +1,8 @@
|
|||||||
[tox]
|
[tox]
|
||||||
# if you change the envlist, please update .travis.yml file as well
|
# if you change the envlist, please update .travis.yml file as well
|
||||||
envlist=
|
envlist=
|
||||||
py{26,27,34}-pytest2{4,5,6,7,8}
|
py{26,27,34}-pytest2{6,7,8,9}
|
||||||
py35-pytest2{7,8}
|
py35-pytest2{7,8,9}
|
||||||
py{27,35}-pytest28-pexpect
|
py{27,35}-pytest28-pexpect
|
||||||
flakes
|
flakes
|
||||||
readme
|
readme
|
||||||
@@ -13,12 +13,12 @@ changedir=testing
|
|||||||
passenv = USER USERNAME
|
passenv = USER USERNAME
|
||||||
deps =
|
deps =
|
||||||
pycmd
|
pycmd
|
||||||
setuptools_scm # to avoid .eggs
|
# to avoid .eggs
|
||||||
pytest24: pytest~=2.4.0
|
setuptools_scm
|
||||||
pytest25: pytest~=2.5.0
|
|
||||||
pytest26: pytest~=2.6.1
|
pytest26: pytest~=2.6.1
|
||||||
pytest27: pytest~=2.7.2
|
pytest27: pytest~=2.7.2
|
||||||
pytest28: pytest~=2.8.3
|
pytest28: pytest~=2.8.7
|
||||||
|
pytest29: pytest~=2.9.1
|
||||||
pexpect: pexpect
|
pexpect: pexpect
|
||||||
platform=
|
platform=
|
||||||
pexpect: linux|darwin
|
pexpect: linux|darwin
|
||||||
|
|||||||
@@ -722,17 +722,18 @@ class TerminalDistReporter:
|
|||||||
self.tr = config.pluginmanager.getplugin("terminalreporter")
|
self.tr = config.pluginmanager.getplugin("terminalreporter")
|
||||||
self._status = {}
|
self._status = {}
|
||||||
self._lastlen = 0
|
self._lastlen = 0
|
||||||
|
self._isatty = getattr(self.tr, 'isatty', self.tr.hasmarkup)
|
||||||
|
|
||||||
def write_line(self, msg):
|
def write_line(self, msg):
|
||||||
self.tr.write_line(msg)
|
self.tr.write_line(msg)
|
||||||
|
|
||||||
def ensure_show_status(self):
|
def ensure_show_status(self):
|
||||||
if not self.tr.hasmarkup:
|
if not self._isatty:
|
||||||
self.write_line(self.getstatus())
|
self.write_line(self.getstatus())
|
||||||
|
|
||||||
def setstatus(self, spec, status, show=True):
|
def setstatus(self, spec, status, show=True):
|
||||||
self._status[spec.id] = status
|
self._status[spec.id] = status
|
||||||
if show and self.tr.hasmarkup:
|
if show and self._isatty:
|
||||||
self.rewrite(self.getstatus())
|
self.rewrite(self.getstatus())
|
||||||
|
|
||||||
def getstatus(self):
|
def getstatus(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user