From a48d426f182ec859f2ea9f105e921cfa5528193b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ville=20Skytt=C3=A4?= <ville.skytta@iki.fi>
Date: Wed, 13 Nov 2019 09:50:35 +0200
Subject: [PATCH] Travis and tox config improvements (#28667)

* Use travis_wait only with pylint

pylint is the only job that is expected to be silent for extended time.
For others such a silence is a sign of a problem and using travis_wait
just lengthens the wait, and makes things harder to follow and debug,
because it also suppresses output in the web UI.

* Use pytest-xdist in tox

Similarly as in Azure.
---
 .travis.yml | 4 ++--
 tox.ini     | 6 ++++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 6d5b43c2f03..c9638b02a2f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -19,7 +19,7 @@ matrix:
     - python: "3.6.1"
       env: TOXENV=lint
     - python: "3.6.1"
-      env: TOXENV=pylint PYLINT_ARGS=--jobs=0
+      env: TOXENV=pylint PYLINT_ARGS=--jobs=0 TRAVIS_WAIT=30
     - python: "3.6.1"
       env: TOXENV=typing
     - python: "3.6.1"
@@ -33,4 +33,4 @@ cache:
     - $HOME/.cache/pre-commit
 install: pip install -U tox
 language: python
-script: travis_wait 50 tox --develop
+script: ${TRAVIS_WAIT:+travis_wait $TRAVIS_WAIT} tox --develop
diff --git a/tox.ini b/tox.ini
index 2898c410b2a..dc2a9f79b90 100644
--- a/tox.ini
+++ b/tox.ini
@@ -5,19 +5,21 @@ skip_missing_interpreters = True
 [testenv]
 basepython = {env:PYTHON3_PATH:python3}
 commands =
-     pytest --timeout=9 --durations=10 -qq -o console_output_style=count -p no:sugar {posargs}
+     pytest --timeout=9 --durations=10 -n auto --dist=loadfile -qq -o console_output_style=count -p no:sugar {posargs}
      {toxinidir}/script/check_dirty
 deps =
      -r{toxinidir}/requirements_test_all.txt
      -c{toxinidir}/homeassistant/package_constraints.txt
+     pytest-xdist
 
 [testenv:cov]
 commands =
-     pytest --timeout=9 --durations=10 -qq -o console_output_style=count -p no:sugar --cov --cov-report= {posargs}
+     pytest --timeout=9 --durations=10 -n auto --dist=loadfile -qq -o console_output_style=count -p no:sugar --cov --cov-report= {posargs}
      {toxinidir}/script/check_dirty
 deps =
      -r{toxinidir}/requirements_test_all.txt
      -c{toxinidir}/homeassistant/package_constraints.txt
+     pytest-xdist
 
 [testenv:pylint]
 ignore_errors = True
-- 
GitLab