[session] Ensure access to rql varmaker always mark the session as dirty
When one accesses the rql_varmaker, that's usually to use it. The pb was that when
the varmaker was already in page's data (which is stored as session data),
session storage such as redis won't see that the session data is dirty and has
to be stored back at the end of the request.
To fix this, systematically call set_page_data.
[tox]
envlist =
py27-{cubicweb,dataimport,devtools,entities,etwist,ext,hooks,server,migractions,sobjects,web,wsgi},
py34-{cubicweb,dataimport,devtools,entities,ext,hooks,server,migractions,sobjects,web,wsgi}
[testenv]
sitepackages = True
whitelist_externals =
/usr/bin/touch
deps =
-rdev-requirements.txt
cubicweb: -r{toxinidir}/cubicweb/test/requirements.txt
devtools: -r{toxinidir}/cubicweb/devtools/test/requirements.txt
entities: -r{toxinidir}/cubicweb/entities/test/requirements.txt
etwist: -r{toxinidir}/cubicweb/etwist/test/requirements.txt
ext: -r{toxinidir}/cubicweb/ext/test/requirements.txt
hooks: -r{toxinidir}/cubicweb/hooks/test/requirements.txt
server: -r{toxinidir}/cubicweb/server/test/requirements.txt
migractions: -r{toxinidir}/cubicweb/server/test/requirements.txt
sobjects: -r{toxinidir}/cubicweb/sobjects/test/requirements.txt
web: -r{toxinidir}/cubicweb/web/test/requirements.txt
wsgi: -r{toxinidir}/cubicweb/wsgi/test/requirements.txt
commands =
py34-cubicweb: touch {envdir}/share/cubicweb/cubes/__init__.py
py34-server: touch {envdir}/share/cubicweb/cubes/__init__.py
py34-migractions: touch {envdir}/share/cubicweb/cubes/__init__.py
py34-sobjects: touch {envdir}/share/cubicweb/cubes/__init__.py
py34-web: touch {envdir}/share/cubicweb/cubes/__init__.py
cubicweb: {envpython} -m pip install --upgrade --no-deps --quiet git+git://github.com/logilab/yapps@master#egg=yapps
cubicweb: {envpython} -m pytest {toxinidir}/cubicweb/test {posargs}
dataimport: {envpython} -m pytest {toxinidir}/cubicweb/dataimport/test {posargs}
devtools: {envpython} -m pytest {toxinidir}/cubicweb/devtools/test {posargs}
entities: {envpython} -m pytest {toxinidir}/cubicweb/entities/test {posargs}
etwist: {envpython} -m pytest {toxinidir}/cubicweb/etwist/test {posargs}
ext: {envpython} -m pytest {toxinidir}/cubicweb/ext/test {posargs}
hooks: {envpython} -m pytest {toxinidir}/cubicweb/hooks/test {posargs}
server: {envpython} -m pytest {toxinidir}/cubicweb/server/test {posargs} --ignore={toxinidir}/cubicweb/server/test/unittest_migractions.py
migractions: {envpython} -m pytest {toxinidir}/cubicweb/server/test/unittest_migractions.py {posargs}
sobjects: {envpython} -m pytest {toxinidir}/cubicweb/sobjects/test {posargs}
web: {envpython} -m pytest {toxinidir}/cubicweb/web/test {posargs}
wsgi: {envpython} -m pytest {toxinidir}/cubicweb/wsgi/test {posargs}
[testenv:doc]
changedir = doc
deps =
sphinx
commands =
{envpython} -c 'import sphinx; sphinx.main()' -b html -d {envtmpdir}/doctrees . {envtmpdir}/html
[pytest]
python_files = *test_*.py