Skip to content

Commit

Permalink
Update examples (#838)
Browse files Browse the repository at this point in the history
  • Loading branch information
ZipFile authored Dec 8, 2024
1 parent 87741ed commit 7f58624
Show file tree
Hide file tree
Showing 26 changed files with 93 additions and 85 deletions.
38 changes: 18 additions & 20 deletions docs/tutorials/asyncio-daemon.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ In this tutorial we will use:

- Python 3
- Docker
- Docker-compose
- Docker Compose

Start from the scratch or jump to the section:

Expand Down Expand Up @@ -47,28 +47,27 @@ response it will log:
Prerequisites
-------------

We will use `Docker <https://www.docker.com/>`_ and
`docker-compose <https://docs.docker.com/compose/>`_ in this tutorial. Let's check the versions:
We will use `docker compose <https://docs.docker.com/compose/>`_ in this tutorial. Let's check the versions:

.. code-block:: bash
docker --version
docker-compose --version
docker compose version
The output should look something like:

.. code-block:: bash
Docker version 20.10.5, build 55c4c88
docker-compose version 1.29.0, build 07737305
Docker version 27.3.1, build ce12230
Docker Compose version v2.29.7
.. note::

If you don't have ``Docker`` or ``docker-compose`` you need to install them before proceeding.
If you don't have ``Docker`` or ``docker compose`` you need to install them before proceeding.
Follow these installation guides:

- `Install Docker <https://docs.docker.com/get-docker/>`_
- `Install docker-compose <https://docs.docker.com/compose/install/>`_
- `Install docker compose <https://docs.docker.com/compose/install/>`_

The prerequisites are satisfied. Let's get started with the project layout.

Expand Down Expand Up @@ -129,13 +128,13 @@ Put next lines into the ``requirements.txt`` file:
pytest-cov
Second, we need to create the ``Dockerfile``. It will describe the daemon's build process and
specify how to run it. We will use ``python:3.9-buster`` as a base image.
specify how to run it. We will use ``python:3.13-bookworm`` as a base image.

Put next lines into the ``Dockerfile`` file:

.. code-block:: bash
FROM python:3.10-buster
FROM python:3.13-bookworm
ENV PYTHONUNBUFFERED=1
Expand All @@ -155,8 +154,6 @@ Put next lines into the ``docker-compose.yml`` file:

.. code-block:: yaml
version: "3.7"
services:
monitor:
Expand All @@ -171,7 +168,7 @@ Run in the terminal:

.. code-block:: bash
docker-compose build
docker compose build
The build process may take a couple of minutes. You should see something like this in the end:

Expand All @@ -184,7 +181,7 @@ After the build is done run the container:

.. code-block:: bash
docker-compose up
docker compose up
The output should look like:

Expand Down Expand Up @@ -461,7 +458,7 @@ Run in the terminal:

.. code-block:: bash
docker-compose up
docker compose up
The output should look like:

Expand Down Expand Up @@ -705,7 +702,7 @@ Run in the terminal:

.. code-block:: bash
docker-compose up
docker compose up
You should see:

Expand Down Expand Up @@ -813,7 +810,7 @@ Run in the terminal:

.. code-block:: bash
docker-compose up
docker compose up
You should see:

Expand Down Expand Up @@ -965,15 +962,16 @@ Run in the terminal:

.. code-block:: bash
docker-compose run --rm monitor py.test monitoringdaemon/tests.py --cov=monitoringdaemon
docker compose run --rm monitor py.test monitoringdaemon/tests.py --cov=monitoringdaemon
You should see:

.. code-block:: bash
platform linux -- Python 3.10.0, pytest-6.2.5, py-1.10.0, pluggy-1.0.0
platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
rootdir: /code
plugins: asyncio-0.16.0, cov-3.0.0
plugins: cov-6.0.0, asyncio-0.24.0
asyncio: mode=Mode.STRICT, default_loop_scope=None
collected 2 items
monitoringdaemon/tests.py .. [100%]
Expand Down
5 changes: 3 additions & 2 deletions examples/miniapps/aiohttp/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,9 @@ The output should be something like:

.. code-block::
platform darwin -- Python 3.10.0, pytest-6.2.5, py-1.10.0, pluggy-1.0.0
plugins: asyncio-0.16.0, anyio-3.3.4, aiohttp-0.3.0, cov-3.0.0
platform linux -- Python 3.12.3, pytest-8.3.2, pluggy-1.5.0
plugins: cov-6.0.0, anyio-4.4.0, asyncio-0.24.0, aiohttp-1.0.5
asyncio: mode=Mode.STRICT, default_loop_scope=None
collected 3 items
giphynavigator/tests.py ... [100%]
Expand Down
10 changes: 7 additions & 3 deletions examples/miniapps/aiohttp/giphynavigator/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,25 @@
from unittest import mock

import pytest
import pytest_asyncio

from giphynavigator.application import create_app
from giphynavigator.giphy import GiphyClient


pytestmark = pytest.mark.asyncio


@pytest.fixture
def app():
app = create_app()
yield app
app.container.unwire()


@pytest.fixture
def client(app, aiohttp_client, loop):
return loop.run_until_complete(aiohttp_client(app))
@pytest_asyncio.fixture
async def client(app, aiohttp_client):
return await aiohttp_client(app)


async def test_index(client, app):
Expand Down
1 change: 1 addition & 0 deletions examples/miniapps/aiohttp/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ dependency-injector
aiohttp
pyyaml
pytest-aiohttp
pytest-asyncio
pytest-cov
2 changes: 1 addition & 1 deletion examples/miniapps/asyncio-daemon/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.10-buster
FROM python:3.13-bookworm

ENV PYTHONUNBUFFERED=1

Expand Down
11 changes: 6 additions & 5 deletions examples/miniapps/asyncio-daemon/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ Build the Docker image:

.. code-block:: bash
docker-compose build
docker compose build
Run the docker-compose environment:

.. code-block:: bash
docker-compose up
docker compose up
The output should be something like:

Expand Down Expand Up @@ -59,15 +59,16 @@ To run the tests do:

.. code-block:: bash
docker-compose run --rm monitor py.test monitoringdaemon/tests.py --cov=monitoringdaemon
docker compose run --rm monitor py.test monitoringdaemon/tests.py --cov=monitoringdaemon
The output should be something like:

.. code-block::
platform linux -- Python 3.10.0, pytest-6.2.5, py-1.10.0, pluggy-1.0.0
platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
rootdir: /code
plugins: asyncio-0.16.0, cov-3.0.0
plugins: cov-6.0.0, asyncio-0.24.0
asyncio: mode=Mode.STRICT, default_loop_scope=None
collected 2 items
monitoringdaemon/tests.py .. [100%]
Expand Down
3 changes: 2 additions & 1 deletion examples/miniapps/asyncio-daemon/monitoringdaemon/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ async def test_example_monitor(container, caplog):


@pytest.mark.asyncio
async def test_dispatcher(container, caplog, event_loop):
async def test_dispatcher(container, caplog):
caplog.set_level("INFO")

example_monitor_mock = mock.AsyncMock()
Expand All @@ -72,6 +72,7 @@ async def test_dispatcher(container, caplog, event_loop):
httpbin_monitor=httpbin_monitor_mock,
):
dispatcher = container.dispatcher()
event_loop = asyncio.get_running_loop()
event_loop.create_task(dispatcher.start())
await asyncio.sleep(0.1)
dispatcher.stop()
Expand Down
2 changes: 1 addition & 1 deletion examples/miniapps/fastapi-redis/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.10-buster
FROM python:3.13-bookworm

