mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2024-11-26 03:23:58 +03:00
3a61457be7
* Fix a typo in the docblock of the Configuration provider * Update the changelog * Add tutorial sections * Switch to use https for httpbin.org requests * Add what we are going to build section * Fix ``Makefile`` to run ``aiohttp`` integration tests on Python 3.5+ * Add prerequisities and prepare the env sections * Add logging, config and the dispacher sections * Change logging * Fix multiple typos in the ``flask`` and ``aiohttp`` tutorials * Add the initial and dirty version * Fix multiple typos in the ``flask`` and ``aiohttp`` tutorials * Fix the 3.27.0 changelog * Finish all the parts before the dispatcher * Finish dispatcher section * Update http monitor logging format * Finish the tutorial * Fix docblock in the dispatcher module * Update changelog * Add meta keywords and description |
||
---|---|---|
.. | ||
monitoringdaemon | ||
config.yml | ||
docker-compose.yml | ||
Dockerfile | ||
README.rst | ||
requirements.txt |
Asyncio Daemon Dependency Injection Example =========================================== Application ``monitoringdaemon`` is an `asyncio <https://docs.python.org/3/library/asyncio.html>`_ + `Dependency Injector <http://python-dependency-injector.ets-labs.org/>`_ application. Run --- Build the Docker image: .. code-block:: bash docker-compose build Run the docker-compose environment: .. code-block:: bash docker-compose up The output should be something like: .. code-block:: Starting monitoring-daemon-asyncio_monitor_1 ... done Attaching to monitoring-daemon-asyncio_monitor_1 monitor_1 | [2020-08-08 17:04:36,655] [INFO] [Dispatcher]: Starting up monitor_1 | [2020-08-08 17:04:36,732] [INFO] [HttpMonitor]: Check monitor_1 | GET http://example.com monitor_1 | response code: 200 monitor_1 | content length: 648 monitor_1 | request took: 0.074 seconds monitor_1 | monitor_1 | [2020-08-08 17:04:36,811] [INFO] [HttpMonitor]: Check monitor_1 | GET https://httpbin.org/get monitor_1 | response code: 200 monitor_1 | content length: 310 monitor_1 | request took: 0.153 seconds monitor_1 | monitor_1 | [2020-08-08 17:04:41,731] [INFO] [HttpMonitor]: Check monitor_1 | GET http://example.com monitor_1 | response code: 200 monitor_1 | content length: 648 monitor_1 | request took: 0.067 seconds monitor_1 | monitor_1 | [2020-08-08 17:04:41,787] [INFO] [HttpMonitor]: Check monitor_1 | GET https://httpbin.org/get monitor_1 | response code: 200 monitor_1 | content length: 310 monitor_1 | request took: 0.122 seconds monitor_1 | Test ---- This application comes with the unit tests. To run the tests do: .. code-block:: bash docker-compose run --rm monitor py.test monitoringdaemon/tests.py --cov=monitoringdaemon The output should be something like: .. code-block:: platform linux -- Python 3.8.3, pytest-6.0.1, py-1.9.0, pluggy-0.13.1 rootdir: /code plugins: asyncio-0.14.0, cov-2.10.0 collected 2 items monitoringdaemon/tests.py .. [100%] ----------- coverage: platform linux, python 3.8.3-final-0 ----------- Name Stmts Miss Cover ---------------------------------------------------- monitoringdaemon/__init__.py 0 0 100% monitoringdaemon/__main__.py 9 9 0% monitoringdaemon/containers.py 11 0 100% monitoringdaemon/dispatcher.py 43 5 88% monitoringdaemon/http.py 6 3 50% monitoringdaemon/monitors.py 23 1 96% monitoringdaemon/tests.py 37 0 100% ---------------------------------------------------- TOTAL 129 18 86%