Make test database template creation concurrent
build_db_cache() is used in tests to create test database templates, i.e.
DEFAULT_EMPTY_DB_ID (which is __default_empty_db__) and custom template
database using CubicwebTC test_db_id/pre_setup_database API.
When running tests in parallel using multiple processes, build_db_cache() may
try to build the same database twice. Avoid this by adding synchronisation of
process by using a file lock.
So when two processes require the same template database, one build the
database and others wait it to be created.
Use filelock (https://github.com/benediktschmitt/py-filelock) library to have a
portable (unix / windows) way for handling locks.
Also filelock is packaged in debian: https://packages.debian.org/source/python-filelock
### Requirements for tests in various cubicweb/**/test directories. ###
## shared by several test folders
cubicweb-card == 0.5.8
docutils
Twisted < 16.0.0
webtest
## cubicweb/test
Pygments
mock
#fyzz XXX pip install fails
cubicweb-file == 1.18.0
cubicweb-localperms == 0.3.2
cubicweb-tag == 1.8.3
## cubicweb/devtools/test
flake8
## cubicweb/hooks/test
psycopg2
## cubicweb/pyramid/test
pyramid >= 1.5.0
waitress >= 0.8.9
wsgicors >= 0.3
pyramid_multiauth
## cubicweb/sobject/test
cubicweb-comment == 1.12.2