tests avec gunicorn

This commit is contained in:
Emmanuel Viennet 2021-08-15 10:42:08 +02:00
parent 545274c562
commit 3dc94775a1
4 changed files with 88 additions and 71 deletions

View File

@ -21,15 +21,13 @@ on s'efforce à ce que rien ne soit visible des utilisateurs Web.
**Work in Progress (WIP)**: développement en cours, certaines pages fonctionnent, d'autres pas: **Work in Progress (WIP)**: développement en cours, certaines pages fonctionnent, d'autres pas:
merci de signaler les erreurs. merci de signaler les erreurs.
### État actuel (30 juillet 21) ### État actuel (15 août 21)
- serveur de développement fonctionnel (pas testé en mode "production" sous gunicorn+nginx). - serveur de développement fonctionnel (tests en mode "production"
sous gunicorn+nginx en cours).
- logs à revoir (trop verbeux), dans `/opt/scodoc-data/log` - logs à revoir (trop verbeux), dans `/opt/scodoc-data/log`
- pas d'import/export excel.
**En cours:** **En cours:**
- nettoyage du code, finalisation tests et intégration. - nettoyage du code, finalisation tests et intégration.
@ -193,6 +191,10 @@ Dans un terminal, lancer le serveur:
export FLASK_ENV=development export FLASK_ENV=development
flask run --host=0.0.0.0 flask run --host=0.0.0.0
Test avec gunicorn:
gunicorn -b 0.0.0.0:8000 -w 4 scodoc:app
## Organisation des fichiers ## Organisation des fichiers
L'installation comporte les fichiers de l'application, sous `/opt/scodoc/`, et les fichiers locaux (archives, photos, configurations, logs) sous `/opt/scodoc-data`. Par ailleurs, il y a évidemment les bases de données postgresql et la configuration du système. L'installation comporte les fichiers de l'application, sous `/opt/scodoc/`, et les fichiers locaux (archives, photos, configurations, logs) sous `/opt/scodoc-data`. Par ailleurs, il y a évidemment les bases de données postgresql et la configuration du système.

View File

@ -81,10 +81,11 @@ class ScoDocCache:
@classmethod @classmethod
def get(cls, oid): def get(cls, oid):
"""Returns cached object, or None""" """Returns cached object, or None"""
key = cls._get_key(oid)
try: try:
return CACHE.get(cls._get_key(oid)) return CACHE.get(key)
except: except:
log("XXX CACHE Warning: error in get") log(f"XXX CACHE Warning: error in get(key={key})")
log(traceback.format_exc()) log(traceback.format_exc())
return None return None

View File

@ -1,5 +1,5 @@
openpyxl
alembic==1.6.5 alembic==1.6.5
astroid==2.6.5
attrs==21.2.0 attrs==21.2.0
Babel==2.9.1 Babel==2.9.1
blinker==1.4 blinker==1.4
@ -8,11 +8,13 @@ cffi==1.14.6
chardet==4.0.0 chardet==4.0.0
charset-normalizer==2.0.3 charset-normalizer==2.0.3
click==8.0.1 click==8.0.1
coverage==5.5
cracklib==2.9.3 cracklib==2.9.3
cryptography==3.4.7 cryptography==3.4.7
dnspython==2.1.0 dnspython==2.1.0
dominate==2.6.0 dominate==2.6.0
email-validator==1.1.3 email-validator==1.1.3
et-xmlfile==1.1.0
Flask==2.0.1 Flask==2.0.1
Flask-Babel==2.0.0 Flask-Babel==2.0.0
Flask-Bootstrap==3.3.7.1 Flask-Bootstrap==3.3.7.1
@ -24,26 +26,34 @@ Flask-Moment==1.0.2
Flask-SQLAlchemy==2.5.1 Flask-SQLAlchemy==2.5.1
Flask-WTF==0.15.1 Flask-WTF==0.15.1
greenlet==1.1.0 greenlet==1.1.0
gunicorn==20.1.0
icalendar==4.0.7 icalendar==4.0.7
idna==3.2 idna==3.2
importlib-metadata==4.6.1 importlib-metadata==4.6.1
iniconfig==1.1.1 iniconfig==1.1.1
isort==5.9.3
itsdangerous==2.0.1 itsdangerous==2.0.1
Jinja2==3.0.1 Jinja2==3.0.1
jwt==1.2.0 jwt==1.2.0
lazy-object-proxy==1.6.0
Mako==1.1.4 Mako==1.1.4
MarkupSafe==2.0.1 MarkupSafe==2.0.1
mccabe==0.6.1
openpyxl==3.0.7
packaging==21.0 packaging==21.0
Pillow==8.3.1 Pillow==8.3.1
pkg-resources==0.0.0 pkg_resources==0.0.0
pluggy==0.13.1 pluggy==0.13.1
psycopg2==2.9.1 psycopg2==2.9.1
py==1.10.0 py==1.10.0
pycparser==2.20 pycparser==2.20
pydot==1.4.2 pydot==1.4.2
pylint==2.9.6
pyOpenSSL==20.0.1 pyOpenSSL==20.0.1
pyparsing==2.4.7 pyparsing==2.4.7
PyRSS2Gen==1.1
pytest==6.2.4 pytest==6.2.4
pytest-cov==2.12.1
python-dateutil==2.8.2 python-dateutil==2.8.2
python-dotenv==0.18.0 python-dotenv==0.18.0
python-editor==1.0.4 python-editor==1.0.4
@ -55,9 +65,11 @@ rq==1.9.0
six==1.16.0 six==1.16.0
SQLAlchemy==1.4.22 SQLAlchemy==1.4.22
toml==0.10.2 toml==0.10.2
typed-ast==1.4.3
typing-extensions==3.10.0.0 typing-extensions==3.10.0.0
urllib3==1.26.6 urllib3==1.26.6
visitor==0.1.3 visitor==0.1.3
Werkzeug==2.0.1 Werkzeug==2.0.1
wrapt==1.12.1
WTForms==2.3.3 WTForms==2.3.3
zipp==3.5.0 zipp==3.5.0

View File

@ -117,6 +117,8 @@ def import_scodoc7_dept(dept_id: str, dept_db_uri=None):
logging.info(f"All table imported: clearing app caches...") logging.info(f"All table imported: clearing app caches...")
clear_scodoc_cache() clear_scodoc_cache()
logging.info(f"Done.") logging.info(f"Done.")
logging.warning(f"Un redémarrage du serveur postgresql est conseillé")
logging.warning(f"systemctl restart postgresql"
def get_class_for_table(table): def get_class_for_table(table):