Message ID | 1470097486-15269-7-git-send-email-dja@axtens.net |
---|---|
State | Superseded |
Headers | show |
Daniel Axtens <dja@axtens.net> writes: > * Install the python2 dev packages. Update the readme to tell > people we now download > 200MB of packages, not ~ 200MB. > > * Update the tox.ini file: > > * python3.4 -> python3.5 as that's what's shipped with Ubuntu 16.04 > * Drop Django 1.6, it's not supported by django-request-framework That should be django-rest-framework. I'd like to revise this patch anyway; it seems d-r-f should be pluggable so we should be able to test on 1.6 without it. Apparently 1.6 is also shipped with RHEL7.2 so supporting it is important. > * Drop Django 1.7, it seems to break with sqlparse And if we're supporting 1.6 we should probably support 1.7 so I'll chase this down. Regards, Daniel > > If any of these changes are controversial I'm happy to revisit them. > Also: > > * Pass in the new environment variables for db host and port. > * Pass in DISPLAY, XAUTHORITY and HOME to fix seleinum tests. > > * Update the entrypoint script to allow you to do --tox and > --quick-tox in the same way as --test and --quick-test. > Update the readme appropriately. > > Signed-off-by: Daniel Axtens <dja@axtens.net> > --- > README.md | 4 +++- > docker/Dockerfile | 3 ++- > docker/entrypoint.sh | 7 +++++++ > tox.ini | 9 ++++----- > 4 files changed, 16 insertions(+), 7 deletions(-) > > diff --git a/README.md b/README.md > index 6f889c09def0..ca212bc6d707 100644 > --- a/README.md > +++ b/README.md > @@ -36,7 +36,7 @@ of community projects. > > 1. Install Docker and docker-compose. > 2. Clone this repo, as with vagrant. > -3. Build the images. This will download ~200MB from the internet: > +3. Build the images. (This will download over 200MB from the internet.) > > $ docker-compose build > > @@ -60,6 +60,8 @@ of community projects. > > $ docker-compose run --rm web --test > > + * Tox tests can be run with `--quick-tox` and `--tox`. > + > * To reset the database before beginning, add `--reset` to the command line after `web` and before any other arguments. > > * If you want to run non-headless tests, you'll need something like this ugly hack: > diff --git a/docker/Dockerfile b/docker/Dockerfile > index 507e6c843fe2..365becd107ca 100644 > --- a/docker/Dockerfile > +++ b/docker/Dockerfile > @@ -20,7 +20,8 @@ COPY docker/google-chrome.list /etc/apt/sources.list.d/ > # to install succesfully > RUN apt-get update -qq && \ > apt-get install -y --allow-unauthenticated --no-install-recommends \ > - python python3-dev python3-pip python3-setuptools python3-wheel \ > + python-dev python-pip python-setuptools python-wheel \ > + python3-dev python3-pip python3-setuptools python3-wheel \ > libmysqlclient-dev mysql-client curl unzip xvfb google-chrome-stable \ > hicolor-icon-theme build-essential && \ > curl http://chromedriver.storage.googleapis.com/$chromedriver_version/chromedriver_linux64.zip -o /tmp/chromedriver.zip && \ > diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh > index 7a42165455b1..15b8dceee2a5 100755 > --- a/docker/entrypoint.sh > +++ b/docker/entrypoint.sh > @@ -71,6 +71,13 @@ elif [ "$1" == "--quick-test" ]; then > python3 manage.py test > elif [ "$1" == "--test" ]; then > xvfb-run --server-args='-screen 0, 1024x768x16' python3 manage.py test > +elif [ "$1" == "--quick-tox" ]; then > + shift > + export PW_SKIP_BROWSER_TESTS=yes > + tox $@ > +elif [ "$1" == "--tox" ]; then > + shift > + xvfb-run --server-args='-screen 0, 1024x768x16' tox $@ > else # run whatever CMD is set to > $@ > fi > diff --git a/tox.ini b/tox.ini > index d1703251a197..4050d1f8e7b9 100644 > --- a/tox.ini > +++ b/tox.ini > @@ -1,21 +1,20 @@ > [tox] > minversion = 2.0 > -envlist = py{27,34}-django{16,17,18,19} > +envlist = py{27,35}-django{18,19} > skipsdist = True > > [testenv] > deps = > -r{toxinidir}/requirements-test.txt > - django16: django>=1.6,<1.7 > - django17: django>=1.7,<1.8 > django18: django>=1.8,<1.9 > django19: django>=1.9,<1.10 > setenv = > DJANGO_SETTINGS_MODULE = patchwork.settings.dev > passenv = > http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY > - PW_TEST_DB_TYPE PW_TEST_DB_USER PW_TEST_DB_PASS > - DISPLAY SELENIUM_BROWSER PW_SKIP_BROWSER_TESTS > + PW_TEST_DB_TYPE PW_TEST_DB_USER PW_TEST_DB_PASS PW_TEST_DB_HOST > + PW_TEST_DB_PORT DISPLAY SELENIUM_BROWSER PW_SKIP_BROWSER_TESTS > + DISPLAY HOME XAUTHORITY > commands = > {toxinidir}/manage.py test --noinput --liveserver=localhost:9000-9200 \ > '{posargs:patchwork}' > -- > 2.7.4
diff --git a/README.md b/README.md index 6f889c09def0..ca212bc6d707 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ of community projects. 1. Install Docker and docker-compose. 2. Clone this repo, as with vagrant. -3. Build the images. This will download ~200MB from the internet: +3. Build the images. (This will download over 200MB from the internet.) $ docker-compose build @@ -60,6 +60,8 @@ of community projects. $ docker-compose run --rm web --test + * Tox tests can be run with `--quick-tox` and `--tox`. + * To reset the database before beginning, add `--reset` to the command line after `web` and before any other arguments. * If you want to run non-headless tests, you'll need something like this ugly hack: diff --git a/docker/Dockerfile b/docker/Dockerfile index 507e6c843fe2..365becd107ca 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -20,7 +20,8 @@ COPY docker/google-chrome.list /etc/apt/sources.list.d/ # to install succesfully RUN apt-get update -qq && \ apt-get install -y --allow-unauthenticated --no-install-recommends \ - python python3-dev python3-pip python3-setuptools python3-wheel \ + python-dev python-pip python-setuptools python-wheel \ + python3-dev python3-pip python3-setuptools python3-wheel \ libmysqlclient-dev mysql-client curl unzip xvfb google-chrome-stable \ hicolor-icon-theme build-essential && \ curl http://chromedriver.storage.googleapis.com/$chromedriver_version/chromedriver_linux64.zip -o /tmp/chromedriver.zip && \ diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 7a42165455b1..15b8dceee2a5 100755 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -71,6 +71,13 @@ elif [ "$1" == "--quick-test" ]; then python3 manage.py test elif [ "$1" == "--test" ]; then xvfb-run --server-args='-screen 0, 1024x768x16' python3 manage.py test +elif [ "$1" == "--quick-tox" ]; then + shift + export PW_SKIP_BROWSER_TESTS=yes + tox $@ +elif [ "$1" == "--tox" ]; then + shift + xvfb-run --server-args='-screen 0, 1024x768x16' tox $@ else # run whatever CMD is set to $@ fi diff --git a/tox.ini b/tox.ini index d1703251a197..4050d1f8e7b9 100644 --- a/tox.ini +++ b/tox.ini @@ -1,21 +1,20 @@ [tox] minversion = 2.0 -envlist = py{27,34}-django{16,17,18,19} +envlist = py{27,35}-django{18,19} skipsdist = True [testenv] deps = -r{toxinidir}/requirements-test.txt - django16: django>=1.6,<1.7 - django17: django>=1.7,<1.8 django18: django>=1.8,<1.9 django19: django>=1.9,<1.10 setenv = DJANGO_SETTINGS_MODULE = patchwork.settings.dev passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY - PW_TEST_DB_TYPE PW_TEST_DB_USER PW_TEST_DB_PASS - DISPLAY SELENIUM_BROWSER PW_SKIP_BROWSER_TESTS + PW_TEST_DB_TYPE PW_TEST_DB_USER PW_TEST_DB_PASS PW_TEST_DB_HOST + PW_TEST_DB_PORT DISPLAY SELENIUM_BROWSER PW_SKIP_BROWSER_TESTS + DISPLAY HOME XAUTHORITY commands = {toxinidir}/manage.py test --noinput --liveserver=localhost:9000-9200 \ '{posargs:patchwork}'
* Install the python2 dev packages. Update the readme to tell people we now download > 200MB of packages, not ~ 200MB. * Update the tox.ini file: * python3.4 -> python3.5 as that's what's shipped with Ubuntu 16.04 * Drop Django 1.6, it's not supported by django-request-framework * Drop Django 1.7, it seems to break with sqlparse If any of these changes are controversial I'm happy to revisit them. Also: * Pass in the new environment variables for db host and port. * Pass in DISPLAY, XAUTHORITY and HOME to fix seleinum tests. * Update the entrypoint script to allow you to do --tox and --quick-tox in the same way as --test and --quick-test. Update the readme appropriately. Signed-off-by: Daniel Axtens <dja@axtens.net> --- README.md | 4 +++- docker/Dockerfile | 3 ++- docker/entrypoint.sh | 7 +++++++ tox.ini | 9 ++++----- 4 files changed, 16 insertions(+), 7 deletions(-)