diff --git a/.gitignore b/.gitignore index 45702da..1fc2486 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,8 @@ coverage.xml htmlcov/ *.egg-info/ pytestdebug.log +pip-wheel-metadata/ +.python-version fixtures/ /docs/_build diff --git a/.travis.yml b/.travis.yml index 8126867..53abd63 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,4 @@ +dist: xenial language: python before_install: openssl version env: @@ -13,55 +14,31 @@ env: - TOX_SUFFIX="aiohttp" matrix: include: + # Only run lint on a single 3.x - env: TOX_SUFFIX="lint" - python: 3.7 - dist: xenial - - env: TOX_SUFFIX="requests" - python: 3.7 - dist: xenial - - env: TOX_SUFFIX="httplib2" - python: 3.7 - dist: xenial - - env: TOX_SUFFIX="boto3" - python: 3.7 - dist: xenial - - env: TOX_SUFFIX="urllib3" - python: 3.7 - dist: xenial - - env: TOX_SUFFIX="tornado4" - python: 3.7 - dist: xenial - - env: TOX_SUFFIX="aiohttp" - python: 3.7 - dist: xenial + python: "3.7" allow_failures: - env: TOX_SUFFIX="aiohttp" python: "pypy3" + - python: "3.8-dev" exclude: - # Only run lint on a single 3.x - - env: TOX_SUFFIX="lint" - python: 2.7 - - env: TOX_SUFFIX="lint" - python: 3.5 - - env: TOX_SUFFIX="lint" - python: pypy - - env: TOX_SUFFIX="lint" - python: "pypy3" # Exclude aiohttp support - env: TOX_SUFFIX="aiohttp" - python: 2.7 + python: "2.7" - env: TOX_SUFFIX="aiohttp" - python: pypy + python: "pypy" python: -- 2.7 -- 3.5 -- 3.6 -- pypy -- "pypy3" + - "2.7" + - "3.5" + - "3.6" + - "3.7" + - "3.8-dev" + - "pypy" + - "pypy3" install: -- pip install tox-travis codecov -- if [[ $TOX_SUFFIX != 'lint' ]]; then python setup.py install ; fi + - pip install tox-travis codecov + - if [[ $TOX_SUFFIX != 'lint' ]]; then python setup.py install ; fi script: -- tox -e "${TOX_SUFFIX}" + - tox -e "${TOX_SUFFIX}" after_success: - codecov diff --git a/docs/contributing.rst b/docs/contributing.rst index a2de992..0cdd7f8 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -27,6 +27,38 @@ for how to set this up. I have marked the boto tests as optional in Travis so you don't have to worry about them failing if you submit a pull request. +Using PyEnv with VCR's test suite +--------------------------------- + +PyEnv is a tool for managing multiple installation of python on your system. +See the full documentation at their `github ` +but we are also going to use `tox-pyenv ` +in this example:: + + git clone https://github.com/pyenv/pyenv ~/.pyenv + + # Add ~/.pyenv/bin to your PATH + export PATH="$PATH:~/.pyenv/bin" + + # Setup shim paths + eval "$(pyenv init -)" + + # Setup your local system tox tooling + pip install tox tox-pyenv + + # Install supported versions (at time of writing), this does not activate them + pyenv install 2.7.10 3.5.7 3.6.9 3.7.4 3.8-dev pypy2.6-7.1.1 pypy3.6-7.1.1 + + # This activates them + pyenv local 2.7.10 3.5.7 3.6.9 3.7.4 3.8-dev pypy2.6-7.1.1 pypy3.6-7.1.1 + + # Run the whole test suite + tox + + # Run the whole test suite or just part of it + tox -e lint + tox -e py37-requests + Troubleshooting on MacOSX ------------------------- diff --git a/tox.ini b/tox.ini index a8fb9e4..3f311d1 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,11 @@ [tox] skip_missing_interpreters=true -envlist = cov-clean,{py27,py35,py36,py37,pypy}-{lint,requests,httplib2,urllib3,tornado4,boto3},{py35,py36,py37}-{aiohttp},cov-report +envlist = + cov-clean, + lint, + {py27,py35,py36,py37,py38,pypy,pypy3}-{requests,httplib2,urllib3,tornado4,boto3}, + {py35,py36,py37,py38}-{aiohttp}, + cov-report # Coverage environment tasks: cov-clean and cov-report @@ -15,7 +20,7 @@ deps = coverage skip_install=true commands = coverage html - coverage report --fail-under=80 + coverage report --fail-under=90 [testenv:lint] skipsdist = True