File: test_asyncio.py

package info (click to toggle)
logbook 1.7.0-1.0
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,140 kB
  • sloc: python: 6,558; makefile: 141
file content (28 lines) | stat: -rw-r--r-- 676 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import asyncio

import logbook

ITERATIONS = 100


def test_asyncio_context_management(logger):
    h1 = logbook.TestHandler()
    h2 = logbook.TestHandler()

    async def task(handler, msg):
        for _ in range(ITERATIONS):
            with handler.contextbound():
                logger.info(msg)

            await asyncio.sleep(0)  # allow for context switch

    async def main():
        await asyncio.gather(task(h1, "task1"), task(h2, "task2"))

    asyncio.run(main())

    assert len(h1.records) == ITERATIONS
    assert all(["task1" == r.msg for r in h1.records])

    assert len(h2.records) == ITERATIONS
    assert all(["task2" == r.msg for r in h2.records])