[web] fix os.rename usage on windows when destination exists
os.rename on windows will raise OSError (or WindowsError subclass) when if
destination file already exists.
Also check that exception is EEXIST.
There is an attempt to fix in f6ba947c but using IOError instead of OSError.
Closes #14214794
[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