/usr/lib/python3/dist-packages/twisted/test
NameSizeModeActions
__pycache__/-0755rm
cert.pem.no_trailing_newline14140644editdlrm
crash_test_dummy.py5490644editdlrm
ignore_test_failure.py314590644editdlrm
iosim.py181630644editdlrm
key.pem.no_trailing_newline17070644editdlrm
mock_win32process.py12990644editdlrm
myrebuilder1.py1510644editdlrm
myrebuilder2.py1510644editdlrm
plugin_basic.py9010644editdlrm
plugin_extra1.py3920644editdlrm
plugin_extra2.py5500644editdlrm
process_cmdline.py1230644editdlrm
process_echoer.py2140644editdlrm
process_fds.py9840644editdlrm
process_getargv.py2340644editdlrm
process_getenv.py2680644editdlrm
process_linger.py2970644editdlrm
process_reader.py1780644editdlrm
process_signal.py2200644editdlrm
process_stdinreader.py7390644editdlrm
process_tester.py7790644editdlrm
process_tty.py1300644editdlrm
process_twisted.py11820644editdlrm
proto_helpers.py13680644editdlrm
reflect_helper_IE.py600644editdlrm
reflect_helper_VE.py810644editdlrm
reflect_helper_ZDE.py480644editdlrm
server.pem44440644editdlrm
ssl_helpers.py16500644editdlrm
stdio_test_consumer.py11680644editdlrm
stdio_test_halfclose.py20470644editdlrm
stdio_test_hostpeer.py10890644editdlrm
stdio_test_lastwrite.py11540644editdlrm
stdio_test_loseconn.py15830644editdlrm
stdio_test_producer.py14840644editdlrm
stdio_test_write.py9020644editdlrm
stdio_test_writeseq.py8940644editdlrm
testutils.py51780644editdlrm
test_abstract.py34350644editdlrm
test_adbapi.py261750644editdlrm
test_amp.py1105140644editdlrm
test_application.py341400644editdlrm
test_compat.py181720644editdlrm
test_context.py14640644editdlrm
test_cooperator.py213390644editdlrm
test_defer.py1247820644editdlrm
test_defgen.py106340644editdlrm
test_dict.py15280644editdlrm
test_dirdbm.py68510644editdlrm
test_error.py89260644editdlrm
test_factories.py45670644editdlrm
test_fdesc.py74520644editdlrm
test_finger.py18940644editdlrm
test_formmethod.py39610644editdlrm
test_ftp.py1300020644editdlrm
test_ftp_options.py26880644editdlrm
test_htb.py31540644editdlrm
test_ident.py67180644editdlrm
test_internet.py464690644editdlrm
test_iosim.py89080644editdlrm
test_iutils.py136320644editdlrm
test_lockfile.py153360644editdlrm
test_log.py360730644editdlrm
test_logfile.py178910644editdlrm
test_loopback.py143210644editdlrm
test_main.py21660644editdlrm
test_memcache.py252840644editdlrm
test_modules.py174280644editdlrm
test_monkey.py55190644editdlrm
test_paths.py709720644editdlrm
test_pcp.py125280644editdlrm
test_persisted.py134070644editdlrm
test_plugin.py253840644editdlrm
test_policies.py330610644editdlrm
test_postfix.py44270644editdlrm
test_process.py872030644editdlrm
test_protocols.py73340644editdlrm
test_randbytes.py32700644editdlrm
test_rebuild.py73230644editdlrm
test_reflect.py244690644editdlrm
test_roots.py16430644editdlrm
test_shortcut.py19620644editdlrm
test_sip.py254980644editdlrm
test_sob.py56670644editdlrm
test_socks.py174960644editdlrm
test_ssl.py233010644editdlrm
test_sslverify.py1166270644editdlrm
test_stateful.py20150644editdlrm
test_stdio.py127300644editdlrm
test_strerror.py52470644editdlrm
test_strports.py17050644editdlrm
test_task.py463480644editdlrm
test_tcp.py658130644editdlrm
test_tcp_internals.py130360644editdlrm
test_text.py63670644editdlrm
test_threadable.py33380644editdlrm
test_threadpool.py219560644editdlrm
test_threads.py132110644editdlrm
test_tpfile.py15450644editdlrm
test_twistd.py737680644editdlrm
test_twisted.py62770644editdlrm
test_udp.py250120644editdlrm
test_unix.py135790644editdlrm
test_usage.py233110644editdlrm
__init__.py4750644editdlrm
Edit: /usr/lib/python3/dist-packages/twisted/test/test_iosim.py (8908B)
# Copyright (c) Twisted Matrix Laboratories. # See LICENSE for details. """ Tests for L{twisted.test.iosim}. """ from zope.interface import implementer from twisted.internet.interfaces import IPushProducer from twisted.internet.protocol import Protocol from twisted.test.iosim import FakeTransport, connect from twisted.trial.unittest import TestCase class FakeTransportTests(TestCase): """ Tests for L{FakeTransport}. """ def test_connectionSerial(self): """ Each L{FakeTransport} receives a serial number that uniquely identifies it. """ a = FakeTransport(object(), True) b = FakeTransport(object(), False) self.assertIsInstance(a.serial, int) self.assertIsInstance(b.serial, int) self.assertNotEqual(a.serial, b.serial) def test_writeSequence(self): """ L{FakeTransport.writeSequence} will write a sequence of L{bytes} to the transport. """ a = FakeTransport(object(), False) a.write(b"a") a.writeSequence([b"b", b"c", b"d"]) self.assertEqual(b"".join(a.stream), b"abcd") def test_writeAfterClose(self): """ L{FakeTransport.write} will accept writes after transport was closed, but the data will be silently discarded. """ a = FakeTransport(object(), False) a.write(b"before") a.loseConnection() a.write(b"after") self.assertEqual(b"".join(a.stream), b"before") @implementer(IPushProducer) class StrictPushProducer: """ An L{IPushProducer} implementation which produces nothing but enforces preconditions on its state transition methods. """ _state = "running" def stopProducing(self): if self._state == "stopped": raise ValueError("Cannot stop already-stopped IPushProducer") self._state = "stopped" def pauseProducing(self): if self._state != "running": raise ValueError(f"Cannot pause {self._state} IPushProducer") self._state = "paused" def resumeProducing(self): if self._state != "paused": raise ValueError(f"Cannot resume {self._state} IPushProducer") self._state = "running" class StrictPushProducerTests(TestCase): """ Tests for L{StrictPushProducer}. """ def _initial(self): """ @return: A new L{StrictPushProducer} which has not been through any state changes. """ return StrictPushProducer() def _stopped(self): """ @return: A new, stopped L{StrictPushProducer}. """ producer = StrictPushProducer() producer.stopProducing() return producer def _paused(self): """ @return: A new, paused L{StrictPushProducer}. """ producer = StrictPushProducer() producer.pauseProducing() return producer def _resumed(self): """ @return: A new L{StrictPushProducer} which has been paused and resumed. """ producer = StrictPushProducer() producer.pauseProducing() producer.resumeProducing() return producer def assertStopped(self, producer): """ Assert that the given producer is in the stopped state. @param producer: The producer to verify. @type producer: L{StrictPushProducer} """ self.assertEqual(producer._state, "stopped") def assertPaused(self, producer): """ Assert that the given producer is in the paused state. @param producer: The producer to verify. @type producer: L{StrictPushProducer} """ self.assertEqual(producer._state, "paused") def assertRunning(self, producer): """ Assert that the given producer is in the running state. @param producer: The producer to verify. @type producer: L{StrictPushProducer} """ self.assertEqual(producer._state, "running") def test_stopThenStop(self): """ L{StrictPushProducer.stopProducing} raises L{ValueError} if called when the producer is stopped. """ self.assertRaises(ValueError, self._stopped().stopProducing) def test_stopThenPause(self): """ L{StrictPushProducer.pauseProducing} raises L{ValueError} if called when the producer is stopped. """ self.assertRaises(ValueError, self._stopped().pauseProducing) def test_stopThenResume(self): """ L{StrictPushProducer.resumeProducing} raises L{ValueError} if called when the producer is stopped. """ self.assertRaises(ValueError, self._stopped().resumeProducing) def test_pauseThenStop(self): """ L{StrictPushProducer} is stopped if C{stopProducing} is called on a paused producer. """ producer = self._paused() producer.stopProducing() self.assertStopped(producer) def test_pauseThenPause(self): """ L{StrictPushProducer.pauseProducing} raises L{ValueError} if called on a paused producer. """ producer = self._paused() self.assertRaises(ValueError, producer.pauseProducing) def test_pauseThenResume(self): """ L{StrictPushProducer} is resumed if C{resumeProducing} is called on a paused producer. """ producer = self._paused() producer.resumeProducing() self.assertRunning(producer) def test_resumeThenStop(self): """ L{StrictPushProducer} is stopped if C{stopProducing} is called on a resumed producer. """ producer = self._resumed() producer.stopProducing() self.assertStopped(producer) def test_resumeThenPause(self): """ L{StrictPushProducer} is paused if C{pauseProducing} is called on a resumed producer. """ producer = self._resumed() producer.pauseProducing() self.assertPaused(producer) def test_resumeThenResume(self): """ L{StrictPushProducer.resumeProducing} raises L{ValueError} if called on a resumed producer. """ producer = self._resumed() self.assertRaises(ValueError, producer.resumeProducing) def test_stop(self): """ L{StrictPushProducer} is stopped if C{stopProducing} is called in the initial state. """ producer = self._initial() producer.stopProducing() self.assertStopped(producer) def test_pause(self): """ L{StrictPushProducer} is paused if C{pauseProducing} is called in the initial state. """ producer = self._initial() producer.pauseProducing() self.assertPaused(producer) def test_resume(self): """ L{StrictPushProducer} raises L{ValueError} if C{resumeProducing} is called in the initial state. """ producer = self._initial() self.assertRaises(ValueError, producer.resumeProducing) class IOPumpTests(TestCase): """ Tests for L{IOPump}. """ def _testStreamingProducer(self, mode): """ Connect a couple protocol/transport pairs to an L{IOPump} and then pump it. Verify that a streaming producer registered with one of the transports does not receive invalid L{IPushProducer} method calls and ends in the right state. @param mode: C{u"server"} to test a producer registered with the server transport. C{u"client"} to test a producer registered with the client transport. """ serverProto = Protocol() serverTransport = FakeTransport(serverProto, isServer=True) clientProto = Protocol() clientTransport = FakeTransport(clientProto, isServer=False) pump = connect( serverProto, serverTransport, clientProto, clientTransport, greet=False, ) producer = StrictPushProducer() victim = { "server": serverTransport, "client": clientTransport, }[mode] victim.registerProducer(producer, streaming=True) pump.pump() self.assertEqual("running", producer._state) def test_serverStreamingProducer(self): """ L{IOPump.pump} does not call C{resumeProducing} on a L{IPushProducer} (stream producer) registered with the server transport. """ self._testStreamingProducer(mode="server") def test_clientStreamingProducer(self): """ L{IOPump.pump} does not call C{resumeProducing} on a L{IPushProducer} (stream producer) registered with the client transport. """ self._testStreamingProducer(mode="client")