HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/twisted/internet/test/fakeendpoint.py
# -*- test-case-name: twisted.internet.test.test_endpoints -*-
# Copyright (c) Twisted Matrix Laboratories.
# See LICENSE for details.

"""
Fake client and server endpoint string parser plugins for testing purposes.
"""


from zope.interface.declarations import implementer

from twisted.internet.interfaces import (
    IStreamClientEndpoint,
    IStreamClientEndpointStringParserWithReactor,
    IStreamServerEndpoint,
    IStreamServerEndpointStringParser,
)
from twisted.plugin import IPlugin


@implementer(IPlugin)
class PluginBase:
    def __init__(self, pfx):
        self.prefix = pfx


@implementer(IStreamClientEndpointStringParserWithReactor)
class FakeClientParserWithReactor(PluginBase):
    def parseStreamClient(self, *a, **kw):
        return StreamClient(self, a, kw)


@implementer(IStreamServerEndpointStringParser)
class FakeParser(PluginBase):
    def parseStreamServer(self, *a, **kw):
        return StreamServer(self, a, kw)


class EndpointBase:
    def __init__(self, parser, args, kwargs):
        self.parser = parser
        self.args = args
        self.kwargs = kwargs


@implementer(IStreamClientEndpoint)
class StreamClient(EndpointBase):
    def connect(self, protocolFactory=None):
        # IStreamClientEndpoint.connect
        pass


@implementer(IStreamServerEndpoint)
class StreamServer(EndpointBase):
    def listen(self, protocolFactory=None):
        # IStreamClientEndpoint.listen
        pass


# Instantiate plugin interface providers to register them.
fake = FakeParser("fake")
fakeClientWithReactor = FakeClientParserWithReactor("crfake")
fakeClientWithReactorAndPreference = FakeClientParserWithReactor("cpfake")