Simplify testing infrastructure (#515)

* Mark runtests helper executable

* Bump required version of asgiref

We're probably making our life easier when we keep the Channels
dependencies roughly in sync. As a 1.0 release was made, I suggest to
require it.

* Simplify tox and Travis configuration

I hopefully simplified the tox configuration by following what I did in
the other four Channels projects.

I then had a good look at tox-travis and decided to remove it. It does
add a layer of indirection with, IMHO, not enough gain. To understand
what Travis is doing, one would need to consider two files (and
understand tox-travis) instead of just one file. It also introduces
another point of failure. What pushed me over was that there's a bug
with env matching (https://github.com/ryanhiebert/tox-travis/issues/55)
and tox or tox-travis seem to mask an Exception
(https://travis-ci.org/django/channels/jobs/195950971#L195) that would
be hard to debug.
The draw back is that we duplicate the Django dependency matrix, and the
commands that are executed in Travis and tox. We could add a "--with-qa"
flag to runtests.py to have it execute flake8 and isort to rectify the
latter.

I extracted test dependencies as I did for asgi_redis.

* Document supported versions
This commit is contained in:
Maik Hoepfel 2017-01-31 02:25:07 +01:00 committed by Andrew Godwin
parent 558d66a6b2
commit 6d71106c3c
5 changed files with 29 additions and 23 deletions

View File

@ -1,8 +1,22 @@
sudo: false
language: python
python:
- "2.7"
- "3.4"
- "3.5"
install: pip install tox-travis
script: tox
env:
- DJANGO="Django>=1.8,<1.9"
- DJANGO="Django>=1.9,<1.10"
- DJANGO="Django>=1.10,<1.11"
install:
- pip install $DJANGO -e .[tests]
- pip freeze
script:
- python runtests.py
- flake8
- isort --check-only --recursive channels

View File

@ -33,6 +33,12 @@ You'll likely also want to ``asgi_redis`` to provide the Redis channel layer.
See our `installation <https://channels.readthedocs.io/en/latest/installation.html>`_
and `getting started <https://channels.readthedocs.io/en/latest/getting-started.html>`_ docs for more.
Dependencies
------------
All Channels projects currently support Python 2.7, 3.4 and 3.5. `channels` supports all released
Django versions, namely 1.8-1.10.
Contributing
------------

0
runtests.py Normal file → Executable file
View File

View File

@ -13,9 +13,12 @@ setup(
include_package_data=True,
install_requires=[
'Django>=1.8',
'asgiref>=0.13',
'asgiref>=1.0.0',
'daphne>=1.0.0',
],
extras_require={
'tests': ['coverage', 'mock', 'tox', 'flake8>=2.0,<3.0', 'isort']
},
classifiers=[
'Development Status :: 5 - Production/Stable',
'Environment :: Web Environment',

23
tox.ini
View File

@ -1,33 +1,16 @@
[tox]
skipsdist = True
envlist =
{py27}-django-{18,19,110}
{py34}-django-{18,19,110}
{py35}-django-{18,19,110}
{py27,34,35}-django-{18,19,110}
{py27,py35}-flake8
isort
[tox:travis]
2.7 = py27, isort
[testenv]
setenv =
PYTHONPATH = {toxinidir}:{toxinidir}
extras = tests
deps =
autobahn
coverage
daphne
asgiref>=0.9
six
redis==2.10.5
py27: mock
flake8: flake8>=2.0,<3.0
isort: isort
django-18: Django>=1.8,<1.9
django-19: Django>=1.9,<1.10
django-110: Django>=1.10,<1.11
commands =
flake8: flake8
isort: isort -c -rc channels
isort: isort --check-only --recursive channels
django: coverage run --parallel-mode {toxinidir}/runtests.py