ENV PYTHONUNBUFFERED=1

Expand Down
14 changes: 7 additions & 7 deletions examples/miniapps/fastapi-redis/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ Build the Docker image:

.. code-block:: bash
docker-compose build
docker compose build
Run the docker-compose environment:

.. code-block:: bash
docker-compose up
docker compose up
The output should be something like:

Expand Down Expand Up @@ -54,16 +54,16 @@ To run the tests do:

.. code-block:: bash
docker-compose run --rm example py.test fastapiredis/tests.py --cov=fastapiredis
docker compose run --rm example py.test fastapiredis/tests.py --cov=fastapiredis
The output should be something like:

.. code-block::
platform linux -- Python 3.10.9, pytest-7.2.0, pluggy-1.0.0
platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
rootdir: /code
plugins: cov-4.0.0, asyncio-0.20.3
collected 1 item
plugins: cov-6.0.0, asyncio-0.24.0, anyio-4.7.0
asyncio: mode=Mode.STRICT, default_loop_scope=None
fastapiredis/tests.py . [100%]
Expand All @@ -77,4 +77,4 @@ The output should be something like:
fastapiredis/services.py 7 3 57%
fastapiredis/tests.py 18 0 100%
-------------------------------------------------
TOTAL 52 7 87%
TOTAL 52 7 87%
2 changes: 1 addition & 1 deletion examples/miniapps/fastapi-redis/fastapiredis/redis.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from typing import AsyncIterator

