PHP 8.5.2
Preview: test_kqueuereactor.py Size: 1.93 KB
/lib/python3/dist-packages/twisted/internet/test/test_kqueuereactor.py

# Copyright (c) Twisted Matrix Laboratories.
# See LICENSE for details.

"""
Tests for L{twisted.internet.kqueuereactor}.
"""
from __future__ import annotations

import errno

from zope.interface import implementer

from twisted.trial.unittest import TestCase

try:
    from twisted.internet.kqreactor import KQueueReactor, _IKQueue

    kqueueSkip = None
except ImportError:
    kqueueSkip = "KQueue not available."


def _fakeKEvent(*args: object, **kwargs: object) -> None:
    """
    Do nothing.
    """


def makeFakeKQueue(testKQueue: object, testKEvent: object) -> _IKQueue:
    """
    Create a fake that implements L{_IKQueue}.

    @param testKQueue: Something that acts like L{select.kqueue}.
    @param testKEvent: Something that acts like L{select.kevent}.
    @return: An implementation of L{_IKQueue} that includes C{testKQueue} and
        C{testKEvent}.
    """

    @implementer(_IKQueue)
    class FakeKQueue:
        kqueue = testKQueue
        kevent = testKEvent

    return FakeKQueue()


class KQueueTests(TestCase):
    """
    These are tests for L{KQueueReactor}'s implementation, not its real world
    behaviour. For that, look at
    L{twisted.internet.test.reactormixins.ReactorBuilder}.
    """

    skip = kqueueSkip

    def test_EINTR(self) -> None:
        """
        L{KQueueReactor} handles L{errno.EINTR} in C{doKEvent} by returning.
        """

        class FakeKQueue:
            """
            A fake KQueue that raises L{errno.EINTR} when C{control} is called,
            like a real KQueue would if it was interrupted.
            """

            def control(self, *args: object, **kwargs: object) -> None:
                raise OSError(errno.EINTR, "Interrupted")

        reactor = KQueueReactor(makeFakeKQueue(FakeKQueue, _fakeKEvent))
        # This should return cleanly -- should not raise the OSError we're
        # spawning, nor get upset and raise about the incomplete KQueue fake.
        reactor.doKEvent(0)

Directory Contents

Dirs: 2 × Files: 55

Name Size Perms Modified Actions
fake_CAs DIR
- drwxr-xr-x 2026-01-08 12:55:41
Edit Download
- drwxr-xr-x 2026-01-08 12:56:23
Edit Download
19.71 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
1.62 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
1.63 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
547 B lrw-r--r-- 2024-08-27 10:30:39
Edit Download
126 B lrw-r--r-- 2024-08-27 10:30:39
Edit Download
792 B lrw-r--r-- 2024-08-27 10:30:39
Edit Download
1.22 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
16.05 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
2.15 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
8.07 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
9.70 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
14.44 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
2.53 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
3.09 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
10.86 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
3.50 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
6.66 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
4.79 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
147.25 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
7.15 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
1.08 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
13.18 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
2.70 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
7.18 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
3.02 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
11.21 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
18.13 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
7.52 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
1.93 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
1.32 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
6.38 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
1.28 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
11.56 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
10.94 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
44.60 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
18.08 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
1.93 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
19.15 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
1.94 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
3.25 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
9.22 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
6.18 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
105.70 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
16.49 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
7.94 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
3.57 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
12.54 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
16.48 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
4.98 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
34.04 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
6.30 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
5.18 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
4.29 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
3.88 KB lrw-r--r-- 2024-08-27 10:30:39
Edit Download
112 B lrw-r--r-- 2024-08-27 10:30:39
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).