tox.ini
author Denis Laxalde <denis.laxalde@logilab.fr>
Thu, 09 Mar 2017 16:36:33 +0100
changeset 12053 c3c9f2e1424c
parent 11914 587b5605d0c6
child 12072 9233dbde28d5
permissions -rw-r--r--
[pyramid] Add a "pyramid" instance configuration type In a new module 'cubicweb.pyramid.config' we define a "pyramid" instance configuration type. The noticeable feature of this configuration is that it manages a 'development.ini' file that gets installed in application home (along with `.conf` file). This file is templated and includes generated values for secrets of session and authtk tokens. This means that we can just call: pserve etc/cubicweb.d/<appname>/development.ini or gunicorn --paste etc/cubicweb.d/<appname>/development.ini -b :8080 just after instance creation to get a pyramid instance running without having to hack around a 'pyramid.ini' file. This patch drops 'development.ini' from skeleton and moves it in cubicweb/pyramid so that it gets installed at instance creation which is more appropriate than in cube creation. The new configuration class sets "cubicweb.bwcompat" setting to false so it is not intended to replace the "all-in-one" configuration type (which would require a bit more work). This configuration is close to the the 'repository' configuration type with just a couple of options from WebConfiguration that are needed for Pyramid (anonymous user/password plus some miscellaneous options that I'm not so sure are really needed). Note, in particular, that we do not pull CORS settings to be injected as a WSGI middleware like in wsgi_application_from_cwconfig() since I believe this should be left as an end-user responsibility and since this can be defined in a standard way in paste configuration. This configuration inherits from ServerConfiguration but registers the same appobjects as WebConfiguration. In cubicweb.web.request._CubicWebRequestBase, we guard against access to "uiprops" and "datadir_url" of the config because this new "pyramid" config does not have these (this does not make sense without bwcompat mode). At some point, we should either avoid using `cw_request`'s pyramid request attribute or make cubicweb's web request really independant of existing implementation and drop these assumptions.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11602
0737f481b358 Add a tox configuration
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     1
[tox]
11144
fd8bf29ed00e [tox] Generate test environments for Python 2.7 and 3.4
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11072
diff changeset
     2
envlist =
11474
28311db7a2a5 [tox] Basic flake8 config
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11465
diff changeset
     3
  check-manifest,flake8,
11478
1817f8946c22 [tox] Have less test environments
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11475
diff changeset
     4
  py{27,34}-{server,web,misc}
11602
0737f481b358 Add a tox configuration
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     5
0737f481b358 Add a tox configuration
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     6
[testenv]
10512
99bdd4bddd77 Add tox.ini file
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
     7
sitepackages = True
10975
6615ecb60244 [tox] Use generating environments
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 10900
diff changeset
     8
deps =
11478
1817f8946c22 [tox] Have less test environments
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11475
diff changeset
     9
  -r{toxinidir}/requirements/dev.txt
11744
a6dc650bc230 [test] Replace logilab-common's with_tempdir by tempfile.TemporaryDirectory
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11714
diff changeset
    10
  py27: backports.tempfile
11478
1817f8946c22 [tox] Have less test environments
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11475
diff changeset
    11
  misc: -r{toxinidir}/requirements/test-misc.txt
1817f8946c22 [tox] Have less test environments
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11475
diff changeset
    12
  server: -r{toxinidir}/requirements/test-server.txt
1817f8946c22 [tox] Have less test environments
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11475
diff changeset
    13
  web: -r{toxinidir}/requirements/test-web.txt
10976
b150016e476c [tox] Ensure pytest gets run with virtualenv's python
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 10975
diff changeset
    14
commands =
11478
1817f8946c22 [tox] Have less test environments
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11475
diff changeset
    15
  misc: {envpython} -m pip install --upgrade --no-deps --quiet git+git://github.com/logilab/yapps@master#egg=yapps
11631
faf279e33298 Merge with pyramid-cubicweb
Yann Voté <yann.vote@logilab.fr>
parents: 11478 11630
diff changeset
    16
  misc: {envpython} -m pytest {posargs} {toxinidir}/cubicweb/test {toxinidir}/cubicweb/dataimport/test {toxinidir}/cubicweb/devtools/test {toxinidir}/cubicweb/entities/test {toxinidir}/cubicweb/ext/test {toxinidir}/cubicweb/hooks/test {toxinidir}/cubicweb/sobjects/test {toxinidir}/cubicweb/wsgi/test {toxinidir}/cubicweb/pyramid/test
11478
1817f8946c22 [tox] Have less test environments
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11475
diff changeset
    17
  py27-misc: {envpython} -m pytest {posargs} {toxinidir}/cubicweb/etwist/test
1817f8946c22 [tox] Have less test environments
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11475
diff changeset
    18
  server: {envpython} -m pytest {posargs} {toxinidir}/cubicweb/server/test
1817f8946c22 [tox] Have less test environments
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11475
diff changeset
    19
  web: {envpython} -m pytest {posargs} {toxinidir}/cubicweb/web/test
10512
99bdd4bddd77 Add tox.ini file
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    20
11474
28311db7a2a5 [tox] Basic flake8 config
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11465
diff changeset
    21
[testenv:flake8]
28311db7a2a5 [tox] Basic flake8 config
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11465
diff changeset
    22
skip_install = true
28311db7a2a5 [tox] Basic flake8 config
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11465
diff changeset
    23
deps =
28311db7a2a5 [tox] Basic flake8 config
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11465
diff changeset
    24
  flake8 >= 3
11811
f09efeead7f9 Fix broken flake8 configuration
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11744
diff changeset
    25
whitelist_externals =
f09efeead7f9 Fix broken flake8 configuration
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11744
diff changeset
    26
  /bin/sh
f09efeead7f9 Fix broken flake8 configuration
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11744
diff changeset
    27
commands = /bin/sh -c "flake8 `xargs -a {toxinidir}/flake8-ok-files.txt`"
11474
28311db7a2a5 [tox] Basic flake8 config
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11465
diff changeset
    28
10512
99bdd4bddd77 Add tox.ini file
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    29
[testenv:doc]
10518
d276e4b332ba [tox] Update doc testenv to account for documentation restructuring
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 10512
diff changeset
    30
changedir = doc
d276e4b332ba [tox] Update doc testenv to account for documentation restructuring
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 10512
diff changeset
    31
deps =
d276e4b332ba [tox] Update doc testenv to account for documentation restructuring
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 10512
diff changeset
    32
  sphinx
11390
e5453b19bc6e [tox] Ensure virtualenv's python is used to build the documentation
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11354
diff changeset
    33
commands =
e5453b19bc6e [tox] Ensure virtualenv's python is used to build the documentation
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11354
diff changeset
    34
  {envpython} -c 'import sphinx; sphinx.main()' -b html -d {envtmpdir}/doctrees .  {envtmpdir}/html
11250
597f02c5cf5a [tox] Use py.test to run tests
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11249
diff changeset
    35
11453
3522d2a3389e [pkg] Add missing entries to MANIFEST.in
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11419
diff changeset
    36
[testenv:check-manifest]
3522d2a3389e [pkg] Add missing entries to MANIFEST.in
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11419
diff changeset
    37
skip_install = true
11630
1400aee10df4 Port to Python3 (closes #14159555)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11624
diff changeset
    38
deps =
11453
3522d2a3389e [pkg] Add missing entries to MANIFEST.in
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11419
diff changeset
    39
  check-manifest
11602
0737f481b358 Add a tox configuration
Denis Laxalde <denis.laxalde@logilab.fr>
parents:
diff changeset
    40
commands =
11830
535e54210332 [tox] Use `python -m check_manifest` instead of check-manifest program
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11811
diff changeset
    41
  {envpython} -m check_manifest {toxinidir} \
11465
10ecd586a9a8 [tox] Exclude symlinks from check-manifest call
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11453
diff changeset
    42
# ignore symlinks that are not recognized by check-manifest, see
10ecd586a9a8 [tox] Exclude symlinks from check-manifest call
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11453
diff changeset
    43
# https://github.com/mgedmin/check-manifest/issues/69
11684
122eacf5210b [tox] Exclude all files in symlinked directories from check-manifest call
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11683
diff changeset
    44
    --ignore cubicweb/devtools/test/data/cubes/i18ntestcube*,cubicweb/test/data/legacy_cubes*
11453
3522d2a3389e [pkg] Add missing entries to MANIFEST.in
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11419
diff changeset
    45
11250
597f02c5cf5a [tox] Use py.test to run tests
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11249
diff changeset
    46
[pytest]
597f02c5cf5a [tox] Use py.test to run tests
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11249
diff changeset
    47
python_files = *test_*.py
11474
28311db7a2a5 [tox] Basic flake8 config
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11465
diff changeset
    48
28311db7a2a5 [tox] Basic flake8 config
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11465
diff changeset
    49
[flake8]
28311db7a2a5 [tox] Basic flake8 config
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11465
diff changeset
    50
format = pylint
28311db7a2a5 [tox] Basic flake8 config
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11465
diff changeset
    51
ignore = W503
28311db7a2a5 [tox] Basic flake8 config
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents: 11465
diff changeset
    52
max-line-length = 100
11911
37726f66ff82 [tox] Drop "exclude" option from flake8 config and adjust flake8-ok-files.txt accordingly
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11830
diff changeset
    53
exclude = doc/*,.tox/*
11631
faf279e33298 Merge with pyramid-cubicweb
Yann Voté <yann.vote@logilab.fr>
parents: 11478 11630
diff changeset
    54
11478
1817f8946c22 [tox] Have less test environments
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11475
diff changeset
    55
1817f8946c22 [tox] Have less test environments
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 11475
diff changeset
    56
# vim: wrap sts=2 sw=2