from aioredis import from_url, Redis
from redis.asyncio import from_url, Redis


async def init_redis_pool(host: str, password: str) -> AsyncIterator[Redis]:
Expand Down
2 changes: 1 addition & 1 deletion examples/miniapps/fastapi-redis/fastapiredis/services.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""Services module."""

from aioredis import Redis
from redis.asyncio import Redis


class Service:
Expand Down
2 changes: 1 addition & 1 deletion examples/miniapps/fastapi-redis/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
dependency-injector
fastapi
uvicorn
aioredis
redis>=4.2

# For testing:
pytest
Expand Down
5 changes: 3 additions & 2 deletions examples/miniapps/fastapi-simple/tests.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
from unittest import mock

import pytest
import pytest_asyncio
from httpx import ASGITransport, AsyncClient

from fastapi_di_example import app, container, Service


@pytest.fixture
async def client(event_loop):
@pytest_asyncio.fixture
async def client():
async with AsyncClient(
transport=ASGITransport(app=app),
base_url="http://test",
Expand Down
2 changes: 1 addition & 1 deletion examples/miniapps/fastapi-sqlalchemy/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.10-buster
FROM python:3.13-bookworm

ENV PYTHONUNBUFFERED=1
ENV HOST=0.0.0.0
Expand Down
10 changes: 5 additions & 5 deletions examples/miniapps/fastapi-sqlalchemy/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ Build the Docker image:

.. code-block:: bash
docker-compose build
docker compose build
Run the docker-compose environment:

.. code-block:: bash
docker-compose up
docker compose up
The output should be something like:

Expand Down Expand Up @@ -67,15 +67,15 @@ To run the tests do:

.. code-block:: bash
docker-compose run --rm webapp py.test webapp/tests.py --cov=webapp
docker compose run --rm webapp py.test webapp/tests.py --cov=webapp
The output should be something like:

.. code-block::
platform linux -- Python 3.10.0, pytest-6.2.5, py-1.10.0, pluggy-1.0.0
platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
rootdir: /code
plugins: cov-3.0.0
plugins: cov-6.0.0, anyio-4.7.0
collected 7 items
webapp/tests.py ....... [100%]
Expand Down
2 changes: 1 addition & 1 deletion examples/miniapps/fastapi-sqlalchemy/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
dependency-injector
fastapi
fastapi[standard]
uvicorn
pyyaml
sqlalchemy
Expand Down
6 changes: 3 additions & 3 deletions examples/miniapps/fastapi/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,9 @@ The output should be something like:

.. code-block::
platform darwin -- Python 3.10.0, pytest-6.2.5, py-1.10.0, pluggy-1.0.0
plugins: asyncio-0.16.0, cov-3.0.0
collected 3 items
platform linux -- Python 3.12.3, pytest-8.3.2, pluggy-1.5.0
plugins: cov-6.0.0, anyio-4.4.0, asyncio-0.24.0, aiohttp-1.0.5
asyncio: mode=Mode.STRICT, default_loop_scope=None
giphynavigator/tests.py ... [100%]
Expand Down
Loading

0 comments on commit 7f58624

Please sign in to comment.