Alpine ships uWSGI linked against the most recent Python version,
i. e. currently python3.9. The current deployment uses python3.8
though, so whenever our Python version diverges from Alpine's
stable version, uWSGI will break (aka fail to run the parser).
Switching to installing uWSGI via pip into the pipenv will make sure
that the uWSGI Python module's version will always fit our venv.
Using json.JSONDecodeError should replace using the 'message'
accessor of exceptions, which Python 3 removed.
This works as long as "simplejson" is not added as project
dependency, because "requests" gives preferential treatment to
simplejson, which ships its own version of JSONDecodeError.
This increases build stability - in case we did not receive
valid JSON in the retrieval test, we cannot exercise the
parser at all.
Disadvantage: if the endpoint stops returning JSON, we will
never know.
Using absolute imports broke the debug target due to
a Werkzeug bug:
https://github.com/pallets/werkzeug/issues/461
Solution is to avoid running Flask apps using
"python -m", and to use "flask run". This also
gets rid of the coverage exception for
"__main__.py".
* feature/metafeeds: Restructured API, splitted menu and meta feed
* feature/metafeeds: add field 'key' to Canteen
* feature/metafeeds: added helper function for reverse urls
* feature/metafeeds: added menu feed url to meta feed
* feature/metafeeds: added missing test
(added: testing meta feed rendering in retrievaltest)
* feature/metafeeds: added feed index page
* whitespace fix
* feature/metafeeds: added alias urls
* feature/metafeeds: moved meta feed default url
* feature/metafeeds: moved index generation to views
* feature/metafeeds: inlined builder instance creation
* feature/metafeeds: removed unused 'menu' parameter
* feature/metafeeds: replaced 'reverse' module with Flask's url_for
* feature/metafeeds: removed unused import
* feature/metafeeds: removed unused function parameters
* feature/metafeeds: moved menu feed url generation to views.py
* feature/metafeeds: cleanup debug prints
removing debug prints that should never have been committed.
* Initial Dockerfile
* Dockerfile: install without caching in production
* dockerfile: added ARG/ENV for deployment dir
* dockerfile: removed unnecessary tinkering with PYTHONPATH
* dockerfile: added ARG/ENV for listening port
* dockerfile: added cleanup of tests and makefile
* dockerfile: added health check