Source: python-tubes
Version: 0.2.1-3
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20231212 ftbfs-trixie

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
>  debian/rules binary
> dh binary --buildsystem pybuild
>    dh_update_autotools_config -O--buildsystem=pybuild
>    dh_autoreconf -O--buildsystem=pybuild
>    dh_auto_configure -O--buildsystem=pybuild
> I: pybuild base:310: python3.12 setup.py config 
> running config
> I: pybuild base:310: python3.11 setup.py config 
> running config
>    dh_auto_build -O--buildsystem=pybuild
> I: pybuild base:310: /usr/bin/python3.12 setup.py build 
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes
> copying tubes/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes
> copying tubes/framing.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes
> copying tubes/fan.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes
> copying tubes/tube.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes
> copying tubes/undefer.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes
> copying tubes/_siphon.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes
> copying tubes/memory.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes
> copying tubes/itube.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes
> copying tubes/listening.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes
> copying tubes/protocol.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes
> copying tubes/routing.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes
> copying tubes/kit.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes
> copying tubes/_components.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test
> copying tubes/test/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test
> copying tubes/test/test_tube.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test
> copying tubes/test/test_routing.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test
> copying tubes/test/test_undefer.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test
> copying tubes/test/test_memory.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test
> copying tubes/test/test_kit.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test
> copying tubes/test/test_protocol.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test
> copying tubes/test/util.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test
> copying tubes/test/test_framing.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test
> copying tubes/test/test_fan.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test
> copying tubes/test/test_listening.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test
> copying tubes/test/test_chatter.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test
> I: pybuild base:310: /usr/bin/python3 setup.py build 
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes
> copying tubes/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes
> copying tubes/framing.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes
> copying tubes/fan.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes
> copying tubes/tube.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes
> copying tubes/undefer.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes
> copying tubes/_siphon.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes
> copying tubes/memory.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes
> copying tubes/itube.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes
> copying tubes/listening.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes
> copying tubes/protocol.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes
> copying tubes/routing.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes
> copying tubes/kit.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes
> copying tubes/_components.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test
> copying tubes/test/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test
> copying tubes/test/test_tube.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test
> copying tubes/test/test_routing.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test
> copying tubes/test/test_undefer.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test
> copying tubes/test/test_memory.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test
> copying tubes/test/test_kit.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test
> copying tubes/test/test_protocol.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test
> copying tubes/test/util.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test
> copying tubes/test/test_framing.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test
> copying tubes/test/test_fan.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test
> copying tubes/test/test_listening.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test
> copying tubes/test/test_chatter.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:310: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build; 
> python3.12 -m unittest discover -v 
> test_joining (test.test_chatter.ChatTests.test_joining)
> Test that we receive a response from joining. ... ok
> test_dontUnpauseWhenNoDrain 
> (test.test_fan.FanInTests.test_dontUnpauseWhenNoDrain)
> L{In.fount}C{.flowTo(None)} won't unpause L{In}'s upstream founts. ... ok
> test_flowStopped (test.test_fan.FanInTests.test_flowStopped)
> When the flow stops to one of the drains returned by L{In.newDrain}, it ... ok
> test_oneDrainReceives (test.test_fan.FanInTests.test_oneDrainReceives)
> When one drain created by L{In.newDrain} recives a value, the drain ... ok
> test_pauseNewFountWhenPaused 
> (test.test_fan.FanInTests.test_pauseNewFountWhenPaused)
> When a drain created by L{In.newDrain} receives a new fount, if ... ok
> test_pauseWhenNoDrain (test.test_fan.FanInTests.test_pauseWhenNoDrain)
> When a drain created by L{In.newDrain} is hooked up to a new fount, but ... ok
> test_pauseWhenSwitchedToNoDrain 
> (test.test_fan.FanInTests.test_pauseWhenSwitchedToNoDrain)
> L{In.fount}C{.flowTo(None)} after L{In.fount} already has a drain will ... ok
> test_stopFlow (test.test_fan.FanInTests.test_stopFlow)
> When the drain of L{In.fount} stops its upstream flow, that stops the ... ok
> test_fanOut (test.test_fan.FanOutTests.test_fanOut)
> When an L{Out} is constructed and flowed to two drains, both drains ... ok
> test_fanReceivesBeforeFountsHaveDrains 
> (test.test_fan.FanOutTests.test_fanReceivesBeforeFountsHaveDrains)
> L{Out.drain}'s C{receive} method only relays outputs to founts which ... ok
> test_flowStopped (test.test_fan.FanOutTests.test_flowStopped)
> When the flow stops to L{out.drain}, it stops to all downstream drains ... ok
> test_oneFountPausesInReceive 
> (test.test_fan.FanOutTests.test_oneFountPausesInReceive)
> When an L{Out} has two founts created by C{newFount} fA and fB, and ... ok
> test_oneFountPausesOthersInReceive 
> (test.test_fan.FanOutTests.test_oneFountPausesOthersInReceive)
> When an L{Out} has two founts created by C{newFount} fA and fB, and ... ok
> test_oneFountStops (test.test_fan.FanOutTests.test_oneFountStops)
> When one fount created by L{Out.newFount} is stopped, only the drain ... ok
> test_oneFountStopsInReceive 
> (test.test_fan.FanOutTests.test_oneFountStopsInReceive)
> When one fount created by L{Out.newFount} is stopped in its drain's ... ok
> test_outFountFlowTo (test.test_fan.FanOutTests.test_outFountFlowTo)
> L{Out.newFount}'s C{flowTo} calls C{flowingFrom} on its drain and ... ok
> test_pausingOneOutFountPausesUpstreamFount 
> (test.test_fan.FanOutTests.test_pausingOneOutFountPausesUpstreamFount)
> When one fount created by L{Out.newFount} is paused, the fount flowing ... ok
> test_switchFlowToNone (test.test_fan.FanOutTests.test_switchFlowToNone)
> When L{out.drain} removes its upstream fount, it unpauses it. ... ok
> test_verifyCompliance (test.test_fan.FanOutTests.test_verifyCompliance)
> L{Out.newFount} and L{Out.drain} adhere to their respected declared ... ok
> test_thru (test.test_fan.FanThruTests.test_thru)
> Each input provided to L{Thru} will be sent to each of its drains, and ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_linesToBytes (test.test_framing.LineTests.test_linesToBytes)
> Writing out lines delimits them, with the delimiter. ... ERROR
> test_rawMode (test.test_framing.LineTests.test_rawMode)
> You should be able to have some lines, and then some bytes, and then ... ERROR
> test_stringToLines (test.test_framing.LineTests.test_stringToLines)
> A line is something delimited by a LF or CRLF. ... ERROR
> test_switchingWithMoreDataToDeliver 
> (test.test_framing.LineTests.test_switchingWithMoreDataToDeliver)
> Switching drains should immediately stop delivering data. ... ERROR
> test_bytesToNetstrings 
> (test.test_framing.NetstringTests.test_bytesToNetstrings)
> L{bytesToNetstrings} works on subsequent inputs as well. ... ERROR
> test_netstringToString 
> (test.test_framing.NetstringTests.test_netstringToString)
> Length prefix is stripped off. ... ERROR
> test_stringToNetstring 
> (test.test_framing.NetstringTests.test_stringToNetstring)
> A byte-string is given a length prefix. ... ERROR
> test_prefixIn (test.test_framing.PackedPrefixTests.test_prefixIn)
> Parse some prefixed data. ... ERROR
> test_prefixOut (test.test_framing.PackedPrefixTests.test_prefixOut)
> Emit some prefixes. ... ERROR
> test_pauseOnce (test.test_kit.PauserTests.test_pauseOnce)
> One call to L{_Pauser.pause} will call the actuallyPause callable. ... ok
> test_pauseThenUnpause (test.test_kit.PauserTests.test_pauseThenUnpause)
> A call to L{_Pauser.pause} followed by a call to the result's ... ok
> test_reentrantPause (test.test_kit.PauserTests.test_reentrantPause)
> A L{Pauser} that pauses re-entrantly will only result in one call to ... ok
> test_reentrantResume (test.test_kit.PauserTests.test_reentrantResume)
> A L{Pauser} that resumes re-entrantly will raise L{AlreadyUnpaused}. ... ok
> test_repeatedlyPause (test.test_kit.PauserTests.test_repeatedlyPause)
> Multiple calls to L{_Pauser.pause} where not all of the pausers are ... ok
> test_secondUnpauseFails (test.test_kit.PauserTests.test_secondUnpauseFails)
> The second of two consectuive calls to L{IPause.unpause} results in an ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_listenerCallsFlowConnector 
> (test.test_listening.ListeningTests.test_listenerCallsFlowConnector)
> A L{Listener} is a drain which calls the function given to it to ... ok
> test_listenerLimitsConcurrentConnections 
> (test.test_listening.ListeningTests.test_listenerLimitsConcurrentConnections)
> L{Listener} will pause its fount when too many connections are ... ok
> test_flowTo (test.test_memory.IteratorFountTests.test_flowTo)
> L{iteratorFount.flowTo} sets its drain and calls C{flowingFrom} on its ... ok
> test_flowToDeliversValues 
> (test.test_memory.IteratorFountTests.test_flowToDeliversValues)
> L{iteratorFount.flowTo} will deliver all of its values to the given ... ok
> test_flowUnpausedAfterPausedFlowIsStopped 
> (test.test_memory.IteratorFountTests.test_flowUnpausedAfterPausedFlowIsStopped)
> When L{iteratorFount} is stopped after being paused, and subsequently ... ok
> test_pauseFlow (test.test_memory.IteratorFountTests.test_pauseFlow)
> L{iteratorFount.pauseFlow} will pause the delivery of items. ... ok
> test_provides (test.test_memory.IteratorFountTests.test_provides)
> An L{iteratorFount} provides L{IFount}. ... ok
> test_stopFlow (test.test_memory.IteratorFountTests.test_stopFlow)
> L{iteratorFount.stopFlow} stops the flow, propagating a C{flowStopped} ... ok
> test_stopFlowCalledAfterFlowStopped 
> (test.test_memory.IteratorFountTests.test_stopFlowCalledAfterFlowStopped)
> L{iteratorFount} will only call its C{drain}'s L{flowStopped} once when ... ok
> test_stopIterationStopsIteration 
> (test.test_memory.IteratorFountTests.test_stopIterationStopsIteration)
> When the iterator passed to L{iteratorFount} is exhausted ... ok
> test_stopPausedFlow (test.test_memory.IteratorFountTests.test_stopPausedFlow)
> When L{iteratorFount} is stopped after being paused, the drain will ... ok
> test_unpauseFlow (test.test_memory.IteratorFountTests.test_unpauseFlow)
> When all pauses returned by L{iteratorFount.pauseFlow} have been ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_connectionLostSendsFlowStopped 
> (test.test_protocol.FlowConnectorTests.test_connectionLostSendsFlowStopped)
> When C{connectionLost} is called on a L{_ProtocolPlumbing} and it has ... ok
> test_connectionLostSendsStopFlow 
> (test.test_protocol.FlowConnectorTests.test_connectionLostSendsStopFlow)
> L{_ProtocolPlumbing.connectionLost} will notify its C{_drain}'s ... ok
> test_dataReceivedBeforeFlowing 
> (test.test_protocol.FlowConnectorTests.test_dataReceivedBeforeFlowing)
> If L{_ProtocolPlumbing.dataReceived} is called before its ... ok
> test_dataReceivedBeforeFlowingThenFlowTo 
> (test.test_protocol.FlowConnectorTests.test_dataReceivedBeforeFlowingThenFlowTo)
> Repeated calls to L{flowTo} don't replay the buffer from ... ok
> test_dataReceivedWhenFlowingToNone 
> (test.test_protocol.FlowConnectorTests.test_dataReceivedWhenFlowingToNone)
> Initially flowing to L{None} is the same as flowTo never having been ... ok
> test_drainReceivingWritesToTransport 
> (test.test_protocol.FlowConnectorTests.test_drainReceivingWritesToTransport)
> Calling L{receive} on a L{_TransportDrain} will send the data to the ... ok
> test_flowStoppedStopsConnection 
> (test.test_protocol.FlowConnectorTests.test_flowStoppedStopsConnection)
> L{_TransportDrain.flowStopped} will close the underlying connection by ... ok
> test_flowToDeliversData 
> (test.test_protocol.FlowConnectorTests.test_flowToDeliversData)
> L{_TransportFount.flowTo} will cause subsequent calls to ... ok
> test_flowToSetsDrain 
> (test.test_protocol.FlowConnectorTests.test_flowToSetsDrain)
> L{_TransportFount.flowTo} will set the C{drain} attribute of the ... ok
> test_flowingFrom (test.test_protocol.FlowConnectorTests.test_flowingFrom)
> L{_TransportFount.flowTo} returns the result of its argument's ... ok
> test_flowingFromAttribute 
> (test.test_protocol.FlowConnectorTests.test_flowingFromAttribute)
> L{_TransportDrain.flowingFrom} will establish the appropriate L{IFount} ... ok
> test_flowingFromTwice 
> (test.test_protocol.FlowConnectorTests.test_flowingFromTwice)
> L{_TransportDrain.flowingFrom} switches the producer registered with ... ok
> test_flowingToNoneAfterFlowingToSomething 
> (test.test_protocol.FlowConnectorTests.test_flowingToNoneAfterFlowingToSomething)
> Flowing to L{None} should disconnect from any drain, no longer ... ok
> test_pauseUnpauseFromOtherDrain 
> (test.test_protocol.FlowConnectorTests.test_pauseUnpauseFromOtherDrain)
> When a L{_TransportFount} produces too much data for a L{drain ... ok
> test_pauseUnpauseFromTransport 
> (test.test_protocol.FlowConnectorTests.test_pauseUnpauseFromTransport)
> When an L{IFount} produces too much data for a L{_TransportDrain} to ... ok
> test_stopFlowStopsConnection 
> (test.test_protocol.FlowConnectorTests.test_stopFlowStopsConnection)
> L{_TransportFount.stopFlow} will close the underlying connection by ... ok
> test_stopProducing (test.test_protocol.FlowConnectorTests.test_stopProducing)
> When C{stopProducing} is called on the L{push producer ... ok
> test_acceptAfterDeferredButBeforeFlowTo 
> (test.test_protocol.FlowListenerTests.test_acceptAfterDeferredButBeforeFlowTo)
> If the L{Deferred} returned by L{flowFountFromEndpoint} fires, but the ... ok
> test_acceptBeforeActuallyListening 
> (test.test_protocol.FlowListenerTests.test_acceptBeforeActuallyListening)
> Sometimes a connection is established reentrantly by C{listen}, without ... ok
> test_backpressure (test.test_protocol.FlowListenerTests.test_backpressure)
> When the L{IFount} returned by L{flowFountFromEndpoint} is paused, it ... ok
> test_fromEndpoint (test.test_protocol.FlowListenerTests.test_fromEndpoint)
> L{flowFountFromEndpoint} returns a L{Deferred} that fires when the ... ok
> test_oneConnectionAccepted 
> (test.test_protocol.FlowListenerTests.test_oneConnectionAccepted)
> When a connection comes in to a listening L{flowFountFromEndpoint}, the ... ok
> test_readConnectionLost 
> (test.test_protocol.FlowListenerTests.test_readConnectionLost)
> The protocol created by L{flowFountFromEndpoint} provides half-close ... ok
> test_stopping (test.test_protocol.FlowListenerTests.test_stopping)
> The L{IFount} returned by L{flowFountFromEndpoint} will stop listening ... ok
> test_writeConnectionLost 
> (test.test_protocol.FlowListenerTests.test_writeConnectionLost)
> The protocol created by L{flowFountFromEndpoint} provides half-close ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_eq (test.test_routing.RoutedTests.test_eq)
> C{==} on L{Routed} is L{True} for equivalent ones, L{False} otherwise. ... ok
> test_ne (test.test_routing.RoutedTests.test_ne)
> C{==} on L{Routed} is L{False} for equivalent ones, L{True} otherwise. ... ok
> test_providedBy (test.test_routing.RoutedTests.test_providedBy)
> L{Routed.providedBy} ensures that the given object is a L{to} and that ... ok
> test_providedByNone (test.test_routing.RoutedTests.test_providedByNone)
> L{Routed.providedBy} ensures that the given object is L{to} but makes ... ok
> test_defaultTypeChecking 
> (test.test_routing.RouterTests.test_defaultTypeChecking)
> L{Router}'s drain accepts only L{Routed} objects; if no other type is ... ok
> test_routeRepr (test.test_routing.RouterTests.test_routeRepr)
> It's useful to C{repr} a route for debugging purposes; if we give it a ... ok
> test_specifiedTypeChecking 
> (test.test_routing.RouterTests.test_specifiedTypeChecking)
> The C{outputType} argument to L{Router}'s constructor specifies the ... ERROR
> test_twoRoutes (test.test_routing.RouterTests.test_twoRoutes)
> The L{IFount} feeding into a L{Router} may yield L{to} each route ... ok
> test_startedRaises (test.test_tube.ErrorBehaviorTests.test_startedRaises)
> If L{ITube.started} raises an exception, the exception will be logged, ... 
> Exception raised when delivering from <bound method 
> ErrorBehaviorTests.test_startedRaises.<locals>.UnstartableTube.started of 
> <test.test_tube.ErrorBehaviorTests.test_startedRaises.<locals>.UnstartableTube
>  object at 0x7f67e4189e80>>
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/test/test_tube.py", line 
> 898, in test_startedRaises
>     ff.flowTo(siphonDrain)
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/util.py", 
> line 158, in flowTo
>     return beginFlowingTo(self, drain)
>   File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/kit.py", 
> line 113, in beginFlowingTo
>     return drain.flowingFrom(fount)
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/_siphon.py", line 
> 293, in flowingFrom
>     self._siphon._deliverFrom(self._tube.started)
> --- <exception caught here> ---
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/_siphon.py", line 
> 405, in _deliverFrom
>     iterableOrNot = deliverySource()
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/test/test_tube.py", line 
> 893, in started
>     raise ZeroDivisionError
> builtins.ZeroDivisionError: 
> 
> ok
> test_startedRaisesNoDrain 
> (test.test_tube.ErrorBehaviorTests.test_startedRaisesNoDrain)
> If L{ITube.started} raises an exception, the exception will be logged, ... 
> Exception raised when delivering from <bound method 
> ErrorBehaviorTests.test_startedRaisesNoDrain.<locals>.UnstartableTube.started 
> of 
> <test.test_tube.ErrorBehaviorTests.test_startedRaisesNoDrain.<locals>.UnstartableTube
>  object at 0x7f67e4183b00>>
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/test/test_tube.py", line 
> 918, in test_startedRaisesNoDrain
>     ff.flowTo(siphonDrain)
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/util.py", 
> line 158, in flowTo
>     return beginFlowingTo(self, drain)
>   File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/kit.py", 
> line 113, in beginFlowingTo
>     return drain.flowingFrom(fount)
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/_siphon.py", line 
> 293, in flowingFrom
>     self._siphon._deliverFrom(self._tube.started)
> --- <exception caught here> ---
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/_siphon.py", line 
> 405, in _deliverFrom
>     iterableOrNot = deliverySource()
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/test/test_tube.py", line 
> 914, in started
>     raise ZeroDivisionError
> builtins.ZeroDivisionError: 
> 
> ok
> test_divertWhilePaused (test.test_tube.SeriesTests.test_divertWhilePaused)
> If an L{IDivertable} L{tube} is diverted while it is paused, ... ok
> test_diverterInYourDiverterSoYouCanDivertWhileYouDivert 
> (test.test_tube.SeriesTests.test_diverterInYourDiverterSoYouCanDivertWhileYouDivert)
> When L{IDivertable.reassemble} returns multiple values, the argument to ... ok
> test_diverterRepr (test.test_tube.SeriesTests.test_diverterRepr)
> repr for L{Diverter} includes a reference to its tube. ... ok
> test_drainFlowingFromNoneAlsoUnpauses 
> (test.test_tube.SeriesTests.test_drainFlowingFromNoneAlsoUnpauses)
> L{_SiphonDrain.flowingFrom} will resume its old fount when flowed to ... ok
> test_drainPausesFlowWhenPreviouslyPaused 
> (test.test_tube.SeriesTests.test_drainPausesFlowWhenPreviouslyPaused)
> L{_SiphonDrain.flowingFrom} will pause its fount if its L{_SiphonFount} ... ok
> test_drainRemainsPausedAcrossDetachedState 
> (test.test_tube.SeriesTests.test_drainRemainsPausedAcrossDetachedState)
> L{_SiphonDrain.flowingFrom} will pause its fount if its L{_SiphonFount} ... ok
> test_flowFromTypeCheckFails 
> (test.test_tube.SeriesTests.test_flowFromTypeCheckFails)
> L{_Siphon.flowingFrom} checks the type of its input.  If it doesn't ... ok
> test_flowFromTypeCheckSucceeds 
> (test.test_tube.SeriesTests.test_flowFromTypeCheckSucceeds)
> L{_Siphon.flowingFrom} checks the type of its input.  If it doesn't ... ok
> test_flowToNoneInitialNoOp 
> (test.test_tube.SeriesTests.test_flowToNoneInitialNoOp)
> L{_SiphonFount.flowTo}C{(None)} is a no-op when called before ... ok
> test_flowToWillNotResumeFlowPausedInFlowingFrom 
> (test.test_tube.SeriesTests.test_flowToWillNotResumeFlowPausedInFlowingFrom)
> L{_SiphonFount.flowTo} will not call L{_SiphonFount.resumeFlow} when ... ok
> test_flowingFromFirst (test.test_tube.SeriesTests.test_flowingFromFirst)
> If L{_Siphon.flowingFrom} is called before L{_Siphon.flowTo}, the ... ok
> test_initiallyEnthusiasticFountBecomesDisillusioned 
> (test.test_tube.SeriesTests.test_initiallyEnthusiasticFountBecomesDisillusioned)
> If an L{IFount} provider synchronously calls C{receive} on a ... ok
> test_noDrainThenLoseFount 
> (test.test_tube.SeriesTests.test_noDrainThenLoseFount)
> If a fount is flowed to a tube which does not yet have a drain, then ... ok
> test_receiveCallsTubeReceived 
> (test.test_tube.SeriesTests.test_receiveCallsTubeReceived)
> L{_SiphonDrain.receive} will send its input to L{ITube.received} on its ... ok
> test_receiveIterableDeliversDownstream 
> (test.test_tube.SeriesTests.test_receiveIterableDeliversDownstream)
> When L{Tube.received} yields a value, L{_Siphon} will call L{receive} ... ok
> test_reentrantFlowTo (test.test_tube.SeriesTests.test_reentrantFlowTo)
> An L{IDrain} may call its argument's L{_SiphonFount.flowTo} method in ... ok
> test_seriesEndsInTerminalDrain 
> (test.test_tube.SeriesTests.test_seriesEndsInTerminalDrain)
> If L{series} is called with an L{IDrain} which returns L{None} from ... ok
> test_seriesStartsWithSeries 
> (test.test_tube.SeriesTests.test_seriesStartsWithSeries)
> If L{series} is called with the result of L{series} as its first ... ok
> test_siphonDrainRepr (test.test_tube.SeriesTests.test_siphonDrainRepr)
> repr for L{_SiphonDrain} includes a reference to its tube. ... ok
> test_siphonFlowingFromNoneReturnsSelfFount 
> (test.test_tube.SeriesTests.test_siphonFlowingFromNoneReturnsSelfFount)
> L{_SiphonDrain.flowingFrom} initially returns its L{_Siphon}'s ... ok
> test_siphonFlowingFromReturnsNextFount 
> (test.test_tube.SeriesTests.test_siphonFlowingFromReturnsNextFount)
> Once L{_SiphonFount.flowTo} has been called, ... ok
> test_siphonFlowingFromReturnsSelfFount 
> (test.test_tube.SeriesTests.test_siphonFlowingFromReturnsSelfFount)
> L{_SiphonDrain.flowingFrom} initially returns its L{_Siphon}'s ... ok
> test_siphonFlowingFromSomethingThenNothing 
> (test.test_tube.SeriesTests.test_siphonFlowingFromSomethingThenNothing)
> L{_SiphonDrain.flowingFrom} sets L{_SiphonDrain.fount}, whether it is ... ok
> test_siphonFountRepr (test.test_tube.SeriesTests.test_siphonFountRepr)
> repr for L{_SiphonFount} includes a reference to its tube. ... ok
> test_siphonReceiveCallsTubeReceived 
> (test.test_tube.SeriesTests.test_siphonReceiveCallsTubeReceived)
> L{_SiphonDrain.receive} will call C{tube.received} and synthesize a ... ok
> test_siphonRepr (test.test_tube.SeriesTests.test_siphonRepr)
> repr for L{_Siphon} includes a reference to its tube. ... ok
> test_startedFlowingToAnother 
> (test.test_tube.SeriesTests.test_startedFlowingToAnother)
> The greeting is relayed to the ultimate drain when a tube in the middle ... ok
> test_stopFlow (test.test_tube.SeriesTests.test_stopFlow)
> L{_SiphonFount.stopFlow} stops the flow of its L{_Siphon}'s upstream ... ok
> test_stopFlowBeforeFlowBegins 
> (test.test_tube.SeriesTests.test_stopFlowBeforeFlowBegins)
> L{_SiphonFount.stopFlow} will stop the flow of its L{_Siphon}'s ... ok
> test_stopFlowInterruptsStarted 
> (test.test_tube.SeriesTests.test_stopFlowInterruptsStarted)
> As per L{IFount.stopFlow}, a compliant L{fount <IFount>} never calls ... ok
> test_stopFlowStopsFlowImmediately 
> (test.test_tube.SeriesTests.test_stopFlowStopsFlowImmediately)
> Similar to L{test_stopFlowInterruptsStarted}, if the upstream fount ... ok
> test_stopFlowWhileStartingFlow 
> (test.test_tube.SeriesTests.test_stopFlowWhileStartingFlow)
> If a fount flowing to a tube calls C{flowStopped} in C{flowTo}, the ... ok
> test_tubeDiverting (test.test_tube.SeriesTests.test_tubeDiverting)
> The L{_Siphon} of a L{Tube} sends on data to a newly specified ... ok
> test_tubeDivertingControlsWhereOutputGoes 
> (test.test_tube.SeriesTests.test_tubeDivertingControlsWhereOutputGoes)
> If a siphon A with a tube Ap is flowing to a siphon B with a divertable ... ok
> test_tubeDivertingReassembly 
> (test.test_tube.SeriesTests.test_tubeDivertingReassembly)
> The L{_Siphon} of a L{Tube} sends on reassembled data - the return ... ok
> test_tubeDiverting_LotsOfStuffAtOnce 
> (test.test_tube.SeriesTests.test_tubeDiverting_LotsOfStuffAtOnce)
> If a tube returns a sequence of multiple things, great. ... ok
> test_tubeDiverting_ReEntrantResumeReceive 
> (test.test_tube.SeriesTests.test_tubeDiverting_ReEntrantResumeReceive)
> Diverting a tube that is receiving data from a fount which ... ok
> test_tubePausesItself (test.test_tube.SeriesTests.test_tubePausesItself)
> When one of the methods on L{Tube} pauses its own C{fount} or C{drain}, ... ok
> test_tubeReStarted (test.test_tube.SeriesTests.test_tubeReStarted)
> It's perfectly valid to take a L{_Siphon} and call C{flowingFrom} with ... ok
> test_tubeStarted (test.test_tube.SeriesTests.test_tubeStarted)
> The L{_Siphon} starts its L{Tube} upon C{flowingFrom}. ... ok
> test_tubeStopped (test.test_tube.SeriesTests.test_tubeStopped)
> The L{_Siphon} stops its L{Tube} and propagates C{flowStopped} ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_noOps (test.test_tube.TubeTests.test_noOps)
> All of L{Tube}'s implementations of L{ITube} are no-ops. ... ok
> test_provider (test.test_tube.TubeTests.test_provider)
> L{Tube} provides L{ITube}. ... ok
> test_fountToDeferred 
> (test.test_undefer.DeferredIntegrationTests.test_fountToDeferred)
> L{fountToDeferred} returns a L{Deferred} that fires with an iterable of ... ok
> test_tubeStoppedDeferredly 
> (test.test_undefer.DeferredIntegrationTests.test_tubeStoppedDeferredly)
> The L{_Siphon} stops its L{Tube} and propagates C{flowStopped} ... ok
> test_tubeYieldedDeferredFiresWhileFlowIsPaused 
> (test.test_undefer.DeferredIntegrationTests.test_tubeYieldedDeferredFiresWhileFlowIsPaused)
> When a L{Tube} yields an L{Deferred} and that L{Deferred} fires when ... ok
> test_tubeYieldsFiredDeferred 
> (test.test_undefer.DeferredIntegrationTests.test_tubeYieldsFiredDeferred)
> When a tube yields a fired L{Deferred} its result is synchronously ... ok
> test_tubeYieldsMultipleDeferreds 
> (test.test_undefer.DeferredIntegrationTests.test_tubeYieldsMultipleDeferreds)
> When a tube yields multiple deferreds their results should be delivered ... ok
> test_tubeYieldsUnfiredDeferred 
> (test.test_undefer.DeferredIntegrationTests.test_tubeYieldsUnfiredDeferred)
> When a tube yields an unfired L{Deferred} its result is asynchronously ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_joining (tubes.test.test_chatter.ChatTests.test_joining)
> Test that we receive a response from joining. ... ok
> test_dontUnpauseWhenNoDrain 
> (tubes.test.test_fan.FanInTests.test_dontUnpauseWhenNoDrain)
> L{In.fount}C{.flowTo(None)} won't unpause L{In}'s upstream founts. ... ok
> test_flowStopped (tubes.test.test_fan.FanInTests.test_flowStopped)
> When the flow stops to one of the drains returned by L{In.newDrain}, it ... ok
> test_oneDrainReceives (tubes.test.test_fan.FanInTests.test_oneDrainReceives)
> When one drain created by L{In.newDrain} recives a value, the drain ... ok
> test_pauseNewFountWhenPaused 
> (tubes.test.test_fan.FanInTests.test_pauseNewFountWhenPaused)
> When a drain created by L{In.newDrain} receives a new fount, if ... ok
> test_pauseWhenNoDrain (tubes.test.test_fan.FanInTests.test_pauseWhenNoDrain)
> When a drain created by L{In.newDrain} is hooked up to a new fount, but ... ok
> test_pauseWhenSwitchedToNoDrain 
> (tubes.test.test_fan.FanInTests.test_pauseWhenSwitchedToNoDrain)
> L{In.fount}C{.flowTo(None)} after L{In.fount} already has a drain will ... ok
> test_stopFlow (tubes.test.test_fan.FanInTests.test_stopFlow)
> When the drain of L{In.fount} stops its upstream flow, that stops the ... ok
> test_fanOut (tubes.test.test_fan.FanOutTests.test_fanOut)
> When an L{Out} is constructed and flowed to two drains, both drains ... ok
> test_fanReceivesBeforeFountsHaveDrains 
> (tubes.test.test_fan.FanOutTests.test_fanReceivesBeforeFountsHaveDrains)
> L{Out.drain}'s C{receive} method only relays outputs to founts which ... ok
> test_flowStopped (tubes.test.test_fan.FanOutTests.test_flowStopped)
> When the flow stops to L{out.drain}, it stops to all downstream drains ... ok
> test_oneFountPausesInReceive 
> (tubes.test.test_fan.FanOutTests.test_oneFountPausesInReceive)
> When an L{Out} has two founts created by C{newFount} fA and fB, and ... ok
> test_oneFountPausesOthersInReceive 
> (tubes.test.test_fan.FanOutTests.test_oneFountPausesOthersInReceive)
> When an L{Out} has two founts created by C{newFount} fA and fB, and ... ok
> test_oneFountStops (tubes.test.test_fan.FanOutTests.test_oneFountStops)
> When one fount created by L{Out.newFount} is stopped, only the drain ... ok
> test_oneFountStopsInReceive 
> (tubes.test.test_fan.FanOutTests.test_oneFountStopsInReceive)
> When one fount created by L{Out.newFount} is stopped in its drain's ... ok
> test_outFountFlowTo (tubes.test.test_fan.FanOutTests.test_outFountFlowTo)
> L{Out.newFount}'s C{flowTo} calls C{flowingFrom} on its drain and ... ok
> test_pausingOneOutFountPausesUpstreamFount 
> (tubes.test.test_fan.FanOutTests.test_pausingOneOutFountPausesUpstreamFount)
> When one fount created by L{Out.newFount} is paused, the fount flowing ... ok
> test_switchFlowToNone (tubes.test.test_fan.FanOutTests.test_switchFlowToNone)
> When L{out.drain} removes its upstream fount, it unpauses it. ... ok
> test_verifyCompliance (tubes.test.test_fan.FanOutTests.test_verifyCompliance)
> L{Out.newFount} and L{Out.drain} adhere to their respected declared ... ok
> test_thru (tubes.test.test_fan.FanThruTests.test_thru)
> Each input provided to L{Thru} will be sent to each of its drains, and ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_linesToBytes (tubes.test.test_framing.LineTests.test_linesToBytes)
> Writing out lines delimits them, with the delimiter. ... ERROR
> test_rawMode (tubes.test.test_framing.LineTests.test_rawMode)
> You should be able to have some lines, and then some bytes, and then ... ERROR
> test_stringToLines (tubes.test.test_framing.LineTests.test_stringToLines)
> A line is something delimited by a LF or CRLF. ... ERROR
> test_switchingWithMoreDataToDeliver 
> (tubes.test.test_framing.LineTests.test_switchingWithMoreDataToDeliver)
> Switching drains should immediately stop delivering data. ... ERROR
> test_bytesToNetstrings 
> (tubes.test.test_framing.NetstringTests.test_bytesToNetstrings)
> L{bytesToNetstrings} works on subsequent inputs as well. ... ERROR
> test_netstringToString 
> (tubes.test.test_framing.NetstringTests.test_netstringToString)
> Length prefix is stripped off. ... ERROR
> test_stringToNetstring 
> (tubes.test.test_framing.NetstringTests.test_stringToNetstring)
> A byte-string is given a length prefix. ... ERROR
> test_prefixIn (tubes.test.test_framing.PackedPrefixTests.test_prefixIn)
> Parse some prefixed data. ... ERROR
> test_prefixOut (tubes.test.test_framing.PackedPrefixTests.test_prefixOut)
> Emit some prefixes. ... ERROR
> test_pauseOnce (tubes.test.test_kit.PauserTests.test_pauseOnce)
> One call to L{_Pauser.pause} will call the actuallyPause callable. ... ok
> test_pauseThenUnpause (tubes.test.test_kit.PauserTests.test_pauseThenUnpause)
> A call to L{_Pauser.pause} followed by a call to the result's ... ok
> test_reentrantPause (tubes.test.test_kit.PauserTests.test_reentrantPause)
> A L{Pauser} that pauses re-entrantly will only result in one call to ... ok
> test_reentrantResume (tubes.test.test_kit.PauserTests.test_reentrantResume)
> A L{Pauser} that resumes re-entrantly will raise L{AlreadyUnpaused}. ... ok
> test_repeatedlyPause (tubes.test.test_kit.PauserTests.test_repeatedlyPause)
> Multiple calls to L{_Pauser.pause} where not all of the pausers are ... ok
> test_secondUnpauseFails 
> (tubes.test.test_kit.PauserTests.test_secondUnpauseFails)
> The second of two consectuive calls to L{IPause.unpause} results in an ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_listenerCallsFlowConnector 
> (tubes.test.test_listening.ListeningTests.test_listenerCallsFlowConnector)
> A L{Listener} is a drain which calls the function given to it to ... ok
> test_listenerLimitsConcurrentConnections 
> (tubes.test.test_listening.ListeningTests.test_listenerLimitsConcurrentConnections)
> L{Listener} will pause its fount when too many connections are ... ok
> test_flowTo (tubes.test.test_memory.IteratorFountTests.test_flowTo)
> L{iteratorFount.flowTo} sets its drain and calls C{flowingFrom} on its ... ok
> test_flowToDeliversValues 
> (tubes.test.test_memory.IteratorFountTests.test_flowToDeliversValues)
> L{iteratorFount.flowTo} will deliver all of its values to the given ... ok
> test_flowUnpausedAfterPausedFlowIsStopped 
> (tubes.test.test_memory.IteratorFountTests.test_flowUnpausedAfterPausedFlowIsStopped)
> When L{iteratorFount} is stopped after being paused, and subsequently ... ok
> test_pauseFlow (tubes.test.test_memory.IteratorFountTests.test_pauseFlow)
> L{iteratorFount.pauseFlow} will pause the delivery of items. ... ok
> test_provides (tubes.test.test_memory.IteratorFountTests.test_provides)
> An L{iteratorFount} provides L{IFount}. ... ok
> test_stopFlow (tubes.test.test_memory.IteratorFountTests.test_stopFlow)
> L{iteratorFount.stopFlow} stops the flow, propagating a C{flowStopped} ... ok
> test_stopFlowCalledAfterFlowStopped 
> (tubes.test.test_memory.IteratorFountTests.test_stopFlowCalledAfterFlowStopped)
> L{iteratorFount} will only call its C{drain}'s L{flowStopped} once when ... ok
> test_stopIterationStopsIteration 
> (tubes.test.test_memory.IteratorFountTests.test_stopIterationStopsIteration)
> When the iterator passed to L{iteratorFount} is exhausted ... ok
> test_stopPausedFlow 
> (tubes.test.test_memory.IteratorFountTests.test_stopPausedFlow)
> When L{iteratorFount} is stopped after being paused, the drain will ... ok
> test_unpauseFlow (tubes.test.test_memory.IteratorFountTests.test_unpauseFlow)
> When all pauses returned by L{iteratorFount.pauseFlow} have been ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_connectionLostSendsFlowStopped 
> (tubes.test.test_protocol.FlowConnectorTests.test_connectionLostSendsFlowStopped)
> When C{connectionLost} is called on a L{_ProtocolPlumbing} and it has ... ok
> test_connectionLostSendsStopFlow 
> (tubes.test.test_protocol.FlowConnectorTests.test_connectionLostSendsStopFlow)
> L{_ProtocolPlumbing.connectionLost} will notify its C{_drain}'s ... ok
> test_dataReceivedBeforeFlowing 
> (tubes.test.test_protocol.FlowConnectorTests.test_dataReceivedBeforeFlowing)
> If L{_ProtocolPlumbing.dataReceived} is called before its ... ok
> test_dataReceivedBeforeFlowingThenFlowTo 
> (tubes.test.test_protocol.FlowConnectorTests.test_dataReceivedBeforeFlowingThenFlowTo)
> Repeated calls to L{flowTo} don't replay the buffer from ... ok
> test_dataReceivedWhenFlowingToNone 
> (tubes.test.test_protocol.FlowConnectorTests.test_dataReceivedWhenFlowingToNone)
> Initially flowing to L{None} is the same as flowTo never having been ... ok
> test_drainReceivingWritesToTransport 
> (tubes.test.test_protocol.FlowConnectorTests.test_drainReceivingWritesToTransport)
> Calling L{receive} on a L{_TransportDrain} will send the data to the ... ok
> test_flowStoppedStopsConnection 
> (tubes.test.test_protocol.FlowConnectorTests.test_flowStoppedStopsConnection)
> L{_TransportDrain.flowStopped} will close the underlying connection by ... ok
> test_flowToDeliversData 
> (tubes.test.test_protocol.FlowConnectorTests.test_flowToDeliversData)
> L{_TransportFount.flowTo} will cause subsequent calls to ... ok
> test_flowToSetsDrain 
> (tubes.test.test_protocol.FlowConnectorTests.test_flowToSetsDrain)
> L{_TransportFount.flowTo} will set the C{drain} attribute of the ... ok
> test_flowingFrom 
> (tubes.test.test_protocol.FlowConnectorTests.test_flowingFrom)
> L{_TransportFount.flowTo} returns the result of its argument's ... ok
> test_flowingFromAttribute 
> (tubes.test.test_protocol.FlowConnectorTests.test_flowingFromAttribute)
> L{_TransportDrain.flowingFrom} will establish the appropriate L{IFount} ... ok
> test_flowingFromTwice 
> (tubes.test.test_protocol.FlowConnectorTests.test_flowingFromTwice)
> L{_TransportDrain.flowingFrom} switches the producer registered with ... ok
> test_flowingToNoneAfterFlowingToSomething 
> (tubes.test.test_protocol.FlowConnectorTests.test_flowingToNoneAfterFlowingToSomething)
> Flowing to L{None} should disconnect from any drain, no longer ... ok
> test_pauseUnpauseFromOtherDrain 
> (tubes.test.test_protocol.FlowConnectorTests.test_pauseUnpauseFromOtherDrain)
> When a L{_TransportFount} produces too much data for a L{drain ... ok
> test_pauseUnpauseFromTransport 
> (tubes.test.test_protocol.FlowConnectorTests.test_pauseUnpauseFromTransport)
> When an L{IFount} produces too much data for a L{_TransportDrain} to ... ok
> test_stopFlowStopsConnection 
> (tubes.test.test_protocol.FlowConnectorTests.test_stopFlowStopsConnection)
> L{_TransportFount.stopFlow} will close the underlying connection by ... ok
> test_stopProducing 
> (tubes.test.test_protocol.FlowConnectorTests.test_stopProducing)
> When C{stopProducing} is called on the L{push producer ... ok
> test_acceptAfterDeferredButBeforeFlowTo 
> (tubes.test.test_protocol.FlowListenerTests.test_acceptAfterDeferredButBeforeFlowTo)
> If the L{Deferred} returned by L{flowFountFromEndpoint} fires, but the ... ok
> test_acceptBeforeActuallyListening 
> (tubes.test.test_protocol.FlowListenerTests.test_acceptBeforeActuallyListening)
> Sometimes a connection is established reentrantly by C{listen}, without ... ok
> test_backpressure 
> (tubes.test.test_protocol.FlowListenerTests.test_backpressure)
> When the L{IFount} returned by L{flowFountFromEndpoint} is paused, it ... ok
> test_fromEndpoint 
> (tubes.test.test_protocol.FlowListenerTests.test_fromEndpoint)
> L{flowFountFromEndpoint} returns a L{Deferred} that fires when the ... ok
> test_oneConnectionAccepted 
> (tubes.test.test_protocol.FlowListenerTests.test_oneConnectionAccepted)
> When a connection comes in to a listening L{flowFountFromEndpoint}, the ... ok
> test_readConnectionLost 
> (tubes.test.test_protocol.FlowListenerTests.test_readConnectionLost)
> The protocol created by L{flowFountFromEndpoint} provides half-close ... ok
> test_stopping (tubes.test.test_protocol.FlowListenerTests.test_stopping)
> The L{IFount} returned by L{flowFountFromEndpoint} will stop listening ... ok
> test_writeConnectionLost 
> (tubes.test.test_protocol.FlowListenerTests.test_writeConnectionLost)
> The protocol created by L{flowFountFromEndpoint} provides half-close ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_eq (tubes.test.test_routing.RoutedTests.test_eq)
> C{==} on L{Routed} is L{True} for equivalent ones, L{False} otherwise. ... ok
> test_ne (tubes.test.test_routing.RoutedTests.test_ne)
> C{==} on L{Routed} is L{False} for equivalent ones, L{True} otherwise. ... ok
> test_providedBy (tubes.test.test_routing.RoutedTests.test_providedBy)
> L{Routed.providedBy} ensures that the given object is a L{to} and that ... ok
> test_providedByNone (tubes.test.test_routing.RoutedTests.test_providedByNone)
> L{Routed.providedBy} ensures that the given object is L{to} but makes ... ok
> test_defaultTypeChecking 
> (tubes.test.test_routing.RouterTests.test_defaultTypeChecking)
> L{Router}'s drain accepts only L{Routed} objects; if no other type is ... ok
> test_routeRepr (tubes.test.test_routing.RouterTests.test_routeRepr)
> It's useful to C{repr} a route for debugging purposes; if we give it a ... ok
> test_specifiedTypeChecking 
> (tubes.test.test_routing.RouterTests.test_specifiedTypeChecking)
> The C{outputType} argument to L{Router}'s constructor specifies the ... ERROR
> test_twoRoutes (tubes.test.test_routing.RouterTests.test_twoRoutes)
> The L{IFount} feeding into a L{Router} may yield L{to} each route ... ok
> test_startedRaises 
> (tubes.test.test_tube.ErrorBehaviorTests.test_startedRaises)
> If L{ITube.started} raises an exception, the exception will be logged, ... 
> Exception raised when delivering from <bound method 
> ErrorBehaviorTests.test_startedRaises.<locals>.UnstartableTube.started of 
> <tubes.test.test_tube.ErrorBehaviorTests.test_startedRaises.<locals>.UnstartableTube
>  object at 0x7f67e40b73b0>>
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/test_tube.py",
>  line 898, in test_startedRaises
>     ff.flowTo(siphonDrain)
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/util.py", 
> line 158, in flowTo
>     return beginFlowingTo(self, drain)
>   File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/kit.py", 
> line 113, in beginFlowingTo
>     return drain.flowingFrom(fount)
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/_siphon.py", line 
> 293, in flowingFrom
>     self._siphon._deliverFrom(self._tube.started)
> --- <exception caught here> ---
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/_siphon.py", line 
> 405, in _deliverFrom
>     iterableOrNot = deliverySource()
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/test_tube.py",
>  line 893, in started
>     raise ZeroDivisionError
> builtins.ZeroDivisionError: 
> 
> ok
> test_startedRaisesNoDrain 
> (tubes.test.test_tube.ErrorBehaviorTests.test_startedRaisesNoDrain)
> If L{ITube.started} raises an exception, the exception will be logged, ... 
> Exception raised when delivering from <bound method 
> ErrorBehaviorTests.test_startedRaisesNoDrain.<locals>.UnstartableTube.started 
> of 
> <tubes.test.test_tube.ErrorBehaviorTests.test_startedRaisesNoDrain.<locals>.UnstartableTube
>  object at 0x7f67e40b6390>>
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/test_tube.py",
>  line 918, in test_startedRaisesNoDrain
>     ff.flowTo(siphonDrain)
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/util.py", 
> line 158, in flowTo
>     return beginFlowingTo(self, drain)
>   File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/kit.py", 
> line 113, in beginFlowingTo
>     return drain.flowingFrom(fount)
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/_siphon.py", line 
> 293, in flowingFrom
>     self._siphon._deliverFrom(self._tube.started)
> --- <exception caught here> ---
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/_siphon.py", line 
> 405, in _deliverFrom
>     iterableOrNot = deliverySource()
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/test_tube.py",
>  line 914, in started
>     raise ZeroDivisionError
> builtins.ZeroDivisionError: 
> 
> ok
> test_divertWhilePaused 
> (tubes.test.test_tube.SeriesTests.test_divertWhilePaused)
> If an L{IDivertable} L{tube} is diverted while it is paused, ... ok
> test_diverterInYourDiverterSoYouCanDivertWhileYouDivert 
> (tubes.test.test_tube.SeriesTests.test_diverterInYourDiverterSoYouCanDivertWhileYouDivert)
> When L{IDivertable.reassemble} returns multiple values, the argument to ... ok
> test_diverterRepr (tubes.test.test_tube.SeriesTests.test_diverterRepr)
> repr for L{Diverter} includes a reference to its tube. ... ok
> test_drainFlowingFromNoneAlsoUnpauses 
> (tubes.test.test_tube.SeriesTests.test_drainFlowingFromNoneAlsoUnpauses)
> L{_SiphonDrain.flowingFrom} will resume its old fount when flowed to ... ok
> test_drainPausesFlowWhenPreviouslyPaused 
> (tubes.test.test_tube.SeriesTests.test_drainPausesFlowWhenPreviouslyPaused)
> L{_SiphonDrain.flowingFrom} will pause its fount if its L{_SiphonFount} ... ok
> test_drainRemainsPausedAcrossDetachedState 
> (tubes.test.test_tube.SeriesTests.test_drainRemainsPausedAcrossDetachedState)
> L{_SiphonDrain.flowingFrom} will pause its fount if its L{_SiphonFount} ... ok
> test_flowFromTypeCheckFails 
> (tubes.test.test_tube.SeriesTests.test_flowFromTypeCheckFails)
> L{_Siphon.flowingFrom} checks the type of its input.  If it doesn't ... ok
> test_flowFromTypeCheckSucceeds 
> (tubes.test.test_tube.SeriesTests.test_flowFromTypeCheckSucceeds)
> L{_Siphon.flowingFrom} checks the type of its input.  If it doesn't ... ok
> test_flowToNoneInitialNoOp 
> (tubes.test.test_tube.SeriesTests.test_flowToNoneInitialNoOp)
> L{_SiphonFount.flowTo}C{(None)} is a no-op when called before ... ok
> test_flowToWillNotResumeFlowPausedInFlowingFrom 
> (tubes.test.test_tube.SeriesTests.test_flowToWillNotResumeFlowPausedInFlowingFrom)
> L{_SiphonFount.flowTo} will not call L{_SiphonFount.resumeFlow} when ... ok
> test_flowingFromFirst (tubes.test.test_tube.SeriesTests.test_flowingFromFirst)
> If L{_Siphon.flowingFrom} is called before L{_Siphon.flowTo}, the ... ok
> test_initiallyEnthusiasticFountBecomesDisillusioned 
> (tubes.test.test_tube.SeriesTests.test_initiallyEnthusiasticFountBecomesDisillusioned)
> If an L{IFount} provider synchronously calls C{receive} on a ... ok
> test_noDrainThenLoseFount 
> (tubes.test.test_tube.SeriesTests.test_noDrainThenLoseFount)
> If a fount is flowed to a tube which does not yet have a drain, then ... ok
> test_receiveCallsTubeReceived 
> (tubes.test.test_tube.SeriesTests.test_receiveCallsTubeReceived)
> L{_SiphonDrain.receive} will send its input to L{ITube.received} on its ... ok
> test_receiveIterableDeliversDownstream 
> (tubes.test.test_tube.SeriesTests.test_receiveIterableDeliversDownstream)
> When L{Tube.received} yields a value, L{_Siphon} will call L{receive} ... ok
> test_reentrantFlowTo (tubes.test.test_tube.SeriesTests.test_reentrantFlowTo)
> An L{IDrain} may call its argument's L{_SiphonFount.flowTo} method in ... ok
> test_seriesEndsInTerminalDrain 
> (tubes.test.test_tube.SeriesTests.test_seriesEndsInTerminalDrain)
> If L{series} is called with an L{IDrain} which returns L{None} from ... ok
> test_seriesStartsWithSeries 
> (tubes.test.test_tube.SeriesTests.test_seriesStartsWithSeries)
> If L{series} is called with the result of L{series} as its first ... ok
> test_siphonDrainRepr (tubes.test.test_tube.SeriesTests.test_siphonDrainRepr)
> repr for L{_SiphonDrain} includes a reference to its tube. ... ok
> test_siphonFlowingFromNoneReturnsSelfFount 
> (tubes.test.test_tube.SeriesTests.test_siphonFlowingFromNoneReturnsSelfFount)
> L{_SiphonDrain.flowingFrom} initially returns its L{_Siphon}'s ... ok
> test_siphonFlowingFromReturnsNextFount 
> (tubes.test.test_tube.SeriesTests.test_siphonFlowingFromReturnsNextFount)
> Once L{_SiphonFount.flowTo} has been called, ... ok
> test_siphonFlowingFromReturnsSelfFount 
> (tubes.test.test_tube.SeriesTests.test_siphonFlowingFromReturnsSelfFount)
> L{_SiphonDrain.flowingFrom} initially returns its L{_Siphon}'s ... ok
> test_siphonFlowingFromSomethingThenNothing 
> (tubes.test.test_tube.SeriesTests.test_siphonFlowingFromSomethingThenNothing)
> L{_SiphonDrain.flowingFrom} sets L{_SiphonDrain.fount}, whether it is ... ok
> test_siphonFountRepr (tubes.test.test_tube.SeriesTests.test_siphonFountRepr)
> repr for L{_SiphonFount} includes a reference to its tube. ... ok
> test_siphonReceiveCallsTubeReceived 
> (tubes.test.test_tube.SeriesTests.test_siphonReceiveCallsTubeReceived)
> L{_SiphonDrain.receive} will call C{tube.received} and synthesize a ... ok
> test_siphonRepr (tubes.test.test_tube.SeriesTests.test_siphonRepr)
> repr for L{_Siphon} includes a reference to its tube. ... ok
> test_startedFlowingToAnother 
> (tubes.test.test_tube.SeriesTests.test_startedFlowingToAnother)
> The greeting is relayed to the ultimate drain when a tube in the middle ... ok
> test_stopFlow (tubes.test.test_tube.SeriesTests.test_stopFlow)
> L{_SiphonFount.stopFlow} stops the flow of its L{_Siphon}'s upstream ... ok
> test_stopFlowBeforeFlowBegins 
> (tubes.test.test_tube.SeriesTests.test_stopFlowBeforeFlowBegins)
> L{_SiphonFount.stopFlow} will stop the flow of its L{_Siphon}'s ... ok
> test_stopFlowInterruptsStarted 
> (tubes.test.test_tube.SeriesTests.test_stopFlowInterruptsStarted)
> As per L{IFount.stopFlow}, a compliant L{fount <IFount>} never calls ... ok
> test_stopFlowStopsFlowImmediately 
> (tubes.test.test_tube.SeriesTests.test_stopFlowStopsFlowImmediately)
> Similar to L{test_stopFlowInterruptsStarted}, if the upstream fount ... ok
> test_stopFlowWhileStartingFlow 
> (tubes.test.test_tube.SeriesTests.test_stopFlowWhileStartingFlow)
> If a fount flowing to a tube calls C{flowStopped} in C{flowTo}, the ... ok
> test_tubeDiverting (tubes.test.test_tube.SeriesTests.test_tubeDiverting)
> The L{_Siphon} of a L{Tube} sends on data to a newly specified ... ok
> test_tubeDivertingControlsWhereOutputGoes 
> (tubes.test.test_tube.SeriesTests.test_tubeDivertingControlsWhereOutputGoes)
> If a siphon A with a tube Ap is flowing to a siphon B with a divertable ... ok
> test_tubeDivertingReassembly 
> (tubes.test.test_tube.SeriesTests.test_tubeDivertingReassembly)
> The L{_Siphon} of a L{Tube} sends on reassembled data - the return ... ok
> test_tubeDiverting_LotsOfStuffAtOnce 
> (tubes.test.test_tube.SeriesTests.test_tubeDiverting_LotsOfStuffAtOnce)
> If a tube returns a sequence of multiple things, great. ... ok
> test_tubeDiverting_ReEntrantResumeReceive 
> (tubes.test.test_tube.SeriesTests.test_tubeDiverting_ReEntrantResumeReceive)
> Diverting a tube that is receiving data from a fount which ... ok
> test_tubePausesItself (tubes.test.test_tube.SeriesTests.test_tubePausesItself)
> When one of the methods on L{Tube} pauses its own C{fount} or C{drain}, ... ok
> test_tubeReStarted (tubes.test.test_tube.SeriesTests.test_tubeReStarted)
> It's perfectly valid to take a L{_Siphon} and call C{flowingFrom} with ... ok
> test_tubeStarted (tubes.test.test_tube.SeriesTests.test_tubeStarted)
> The L{_Siphon} starts its L{Tube} upon C{flowingFrom}. ... ok
> test_tubeStopped (tubes.test.test_tube.SeriesTests.test_tubeStopped)
> The L{_Siphon} stops its L{Tube} and propagates C{flowStopped} ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_noOps (tubes.test.test_tube.TubeTests.test_noOps)
> All of L{Tube}'s implementations of L{ITube} are no-ops. ... ok
> test_provider (tubes.test.test_tube.TubeTests.test_provider)
> L{Tube} provides L{ITube}. ... ok
> test_fountToDeferred 
> (tubes.test.test_undefer.DeferredIntegrationTests.test_fountToDeferred)
> L{fountToDeferred} returns a L{Deferred} that fires with an iterable of ... ok
> test_tubeStoppedDeferredly 
> (tubes.test.test_undefer.DeferredIntegrationTests.test_tubeStoppedDeferredly)
> The L{_Siphon} stops its L{Tube} and propagates C{flowStopped} ... ok
> test_tubeYieldedDeferredFiresWhileFlowIsPaused 
> (tubes.test.test_undefer.DeferredIntegrationTests.test_tubeYieldedDeferredFiresWhileFlowIsPaused)
> When a L{Tube} yields an L{Deferred} and that L{Deferred} fires when ... ok
> test_tubeYieldsFiredDeferred 
> (tubes.test.test_undefer.DeferredIntegrationTests.test_tubeYieldsFiredDeferred)
> When a tube yields a fired L{Deferred} its result is synchronously ... ok
> test_tubeYieldsMultipleDeferreds 
> (tubes.test.test_undefer.DeferredIntegrationTests.test_tubeYieldsMultipleDeferreds)
> When a tube yields multiple deferreds their results should be delivered ... ok
> test_tubeYieldsUnfiredDeferred 
> (tubes.test.test_undefer.DeferredIntegrationTests.test_tubeYieldsUnfiredDeferred)
> When a tube yields an unfired L{Deferred} its result is asynchronously ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> 
> ======================================================================
> ERROR: test_linesToBytes (test.test_framing.LineTests.test_linesToBytes)
> Writing out lines delimits them, with the delimiter.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/test/test_framing.py", 
> line 94, in test_linesToBytes
>     self.assertEquals(b"".join(fd.received), b"hello\r\nworld\r\n")
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'LineTests' object has no attribute 'assertEquals'. Did you 
> mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_rawMode (test.test_framing.LineTests.test_rawMode)
> You should be able to have some lines, and then some bytes, and then
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/test/test_framing.py", 
> line 128, in test_rawMode
>     self.assertEquals(b"".join(Switchee.datums), b"abcde\r\nfgh")
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'LineTests' object has no attribute 'assertEquals'. Did you 
> mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_stringToLines (test.test_framing.LineTests.test_stringToLines)
> A line is something delimited by a LF or CRLF.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/test/test_framing.py", 
> line 81, in test_stringToLines
>     splitALine(b"\n")
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/test/test_framing.py", 
> line 80, in splitALine
>     self.assertEquals(fd.received, [b"alpha", b"beta"])
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'LineTests' object has no attribute 'assertEquals'. Did you 
> mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_switchingWithMoreDataToDeliver 
> (test.test_framing.LineTests.test_switchingWithMoreDataToDeliver)
> Switching drains should immediately stop delivering data.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/test/test_framing.py", 
> line 151, in test_switchingWithMoreDataToDeliver
>     self.assertEquals(fd1.received, [b"something"])
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'LineTests' object has no attribute 'assertEquals'. Did you 
> mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_bytesToNetstrings 
> (test.test_framing.NetstringTests.test_bytesToNetstrings)
> L{bytesToNetstrings} works on subsequent inputs as well.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/test/test_framing.py", 
> line 45, in test_bytesToNetstrings
>     self.assertEquals(
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'NetstringTests' object has no attribute 'assertEquals'. Did 
> you mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_netstringToString 
> (test.test_framing.NetstringTests.test_netstringToString)
> Length prefix is stripped off.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/test/test_framing.py", 
> line 62, in test_netstringToString
>     self.assertEquals(fd.received, [b"x", b"yz"])
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'NetstringTests' object has no attribute 'assertEquals'. Did 
> you mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_stringToNetstring 
> (test.test_framing.NetstringTests.test_stringToNetstring)
> A byte-string is given a length prefix.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/test/test_framing.py", 
> line 30, in test_stringToNetstring
>     self.assertEquals(
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'NetstringTests' object has no attribute 'assertEquals'. Did 
> you mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_prefixIn (test.test_framing.PackedPrefixTests.test_prefixIn)
> Parse some prefixed data.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/test/test_framing.py", 
> line 170, in test_prefixIn
>     self.assertEquals(fd.received, [b"12345678"])
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'PackedPrefixTests' object has no attribute 'assertEquals'. 
> Did you mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_prefixOut (test.test_framing.PackedPrefixTests.test_prefixOut)
> Emit some prefixes.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/test/test_framing.py", 
> line 184, in test_prefixOut
>     self.assertEquals(fd.received, [b'\x01a', b'\x02bc', b'\x03def'])
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'PackedPrefixTests' object has no attribute 'assertEquals'. 
> Did you mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_specifiedTypeChecking 
> (test.test_routing.RouterTests.test_specifiedTypeChecking)
> The C{outputType} argument to L{Router}'s constructor specifies the
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/test/test_routing.py", 
> line 92, in test_specifiedTypeChecking
>     self.assertEquals(None, correctFount.flowTo(router.drain))
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'RouterTests' object has no attribute 'assertEquals'. Did you 
> mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_linesToBytes (tubes.test.test_framing.LineTests.test_linesToBytes)
> Writing out lines delimits them, with the delimiter.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/test_framing.py",
>  line 94, in test_linesToBytes
>     self.assertEquals(b"".join(fd.received), b"hello\r\nworld\r\n")
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'LineTests' object has no attribute 'assertEquals'. Did you 
> mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_rawMode (tubes.test.test_framing.LineTests.test_rawMode)
> You should be able to have some lines, and then some bytes, and then
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/test_framing.py",
>  line 128, in test_rawMode
>     self.assertEquals(b"".join(Switchee.datums), b"abcde\r\nfgh")
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'LineTests' object has no attribute 'assertEquals'. Did you 
> mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_stringToLines 
> (tubes.test.test_framing.LineTests.test_stringToLines)
> A line is something delimited by a LF or CRLF.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/test_framing.py",
>  line 81, in test_stringToLines
>     splitALine(b"\n")
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/test_framing.py",
>  line 80, in splitALine
>     self.assertEquals(fd.received, [b"alpha", b"beta"])
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'LineTests' object has no attribute 'assertEquals'. Did you 
> mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_switchingWithMoreDataToDeliver 
> (tubes.test.test_framing.LineTests.test_switchingWithMoreDataToDeliver)
> Switching drains should immediately stop delivering data.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/test_framing.py",
>  line 151, in test_switchingWithMoreDataToDeliver
>     self.assertEquals(fd1.received, [b"something"])
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'LineTests' object has no attribute 'assertEquals'. Did you 
> mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_bytesToNetstrings 
> (tubes.test.test_framing.NetstringTests.test_bytesToNetstrings)
> L{bytesToNetstrings} works on subsequent inputs as well.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/test_framing.py",
>  line 45, in test_bytesToNetstrings
>     self.assertEquals(
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'NetstringTests' object has no attribute 'assertEquals'. Did 
> you mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_netstringToString 
> (tubes.test.test_framing.NetstringTests.test_netstringToString)
> Length prefix is stripped off.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/test_framing.py",
>  line 62, in test_netstringToString
>     self.assertEquals(fd.received, [b"x", b"yz"])
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'NetstringTests' object has no attribute 'assertEquals'. Did 
> you mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_stringToNetstring 
> (tubes.test.test_framing.NetstringTests.test_stringToNetstring)
> A byte-string is given a length prefix.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/test_framing.py",
>  line 30, in test_stringToNetstring
>     self.assertEquals(
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'NetstringTests' object has no attribute 'assertEquals'. Did 
> you mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_prefixIn (tubes.test.test_framing.PackedPrefixTests.test_prefixIn)
> Parse some prefixed data.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/test_framing.py",
>  line 170, in test_prefixIn
>     self.assertEquals(fd.received, [b"12345678"])
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'PackedPrefixTests' object has no attribute 'assertEquals'. 
> Did you mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_prefixOut 
> (tubes.test.test_framing.PackedPrefixTests.test_prefixOut)
> Emit some prefixes.
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/test_framing.py",
>  line 184, in test_prefixOut
>     self.assertEquals(fd.received, [b'\x01a', b'\x02bc', b'\x03def'])
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'PackedPrefixTests' object has no attribute 'assertEquals'. 
> Did you mean: 'assertEqual'?
> 
> ======================================================================
> ERROR: test_specifiedTypeChecking 
> (tubes.test.test_routing.RouterTests.test_specifiedTypeChecking)
> The C{outputType} argument to L{Router}'s constructor specifies the
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build/tubes/test/test_routing.py",
>  line 92, in test_specifiedTypeChecking
>     self.assertEquals(None, correctFount.flowTo(router.drain))
>     ^^^^^^^^^^^^^^^^^
> AttributeError: 'RouterTests' object has no attribute 'assertEquals'. Did you 
> mean: 'assertEqual'?
> 
> ----------------------------------------------------------------------
> Ran 274 tests in 0.192s
> 
> FAILED (errors=20)
> E: pybuild pybuild:395: test: plugin distutils failed with: exit code=1: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_tubes/build; python3.12 -m unittest 
> discover -v 
> I: pybuild base:310: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build; 
> python3.11 -m unittest discover -v 
> test_joining (test.test_chatter.ChatTests.test_joining)
> Test that we receive a response from joining. ... ok
> test_dontUnpauseWhenNoDrain 
> (test.test_fan.FanInTests.test_dontUnpauseWhenNoDrain)
> L{In.fount}C{.flowTo(None)} won't unpause L{In}'s upstream founts. ... ok
> test_flowStopped (test.test_fan.FanInTests.test_flowStopped)
> When the flow stops to one of the drains returned by L{In.newDrain}, it ... ok
> test_oneDrainReceives (test.test_fan.FanInTests.test_oneDrainReceives)
> When one drain created by L{In.newDrain} recives a value, the drain ... ok
> test_pauseNewFountWhenPaused 
> (test.test_fan.FanInTests.test_pauseNewFountWhenPaused)
> When a drain created by L{In.newDrain} receives a new fount, if ... ok
> test_pauseWhenNoDrain (test.test_fan.FanInTests.test_pauseWhenNoDrain)
> When a drain created by L{In.newDrain} is hooked up to a new fount, but ... ok
> test_pauseWhenSwitchedToNoDrain 
> (test.test_fan.FanInTests.test_pauseWhenSwitchedToNoDrain)
> L{In.fount}C{.flowTo(None)} after L{In.fount} already has a drain will ... ok
> test_stopFlow (test.test_fan.FanInTests.test_stopFlow)
> When the drain of L{In.fount} stops its upstream flow, that stops the ... ok
> test_fanOut (test.test_fan.FanOutTests.test_fanOut)
> When an L{Out} is constructed and flowed to two drains, both drains ... ok
> test_fanReceivesBeforeFountsHaveDrains 
> (test.test_fan.FanOutTests.test_fanReceivesBeforeFountsHaveDrains)
> L{Out.drain}'s C{receive} method only relays outputs to founts which ... ok
> test_flowStopped (test.test_fan.FanOutTests.test_flowStopped)
> When the flow stops to L{out.drain}, it stops to all downstream drains ... ok
> test_oneFountPausesInReceive 
> (test.test_fan.FanOutTests.test_oneFountPausesInReceive)
> When an L{Out} has two founts created by C{newFount} fA and fB, and ... ok
> test_oneFountPausesOthersInReceive 
> (test.test_fan.FanOutTests.test_oneFountPausesOthersInReceive)
> When an L{Out} has two founts created by C{newFount} fA and fB, and ... ok
> test_oneFountStops (test.test_fan.FanOutTests.test_oneFountStops)
> When one fount created by L{Out.newFount} is stopped, only the drain ... ok
> test_oneFountStopsInReceive 
> (test.test_fan.FanOutTests.test_oneFountStopsInReceive)
> When one fount created by L{Out.newFount} is stopped in its drain's ... ok
> test_outFountFlowTo (test.test_fan.FanOutTests.test_outFountFlowTo)
> L{Out.newFount}'s C{flowTo} calls C{flowingFrom} on its drain and ... ok
> test_pausingOneOutFountPausesUpstreamFount 
> (test.test_fan.FanOutTests.test_pausingOneOutFountPausesUpstreamFount)
> When one fount created by L{Out.newFount} is paused, the fount flowing ... ok
> test_switchFlowToNone (test.test_fan.FanOutTests.test_switchFlowToNone)
> When L{out.drain} removes its upstream fount, it unpauses it. ... ok
> test_verifyCompliance (test.test_fan.FanOutTests.test_verifyCompliance)
> L{Out.newFount} and L{Out.drain} adhere to their respected declared ... ok
> test_thru (test.test_fan.FanThruTests.test_thru)
> Each input provided to L{Thru} will be sent to each of its drains, and ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_linesToBytes (test.test_framing.LineTests.test_linesToBytes)
> Writing out lines delimits them, with the delimiter. ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/test/test_framing.py:94: 
> DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(b"".join(fd.received), b"hello\r\nworld\r\n")
> ok
> test_rawMode (test.test_framing.LineTests.test_rawMode)
> You should be able to have some lines, and then some bytes, and then ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/test/test_framing.py:128: 
> DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(b"".join(Switchee.datums), b"abcde\r\nfgh")
> ok
> test_stringToLines (test.test_framing.LineTests.test_stringToLines)
> A line is something delimited by a LF or CRLF. ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/test/test_framing.py:80: 
> DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(fd.received, [b"alpha", b"beta"])
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/test/test_framing.py:80: 
> DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(fd.received, [b"alpha", b"beta"])
> ok
> test_switchingWithMoreDataToDeliver 
> (test.test_framing.LineTests.test_switchingWithMoreDataToDeliver)
> Switching drains should immediately stop delivering data. ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/test/test_framing.py:151: 
> DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(fd1.received, [b"something"])
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/test/test_framing.py:152: 
> DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(fd2.received, [b'hello\r\n', b'world'])
> ok
> test_bytesToNetstrings 
> (test.test_framing.NetstringTests.test_bytesToNetstrings)
> L{bytesToNetstrings} works on subsequent inputs as well. ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/test/test_framing.py:45: 
> DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(
> ok
> test_netstringToString 
> (test.test_framing.NetstringTests.test_netstringToString)
> Length prefix is stripped off. ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/test/test_framing.py:62: 
> DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(fd.received, [b"x", b"yz"])
> ok
> test_stringToNetstring 
> (test.test_framing.NetstringTests.test_stringToNetstring)
> A byte-string is given a length prefix. ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/test/test_framing.py:30: 
> DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(
> ok
> test_prefixIn (test.test_framing.PackedPrefixTests.test_prefixIn)
> Parse some prefixed data. ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/test/test_framing.py:170: 
> DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(fd.received, [b"12345678"])
> ok
> test_prefixOut (test.test_framing.PackedPrefixTests.test_prefixOut)
> Emit some prefixes. ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/test/test_framing.py:184: 
> DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(fd.received, [b'\x01a', b'\x02bc', b'\x03def'])
> ok
> test_pauseOnce (test.test_kit.PauserTests.test_pauseOnce)
> One call to L{_Pauser.pause} will call the actuallyPause callable. ... ok
> test_pauseThenUnpause (test.test_kit.PauserTests.test_pauseThenUnpause)
> A call to L{_Pauser.pause} followed by a call to the result's ... ok
> test_reentrantPause (test.test_kit.PauserTests.test_reentrantPause)
> A L{Pauser} that pauses re-entrantly will only result in one call to ... ok
> test_reentrantResume (test.test_kit.PauserTests.test_reentrantResume)
> A L{Pauser} that resumes re-entrantly will raise L{AlreadyUnpaused}. ... ok
> test_repeatedlyPause (test.test_kit.PauserTests.test_repeatedlyPause)
> Multiple calls to L{_Pauser.pause} where not all of the pausers are ... ok
> test_secondUnpauseFails (test.test_kit.PauserTests.test_secondUnpauseFails)
> The second of two consectuive calls to L{IPause.unpause} results in an ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_listenerCallsFlowConnector 
> (test.test_listening.ListeningTests.test_listenerCallsFlowConnector)
> A L{Listener} is a drain which calls the function given to it to ... ok
> test_listenerLimitsConcurrentConnections 
> (test.test_listening.ListeningTests.test_listenerLimitsConcurrentConnections)
> L{Listener} will pause its fount when too many connections are ... ok
> test_flowTo (test.test_memory.IteratorFountTests.test_flowTo)
> L{iteratorFount.flowTo} sets its drain and calls C{flowingFrom} on its ... ok
> test_flowToDeliversValues 
> (test.test_memory.IteratorFountTests.test_flowToDeliversValues)
> L{iteratorFount.flowTo} will deliver all of its values to the given ... ok
> test_flowUnpausedAfterPausedFlowIsStopped 
> (test.test_memory.IteratorFountTests.test_flowUnpausedAfterPausedFlowIsStopped)
> When L{iteratorFount} is stopped after being paused, and subsequently ... ok
> test_pauseFlow (test.test_memory.IteratorFountTests.test_pauseFlow)
> L{iteratorFount.pauseFlow} will pause the delivery of items. ... ok
> test_provides (test.test_memory.IteratorFountTests.test_provides)
> An L{iteratorFount} provides L{IFount}. ... ok
> test_stopFlow (test.test_memory.IteratorFountTests.test_stopFlow)
> L{iteratorFount.stopFlow} stops the flow, propagating a C{flowStopped} ... ok
> test_stopFlowCalledAfterFlowStopped 
> (test.test_memory.IteratorFountTests.test_stopFlowCalledAfterFlowStopped)
> L{iteratorFount} will only call its C{drain}'s L{flowStopped} once when ... ok
> test_stopIterationStopsIteration 
> (test.test_memory.IteratorFountTests.test_stopIterationStopsIteration)
> When the iterator passed to L{iteratorFount} is exhausted ... ok
> test_stopPausedFlow (test.test_memory.IteratorFountTests.test_stopPausedFlow)
> When L{iteratorFount} is stopped after being paused, the drain will ... ok
> test_unpauseFlow (test.test_memory.IteratorFountTests.test_unpauseFlow)
> When all pauses returned by L{iteratorFount.pauseFlow} have been ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_connectionLostSendsFlowStopped 
> (test.test_protocol.FlowConnectorTests.test_connectionLostSendsFlowStopped)
> When C{connectionLost} is called on a L{_ProtocolPlumbing} and it has ... ok
> test_connectionLostSendsStopFlow 
> (test.test_protocol.FlowConnectorTests.test_connectionLostSendsStopFlow)
> L{_ProtocolPlumbing.connectionLost} will notify its C{_drain}'s ... ok
> test_dataReceivedBeforeFlowing 
> (test.test_protocol.FlowConnectorTests.test_dataReceivedBeforeFlowing)
> If L{_ProtocolPlumbing.dataReceived} is called before its ... ok
> test_dataReceivedBeforeFlowingThenFlowTo 
> (test.test_protocol.FlowConnectorTests.test_dataReceivedBeforeFlowingThenFlowTo)
> Repeated calls to L{flowTo} don't replay the buffer from ... ok
> test_dataReceivedWhenFlowingToNone 
> (test.test_protocol.FlowConnectorTests.test_dataReceivedWhenFlowingToNone)
> Initially flowing to L{None} is the same as flowTo never having been ... ok
> test_drainReceivingWritesToTransport 
> (test.test_protocol.FlowConnectorTests.test_drainReceivingWritesToTransport)
> Calling L{receive} on a L{_TransportDrain} will send the data to the ... ok
> test_flowStoppedStopsConnection 
> (test.test_protocol.FlowConnectorTests.test_flowStoppedStopsConnection)
> L{_TransportDrain.flowStopped} will close the underlying connection by ... ok
> test_flowToDeliversData 
> (test.test_protocol.FlowConnectorTests.test_flowToDeliversData)
> L{_TransportFount.flowTo} will cause subsequent calls to ... ok
> test_flowToSetsDrain 
> (test.test_protocol.FlowConnectorTests.test_flowToSetsDrain)
> L{_TransportFount.flowTo} will set the C{drain} attribute of the ... ok
> test_flowingFrom (test.test_protocol.FlowConnectorTests.test_flowingFrom)
> L{_TransportFount.flowTo} returns the result of its argument's ... ok
> test_flowingFromAttribute 
> (test.test_protocol.FlowConnectorTests.test_flowingFromAttribute)
> L{_TransportDrain.flowingFrom} will establish the appropriate L{IFount} ... ok
> test_flowingFromTwice 
> (test.test_protocol.FlowConnectorTests.test_flowingFromTwice)
> L{_TransportDrain.flowingFrom} switches the producer registered with ... ok
> test_flowingToNoneAfterFlowingToSomething 
> (test.test_protocol.FlowConnectorTests.test_flowingToNoneAfterFlowingToSomething)
> Flowing to L{None} should disconnect from any drain, no longer ... ok
> test_pauseUnpauseFromOtherDrain 
> (test.test_protocol.FlowConnectorTests.test_pauseUnpauseFromOtherDrain)
> When a L{_TransportFount} produces too much data for a L{drain ... ok
> test_pauseUnpauseFromTransport 
> (test.test_protocol.FlowConnectorTests.test_pauseUnpauseFromTransport)
> When an L{IFount} produces too much data for a L{_TransportDrain} to ... ok
> test_stopFlowStopsConnection 
> (test.test_protocol.FlowConnectorTests.test_stopFlowStopsConnection)
> L{_TransportFount.stopFlow} will close the underlying connection by ... ok
> test_stopProducing (test.test_protocol.FlowConnectorTests.test_stopProducing)
> When C{stopProducing} is called on the L{push producer ... ok
> test_acceptAfterDeferredButBeforeFlowTo 
> (test.test_protocol.FlowListenerTests.test_acceptAfterDeferredButBeforeFlowTo)
> If the L{Deferred} returned by L{flowFountFromEndpoint} fires, but the ... ok
> test_acceptBeforeActuallyListening 
> (test.test_protocol.FlowListenerTests.test_acceptBeforeActuallyListening)
> Sometimes a connection is established reentrantly by C{listen}, without ... ok
> test_backpressure (test.test_protocol.FlowListenerTests.test_backpressure)
> When the L{IFount} returned by L{flowFountFromEndpoint} is paused, it ... ok
> test_fromEndpoint (test.test_protocol.FlowListenerTests.test_fromEndpoint)
> L{flowFountFromEndpoint} returns a L{Deferred} that fires when the ... ok
> test_oneConnectionAccepted 
> (test.test_protocol.FlowListenerTests.test_oneConnectionAccepted)
> When a connection comes in to a listening L{flowFountFromEndpoint}, the ... ok
> test_readConnectionLost 
> (test.test_protocol.FlowListenerTests.test_readConnectionLost)
> The protocol created by L{flowFountFromEndpoint} provides half-close ... ok
> test_stopping (test.test_protocol.FlowListenerTests.test_stopping)
> The L{IFount} returned by L{flowFountFromEndpoint} will stop listening ... ok
> test_writeConnectionLost 
> (test.test_protocol.FlowListenerTests.test_writeConnectionLost)
> The protocol created by L{flowFountFromEndpoint} provides half-close ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_eq (test.test_routing.RoutedTests.test_eq)
> C{==} on L{Routed} is L{True} for equivalent ones, L{False} otherwise. ... ok
> test_ne (test.test_routing.RoutedTests.test_ne)
> C{==} on L{Routed} is L{False} for equivalent ones, L{True} otherwise. ... ok
> test_providedBy (test.test_routing.RoutedTests.test_providedBy)
> L{Routed.providedBy} ensures that the given object is a L{to} and that ... ok
> test_providedByNone (test.test_routing.RoutedTests.test_providedByNone)
> L{Routed.providedBy} ensures that the given object is L{to} but makes ... ok
> test_defaultTypeChecking 
> (test.test_routing.RouterTests.test_defaultTypeChecking)
> L{Router}'s drain accepts only L{Routed} objects; if no other type is ... ok
> test_routeRepr (test.test_routing.RouterTests.test_routeRepr)
> It's useful to C{repr} a route for debugging purposes; if we give it a ... ok
> test_specifiedTypeChecking 
> (test.test_routing.RouterTests.test_specifiedTypeChecking)
> The C{outputType} argument to L{Router}'s constructor specifies the ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/test/test_routing.py:92: 
> DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(None, correctFount.flowTo(router.drain))
> ok
> test_twoRoutes (test.test_routing.RouterTests.test_twoRoutes)
> The L{IFount} feeding into a L{Router} may yield L{to} each route ... ok
> test_startedRaises (test.test_tube.ErrorBehaviorTests.test_startedRaises)
> If L{ITube.started} raises an exception, the exception will be logged, ... 
> Exception raised when delivering from <bound method 
> ErrorBehaviorTests.test_startedRaises.<locals>.UnstartableTube.started of 
> <test.test_tube.ErrorBehaviorTests.test_startedRaises.<locals>.UnstartableTube
>  object at 0x7f7f8bd98f10>>
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/test/test_tube.py", line 
> 898, in test_startedRaises
>     ff.flowTo(siphonDrain)
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/util.py", 
> line 158, in flowTo
>     return beginFlowingTo(self, drain)
>   File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/kit.py", 
> line 113, in beginFlowingTo
>     return drain.flowingFrom(fount)
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/_siphon.py", line 
> 293, in flowingFrom
>     self._siphon._deliverFrom(self._tube.started)
> --- <exception caught here> ---
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/_siphon.py", line 
> 405, in _deliverFrom
>     iterableOrNot = deliverySource()
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/test/test_tube.py", line 
> 893, in started
>     raise ZeroDivisionError
> builtins.ZeroDivisionError: 
> 
> ok
> test_startedRaisesNoDrain 
> (test.test_tube.ErrorBehaviorTests.test_startedRaisesNoDrain)
> If L{ITube.started} raises an exception, the exception will be logged, ... 
> Exception raised when delivering from <bound method 
> ErrorBehaviorTests.test_startedRaisesNoDrain.<locals>.UnstartableTube.started 
> of 
> <test.test_tube.ErrorBehaviorTests.test_startedRaisesNoDrain.<locals>.UnstartableTube
>  object at 0x7f7f8bda4410>>
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/test/test_tube.py", line 
> 918, in test_startedRaisesNoDrain
>     ff.flowTo(siphonDrain)
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/util.py", 
> line 158, in flowTo
>     return beginFlowingTo(self, drain)
>   File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/kit.py", 
> line 113, in beginFlowingTo
>     return drain.flowingFrom(fount)
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/_siphon.py", line 
> 293, in flowingFrom
>     self._siphon._deliverFrom(self._tube.started)
> --- <exception caught here> ---
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/_siphon.py", line 
> 405, in _deliverFrom
>     iterableOrNot = deliverySource()
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/test/test_tube.py", line 
> 914, in started
>     raise ZeroDivisionError
> builtins.ZeroDivisionError: 
> 
> ok
> test_divertWhilePaused (test.test_tube.SeriesTests.test_divertWhilePaused)
> If an L{IDivertable} L{tube} is diverted while it is paused, ... ok
> test_diverterInYourDiverterSoYouCanDivertWhileYouDivert 
> (test.test_tube.SeriesTests.test_diverterInYourDiverterSoYouCanDivertWhileYouDivert)
> When L{IDivertable.reassemble} returns multiple values, the argument to ... ok
> test_diverterRepr (test.test_tube.SeriesTests.test_diverterRepr)
> repr for L{Diverter} includes a reference to its tube. ... ok
> test_drainFlowingFromNoneAlsoUnpauses 
> (test.test_tube.SeriesTests.test_drainFlowingFromNoneAlsoUnpauses)
> L{_SiphonDrain.flowingFrom} will resume its old fount when flowed to ... ok
> test_drainPausesFlowWhenPreviouslyPaused 
> (test.test_tube.SeriesTests.test_drainPausesFlowWhenPreviouslyPaused)
> L{_SiphonDrain.flowingFrom} will pause its fount if its L{_SiphonFount} ... ok
> test_drainRemainsPausedAcrossDetachedState 
> (test.test_tube.SeriesTests.test_drainRemainsPausedAcrossDetachedState)
> L{_SiphonDrain.flowingFrom} will pause its fount if its L{_SiphonFount} ... ok
> test_flowFromTypeCheckFails 
> (test.test_tube.SeriesTests.test_flowFromTypeCheckFails)
> L{_Siphon.flowingFrom} checks the type of its input.  If it doesn't ... ok
> test_flowFromTypeCheckSucceeds 
> (test.test_tube.SeriesTests.test_flowFromTypeCheckSucceeds)
> L{_Siphon.flowingFrom} checks the type of its input.  If it doesn't ... ok
> test_flowToNoneInitialNoOp 
> (test.test_tube.SeriesTests.test_flowToNoneInitialNoOp)
> L{_SiphonFount.flowTo}C{(None)} is a no-op when called before ... ok
> test_flowToWillNotResumeFlowPausedInFlowingFrom 
> (test.test_tube.SeriesTests.test_flowToWillNotResumeFlowPausedInFlowingFrom)
> L{_SiphonFount.flowTo} will not call L{_SiphonFount.resumeFlow} when ... ok
> test_flowingFromFirst (test.test_tube.SeriesTests.test_flowingFromFirst)
> If L{_Siphon.flowingFrom} is called before L{_Siphon.flowTo}, the ... ok
> test_initiallyEnthusiasticFountBecomesDisillusioned 
> (test.test_tube.SeriesTests.test_initiallyEnthusiasticFountBecomesDisillusioned)
> If an L{IFount} provider synchronously calls C{receive} on a ... ok
> test_noDrainThenLoseFount 
> (test.test_tube.SeriesTests.test_noDrainThenLoseFount)
> If a fount is flowed to a tube which does not yet have a drain, then ... ok
> test_receiveCallsTubeReceived 
> (test.test_tube.SeriesTests.test_receiveCallsTubeReceived)
> L{_SiphonDrain.receive} will send its input to L{ITube.received} on its ... ok
> test_receiveIterableDeliversDownstream 
> (test.test_tube.SeriesTests.test_receiveIterableDeliversDownstream)
> When L{Tube.received} yields a value, L{_Siphon} will call L{receive} ... ok
> test_reentrantFlowTo (test.test_tube.SeriesTests.test_reentrantFlowTo)
> An L{IDrain} may call its argument's L{_SiphonFount.flowTo} method in ... ok
> test_seriesEndsInTerminalDrain 
> (test.test_tube.SeriesTests.test_seriesEndsInTerminalDrain)
> If L{series} is called with an L{IDrain} which returns L{None} from ... ok
> test_seriesStartsWithSeries 
> (test.test_tube.SeriesTests.test_seriesStartsWithSeries)
> If L{series} is called with the result of L{series} as its first ... ok
> test_siphonDrainRepr (test.test_tube.SeriesTests.test_siphonDrainRepr)
> repr for L{_SiphonDrain} includes a reference to its tube. ... ok
> test_siphonFlowingFromNoneReturnsSelfFount 
> (test.test_tube.SeriesTests.test_siphonFlowingFromNoneReturnsSelfFount)
> L{_SiphonDrain.flowingFrom} initially returns its L{_Siphon}'s ... ok
> test_siphonFlowingFromReturnsNextFount 
> (test.test_tube.SeriesTests.test_siphonFlowingFromReturnsNextFount)
> Once L{_SiphonFount.flowTo} has been called, ... ok
> test_siphonFlowingFromReturnsSelfFount 
> (test.test_tube.SeriesTests.test_siphonFlowingFromReturnsSelfFount)
> L{_SiphonDrain.flowingFrom} initially returns its L{_Siphon}'s ... ok
> test_siphonFlowingFromSomethingThenNothing 
> (test.test_tube.SeriesTests.test_siphonFlowingFromSomethingThenNothing)
> L{_SiphonDrain.flowingFrom} sets L{_SiphonDrain.fount}, whether it is ... ok
> test_siphonFountRepr (test.test_tube.SeriesTests.test_siphonFountRepr)
> repr for L{_SiphonFount} includes a reference to its tube. ... ok
> test_siphonReceiveCallsTubeReceived 
> (test.test_tube.SeriesTests.test_siphonReceiveCallsTubeReceived)
> L{_SiphonDrain.receive} will call C{tube.received} and synthesize a ... ok
> test_siphonRepr (test.test_tube.SeriesTests.test_siphonRepr)
> repr for L{_Siphon} includes a reference to its tube. ... ok
> test_startedFlowingToAnother 
> (test.test_tube.SeriesTests.test_startedFlowingToAnother)
> The greeting is relayed to the ultimate drain when a tube in the middle ... ok
> test_stopFlow (test.test_tube.SeriesTests.test_stopFlow)
> L{_SiphonFount.stopFlow} stops the flow of its L{_Siphon}'s upstream ... ok
> test_stopFlowBeforeFlowBegins 
> (test.test_tube.SeriesTests.test_stopFlowBeforeFlowBegins)
> L{_SiphonFount.stopFlow} will stop the flow of its L{_Siphon}'s ... ok
> test_stopFlowInterruptsStarted 
> (test.test_tube.SeriesTests.test_stopFlowInterruptsStarted)
> As per L{IFount.stopFlow}, a compliant L{fount <IFount>} never calls ... ok
> test_stopFlowStopsFlowImmediately 
> (test.test_tube.SeriesTests.test_stopFlowStopsFlowImmediately)
> Similar to L{test_stopFlowInterruptsStarted}, if the upstream fount ... ok
> test_stopFlowWhileStartingFlow 
> (test.test_tube.SeriesTests.test_stopFlowWhileStartingFlow)
> If a fount flowing to a tube calls C{flowStopped} in C{flowTo}, the ... ok
> test_tubeDiverting (test.test_tube.SeriesTests.test_tubeDiverting)
> The L{_Siphon} of a L{Tube} sends on data to a newly specified ... ok
> test_tubeDivertingControlsWhereOutputGoes 
> (test.test_tube.SeriesTests.test_tubeDivertingControlsWhereOutputGoes)
> If a siphon A with a tube Ap is flowing to a siphon B with a divertable ... ok
> test_tubeDivertingReassembly 
> (test.test_tube.SeriesTests.test_tubeDivertingReassembly)
> The L{_Siphon} of a L{Tube} sends on reassembled data - the return ... ok
> test_tubeDiverting_LotsOfStuffAtOnce 
> (test.test_tube.SeriesTests.test_tubeDiverting_LotsOfStuffAtOnce)
> If a tube returns a sequence of multiple things, great. ... ok
> test_tubeDiverting_ReEntrantResumeReceive 
> (test.test_tube.SeriesTests.test_tubeDiverting_ReEntrantResumeReceive)
> Diverting a tube that is receiving data from a fount which ... ok
> test_tubePausesItself (test.test_tube.SeriesTests.test_tubePausesItself)
> When one of the methods on L{Tube} pauses its own C{fount} or C{drain}, ... ok
> test_tubeReStarted (test.test_tube.SeriesTests.test_tubeReStarted)
> It's perfectly valid to take a L{_Siphon} and call C{flowingFrom} with ... ok
> test_tubeStarted (test.test_tube.SeriesTests.test_tubeStarted)
> The L{_Siphon} starts its L{Tube} upon C{flowingFrom}. ... ok
> test_tubeStopped (test.test_tube.SeriesTests.test_tubeStopped)
> The L{_Siphon} stops its L{Tube} and propagates C{flowStopped} ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_noOps (test.test_tube.TubeTests.test_noOps)
> All of L{Tube}'s implementations of L{ITube} are no-ops. ... ok
> test_provider (test.test_tube.TubeTests.test_provider)
> L{Tube} provides L{ITube}. ... ok
> test_fountToDeferred 
> (test.test_undefer.DeferredIntegrationTests.test_fountToDeferred)
> L{fountToDeferred} returns a L{Deferred} that fires with an iterable of ... ok
> test_tubeStoppedDeferredly 
> (test.test_undefer.DeferredIntegrationTests.test_tubeStoppedDeferredly)
> The L{_Siphon} stops its L{Tube} and propagates C{flowStopped} ... ok
> test_tubeYieldedDeferredFiresWhileFlowIsPaused 
> (test.test_undefer.DeferredIntegrationTests.test_tubeYieldedDeferredFiresWhileFlowIsPaused)
> When a L{Tube} yields an L{Deferred} and that L{Deferred} fires when ... ok
> test_tubeYieldsFiredDeferred 
> (test.test_undefer.DeferredIntegrationTests.test_tubeYieldsFiredDeferred)
> When a tube yields a fired L{Deferred} its result is synchronously ... ok
> test_tubeYieldsMultipleDeferreds 
> (test.test_undefer.DeferredIntegrationTests.test_tubeYieldsMultipleDeferreds)
> When a tube yields multiple deferreds their results should be delivered ... ok
> test_tubeYieldsUnfiredDeferred 
> (test.test_undefer.DeferredIntegrationTests.test_tubeYieldsUnfiredDeferred)
> When a tube yields an unfired L{Deferred} its result is asynchronously ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_joining (tubes.test.test_chatter.ChatTests.test_joining)
> Test that we receive a response from joining. ... ok
> test_dontUnpauseWhenNoDrain 
> (tubes.test.test_fan.FanInTests.test_dontUnpauseWhenNoDrain)
> L{In.fount}C{.flowTo(None)} won't unpause L{In}'s upstream founts. ... ok
> test_flowStopped (tubes.test.test_fan.FanInTests.test_flowStopped)
> When the flow stops to one of the drains returned by L{In.newDrain}, it ... ok
> test_oneDrainReceives (tubes.test.test_fan.FanInTests.test_oneDrainReceives)
> When one drain created by L{In.newDrain} recives a value, the drain ... ok
> test_pauseNewFountWhenPaused 
> (tubes.test.test_fan.FanInTests.test_pauseNewFountWhenPaused)
> When a drain created by L{In.newDrain} receives a new fount, if ... ok
> test_pauseWhenNoDrain (tubes.test.test_fan.FanInTests.test_pauseWhenNoDrain)
> When a drain created by L{In.newDrain} is hooked up to a new fount, but ... ok
> test_pauseWhenSwitchedToNoDrain 
> (tubes.test.test_fan.FanInTests.test_pauseWhenSwitchedToNoDrain)
> L{In.fount}C{.flowTo(None)} after L{In.fount} already has a drain will ... ok
> test_stopFlow (tubes.test.test_fan.FanInTests.test_stopFlow)
> When the drain of L{In.fount} stops its upstream flow, that stops the ... ok
> test_fanOut (tubes.test.test_fan.FanOutTests.test_fanOut)
> When an L{Out} is constructed and flowed to two drains, both drains ... ok
> test_fanReceivesBeforeFountsHaveDrains 
> (tubes.test.test_fan.FanOutTests.test_fanReceivesBeforeFountsHaveDrains)
> L{Out.drain}'s C{receive} method only relays outputs to founts which ... ok
> test_flowStopped (tubes.test.test_fan.FanOutTests.test_flowStopped)
> When the flow stops to L{out.drain}, it stops to all downstream drains ... ok
> test_oneFountPausesInReceive 
> (tubes.test.test_fan.FanOutTests.test_oneFountPausesInReceive)
> When an L{Out} has two founts created by C{newFount} fA and fB, and ... ok
> test_oneFountPausesOthersInReceive 
> (tubes.test.test_fan.FanOutTests.test_oneFountPausesOthersInReceive)
> When an L{Out} has two founts created by C{newFount} fA and fB, and ... ok
> test_oneFountStops (tubes.test.test_fan.FanOutTests.test_oneFountStops)
> When one fount created by L{Out.newFount} is stopped, only the drain ... ok
> test_oneFountStopsInReceive 
> (tubes.test.test_fan.FanOutTests.test_oneFountStopsInReceive)
> When one fount created by L{Out.newFount} is stopped in its drain's ... ok
> test_outFountFlowTo (tubes.test.test_fan.FanOutTests.test_outFountFlowTo)
> L{Out.newFount}'s C{flowTo} calls C{flowingFrom} on its drain and ... ok
> test_pausingOneOutFountPausesUpstreamFount 
> (tubes.test.test_fan.FanOutTests.test_pausingOneOutFountPausesUpstreamFount)
> When one fount created by L{Out.newFount} is paused, the fount flowing ... ok
> test_switchFlowToNone (tubes.test.test_fan.FanOutTests.test_switchFlowToNone)
> When L{out.drain} removes its upstream fount, it unpauses it. ... ok
> test_verifyCompliance (tubes.test.test_fan.FanOutTests.test_verifyCompliance)
> L{Out.newFount} and L{Out.drain} adhere to their respected declared ... ok
> test_thru (tubes.test.test_fan.FanThruTests.test_thru)
> Each input provided to L{Thru} will be sent to each of its drains, and ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_linesToBytes (tubes.test.test_framing.LineTests.test_linesToBytes)
> Writing out lines delimits them, with the delimiter. ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/test_framing.py:94:
>  DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(b"".join(fd.received), b"hello\r\nworld\r\n")
> ok
> test_rawMode (tubes.test.test_framing.LineTests.test_rawMode)
> You should be able to have some lines, and then some bytes, and then ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/test_framing.py:128:
>  DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(b"".join(Switchee.datums), b"abcde\r\nfgh")
> ok
> test_stringToLines (tubes.test.test_framing.LineTests.test_stringToLines)
> A line is something delimited by a LF or CRLF. ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/test_framing.py:80:
>  DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(fd.received, [b"alpha", b"beta"])
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/test_framing.py:80:
>  DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(fd.received, [b"alpha", b"beta"])
> ok
> test_switchingWithMoreDataToDeliver 
> (tubes.test.test_framing.LineTests.test_switchingWithMoreDataToDeliver)
> Switching drains should immediately stop delivering data. ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/test_framing.py:151:
>  DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(fd1.received, [b"something"])
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/test_framing.py:152:
>  DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(fd2.received, [b'hello\r\n', b'world'])
> ok
> test_bytesToNetstrings 
> (tubes.test.test_framing.NetstringTests.test_bytesToNetstrings)
> L{bytesToNetstrings} works on subsequent inputs as well. ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/test_framing.py:45:
>  DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(
> ok
> test_netstringToString 
> (tubes.test.test_framing.NetstringTests.test_netstringToString)
> Length prefix is stripped off. ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/test_framing.py:62:
>  DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(fd.received, [b"x", b"yz"])
> ok
> test_stringToNetstring 
> (tubes.test.test_framing.NetstringTests.test_stringToNetstring)
> A byte-string is given a length prefix. ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/test_framing.py:30:
>  DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(
> ok
> test_prefixIn (tubes.test.test_framing.PackedPrefixTests.test_prefixIn)
> Parse some prefixed data. ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/test_framing.py:170:
>  DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(fd.received, [b"12345678"])
> ok
> test_prefixOut (tubes.test.test_framing.PackedPrefixTests.test_prefixOut)
> Emit some prefixes. ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/test_framing.py:184:
>  DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(fd.received, [b'\x01a', b'\x02bc', b'\x03def'])
> ok
> test_pauseOnce (tubes.test.test_kit.PauserTests.test_pauseOnce)
> One call to L{_Pauser.pause} will call the actuallyPause callable. ... ok
> test_pauseThenUnpause (tubes.test.test_kit.PauserTests.test_pauseThenUnpause)
> A call to L{_Pauser.pause} followed by a call to the result's ... ok
> test_reentrantPause (tubes.test.test_kit.PauserTests.test_reentrantPause)
> A L{Pauser} that pauses re-entrantly will only result in one call to ... ok
> test_reentrantResume (tubes.test.test_kit.PauserTests.test_reentrantResume)
> A L{Pauser} that resumes re-entrantly will raise L{AlreadyUnpaused}. ... ok
> test_repeatedlyPause (tubes.test.test_kit.PauserTests.test_repeatedlyPause)
> Multiple calls to L{_Pauser.pause} where not all of the pausers are ... ok
> test_secondUnpauseFails 
> (tubes.test.test_kit.PauserTests.test_secondUnpauseFails)
> The second of two consectuive calls to L{IPause.unpause} results in an ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_listenerCallsFlowConnector 
> (tubes.test.test_listening.ListeningTests.test_listenerCallsFlowConnector)
> A L{Listener} is a drain which calls the function given to it to ... ok
> test_listenerLimitsConcurrentConnections 
> (tubes.test.test_listening.ListeningTests.test_listenerLimitsConcurrentConnections)
> L{Listener} will pause its fount when too many connections are ... ok
> test_flowTo (tubes.test.test_memory.IteratorFountTests.test_flowTo)
> L{iteratorFount.flowTo} sets its drain and calls C{flowingFrom} on its ... ok
> test_flowToDeliversValues 
> (tubes.test.test_memory.IteratorFountTests.test_flowToDeliversValues)
> L{iteratorFount.flowTo} will deliver all of its values to the given ... ok
> test_flowUnpausedAfterPausedFlowIsStopped 
> (tubes.test.test_memory.IteratorFountTests.test_flowUnpausedAfterPausedFlowIsStopped)
> When L{iteratorFount} is stopped after being paused, and subsequently ... ok
> test_pauseFlow (tubes.test.test_memory.IteratorFountTests.test_pauseFlow)
> L{iteratorFount.pauseFlow} will pause the delivery of items. ... ok
> test_provides (tubes.test.test_memory.IteratorFountTests.test_provides)
> An L{iteratorFount} provides L{IFount}. ... ok
> test_stopFlow (tubes.test.test_memory.IteratorFountTests.test_stopFlow)
> L{iteratorFount.stopFlow} stops the flow, propagating a C{flowStopped} ... ok
> test_stopFlowCalledAfterFlowStopped 
> (tubes.test.test_memory.IteratorFountTests.test_stopFlowCalledAfterFlowStopped)
> L{iteratorFount} will only call its C{drain}'s L{flowStopped} once when ... ok
> test_stopIterationStopsIteration 
> (tubes.test.test_memory.IteratorFountTests.test_stopIterationStopsIteration)
> When the iterator passed to L{iteratorFount} is exhausted ... ok
> test_stopPausedFlow 
> (tubes.test.test_memory.IteratorFountTests.test_stopPausedFlow)
> When L{iteratorFount} is stopped after being paused, the drain will ... ok
> test_unpauseFlow (tubes.test.test_memory.IteratorFountTests.test_unpauseFlow)
> When all pauses returned by L{iteratorFount.pauseFlow} have been ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_connectionLostSendsFlowStopped 
> (tubes.test.test_protocol.FlowConnectorTests.test_connectionLostSendsFlowStopped)
> When C{connectionLost} is called on a L{_ProtocolPlumbing} and it has ... ok
> test_connectionLostSendsStopFlow 
> (tubes.test.test_protocol.FlowConnectorTests.test_connectionLostSendsStopFlow)
> L{_ProtocolPlumbing.connectionLost} will notify its C{_drain}'s ... ok
> test_dataReceivedBeforeFlowing 
> (tubes.test.test_protocol.FlowConnectorTests.test_dataReceivedBeforeFlowing)
> If L{_ProtocolPlumbing.dataReceived} is called before its ... ok
> test_dataReceivedBeforeFlowingThenFlowTo 
> (tubes.test.test_protocol.FlowConnectorTests.test_dataReceivedBeforeFlowingThenFlowTo)
> Repeated calls to L{flowTo} don't replay the buffer from ... ok
> test_dataReceivedWhenFlowingToNone 
> (tubes.test.test_protocol.FlowConnectorTests.test_dataReceivedWhenFlowingToNone)
> Initially flowing to L{None} is the same as flowTo never having been ... ok
> test_drainReceivingWritesToTransport 
> (tubes.test.test_protocol.FlowConnectorTests.test_drainReceivingWritesToTransport)
> Calling L{receive} on a L{_TransportDrain} will send the data to the ... ok
> test_flowStoppedStopsConnection 
> (tubes.test.test_protocol.FlowConnectorTests.test_flowStoppedStopsConnection)
> L{_TransportDrain.flowStopped} will close the underlying connection by ... ok
> test_flowToDeliversData 
> (tubes.test.test_protocol.FlowConnectorTests.test_flowToDeliversData)
> L{_TransportFount.flowTo} will cause subsequent calls to ... ok
> test_flowToSetsDrain 
> (tubes.test.test_protocol.FlowConnectorTests.test_flowToSetsDrain)
> L{_TransportFount.flowTo} will set the C{drain} attribute of the ... ok
> test_flowingFrom 
> (tubes.test.test_protocol.FlowConnectorTests.test_flowingFrom)
> L{_TransportFount.flowTo} returns the result of its argument's ... ok
> test_flowingFromAttribute 
> (tubes.test.test_protocol.FlowConnectorTests.test_flowingFromAttribute)
> L{_TransportDrain.flowingFrom} will establish the appropriate L{IFount} ... ok
> test_flowingFromTwice 
> (tubes.test.test_protocol.FlowConnectorTests.test_flowingFromTwice)
> L{_TransportDrain.flowingFrom} switches the producer registered with ... ok
> test_flowingToNoneAfterFlowingToSomething 
> (tubes.test.test_protocol.FlowConnectorTests.test_flowingToNoneAfterFlowingToSomething)
> Flowing to L{None} should disconnect from any drain, no longer ... ok
> test_pauseUnpauseFromOtherDrain 
> (tubes.test.test_protocol.FlowConnectorTests.test_pauseUnpauseFromOtherDrain)
> When a L{_TransportFount} produces too much data for a L{drain ... ok
> test_pauseUnpauseFromTransport 
> (tubes.test.test_protocol.FlowConnectorTests.test_pauseUnpauseFromTransport)
> When an L{IFount} produces too much data for a L{_TransportDrain} to ... ok
> test_stopFlowStopsConnection 
> (tubes.test.test_protocol.FlowConnectorTests.test_stopFlowStopsConnection)
> L{_TransportFount.stopFlow} will close the underlying connection by ... ok
> test_stopProducing 
> (tubes.test.test_protocol.FlowConnectorTests.test_stopProducing)
> When C{stopProducing} is called on the L{push producer ... ok
> test_acceptAfterDeferredButBeforeFlowTo 
> (tubes.test.test_protocol.FlowListenerTests.test_acceptAfterDeferredButBeforeFlowTo)
> If the L{Deferred} returned by L{flowFountFromEndpoint} fires, but the ... ok
> test_acceptBeforeActuallyListening 
> (tubes.test.test_protocol.FlowListenerTests.test_acceptBeforeActuallyListening)
> Sometimes a connection is established reentrantly by C{listen}, without ... ok
> test_backpressure 
> (tubes.test.test_protocol.FlowListenerTests.test_backpressure)
> When the L{IFount} returned by L{flowFountFromEndpoint} is paused, it ... ok
> test_fromEndpoint 
> (tubes.test.test_protocol.FlowListenerTests.test_fromEndpoint)
> L{flowFountFromEndpoint} returns a L{Deferred} that fires when the ... ok
> test_oneConnectionAccepted 
> (tubes.test.test_protocol.FlowListenerTests.test_oneConnectionAccepted)
> When a connection comes in to a listening L{flowFountFromEndpoint}, the ... ok
> test_readConnectionLost 
> (tubes.test.test_protocol.FlowListenerTests.test_readConnectionLost)
> The protocol created by L{flowFountFromEndpoint} provides half-close ... ok
> test_stopping (tubes.test.test_protocol.FlowListenerTests.test_stopping)
> The L{IFount} returned by L{flowFountFromEndpoint} will stop listening ... ok
> test_writeConnectionLost 
> (tubes.test.test_protocol.FlowListenerTests.test_writeConnectionLost)
> The protocol created by L{flowFountFromEndpoint} provides half-close ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_eq (tubes.test.test_routing.RoutedTests.test_eq)
> C{==} on L{Routed} is L{True} for equivalent ones, L{False} otherwise. ... ok
> test_ne (tubes.test.test_routing.RoutedTests.test_ne)
> C{==} on L{Routed} is L{False} for equivalent ones, L{True} otherwise. ... ok
> test_providedBy (tubes.test.test_routing.RoutedTests.test_providedBy)
> L{Routed.providedBy} ensures that the given object is a L{to} and that ... ok
> test_providedByNone (tubes.test.test_routing.RoutedTests.test_providedByNone)
> L{Routed.providedBy} ensures that the given object is L{to} but makes ... ok
> test_defaultTypeChecking 
> (tubes.test.test_routing.RouterTests.test_defaultTypeChecking)
> L{Router}'s drain accepts only L{Routed} objects; if no other type is ... ok
> test_routeRepr (tubes.test.test_routing.RouterTests.test_routeRepr)
> It's useful to C{repr} a route for debugging purposes; if we give it a ... ok
> test_specifiedTypeChecking 
> (tubes.test.test_routing.RouterTests.test_specifiedTypeChecking)
> The C{outputType} argument to L{Router}'s constructor specifies the ... 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/test_routing.py:92:
>  DeprecationWarning: Please use assertEqual instead.
>   self.assertEquals(None, correctFount.flowTo(router.drain))
> ok
> test_twoRoutes (tubes.test.test_routing.RouterTests.test_twoRoutes)
> The L{IFount} feeding into a L{Router} may yield L{to} each route ... ok
> test_startedRaises 
> (tubes.test.test_tube.ErrorBehaviorTests.test_startedRaises)
> If L{ITube.started} raises an exception, the exception will be logged, ... 
> Exception raised when delivering from <bound method 
> ErrorBehaviorTests.test_startedRaises.<locals>.UnstartableTube.started of 
> <tubes.test.test_tube.ErrorBehaviorTests.test_startedRaises.<locals>.UnstartableTube
>  object at 0x7f7f8bc30f50>>
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/test_tube.py",
>  line 898, in test_startedRaises
>     ff.flowTo(siphonDrain)
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/util.py", 
> line 158, in flowTo
>     return beginFlowingTo(self, drain)
>   File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/kit.py", 
> line 113, in beginFlowingTo
>     return drain.flowingFrom(fount)
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/_siphon.py", line 
> 293, in flowingFrom
>     self._siphon._deliverFrom(self._tube.started)
> --- <exception caught here> ---
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/_siphon.py", line 
> 405, in _deliverFrom
>     iterableOrNot = deliverySource()
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/test_tube.py",
>  line 893, in started
>     raise ZeroDivisionError
> builtins.ZeroDivisionError: 
> 
> ok
> test_startedRaisesNoDrain 
> (tubes.test.test_tube.ErrorBehaviorTests.test_startedRaisesNoDrain)
> If L{ITube.started} raises an exception, the exception will be logged, ... 
> Exception raised when delivering from <bound method 
> ErrorBehaviorTests.test_startedRaisesNoDrain.<locals>.UnstartableTube.started 
> of 
> <tubes.test.test_tube.ErrorBehaviorTests.test_startedRaisesNoDrain.<locals>.UnstartableTube
>  object at 0x7f7f8bc3cf90>>
> Traceback (most recent call last):
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/test_tube.py",
>  line 918, in test_startedRaisesNoDrain
>     ff.flowTo(siphonDrain)
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/util.py", 
> line 158, in flowTo
>     return beginFlowingTo(self, drain)
>   File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/kit.py", 
> line 113, in beginFlowingTo
>     return drain.flowingFrom(fount)
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/_siphon.py", line 
> 293, in flowingFrom
>     self._siphon._deliverFrom(self._tube.started)
> --- <exception caught here> ---
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/_siphon.py", line 
> 405, in _deliverFrom
>     iterableOrNot = deliverySource()
>   File 
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tubes/build/tubes/test/test_tube.py",
>  line 914, in started
>     raise ZeroDivisionError
> builtins.ZeroDivisionError: 
> 
> ok
> test_divertWhilePaused 
> (tubes.test.test_tube.SeriesTests.test_divertWhilePaused)
> If an L{IDivertable} L{tube} is diverted while it is paused, ... ok
> test_diverterInYourDiverterSoYouCanDivertWhileYouDivert 
> (tubes.test.test_tube.SeriesTests.test_diverterInYourDiverterSoYouCanDivertWhileYouDivert)
> When L{IDivertable.reassemble} returns multiple values, the argument to ... ok
> test_diverterRepr (tubes.test.test_tube.SeriesTests.test_diverterRepr)
> repr for L{Diverter} includes a reference to its tube. ... ok
> test_drainFlowingFromNoneAlsoUnpauses 
> (tubes.test.test_tube.SeriesTests.test_drainFlowingFromNoneAlsoUnpauses)
> L{_SiphonDrain.flowingFrom} will resume its old fount when flowed to ... ok
> test_drainPausesFlowWhenPreviouslyPaused 
> (tubes.test.test_tube.SeriesTests.test_drainPausesFlowWhenPreviouslyPaused)
> L{_SiphonDrain.flowingFrom} will pause its fount if its L{_SiphonFount} ... ok
> test_drainRemainsPausedAcrossDetachedState 
> (tubes.test.test_tube.SeriesTests.test_drainRemainsPausedAcrossDetachedState)
> L{_SiphonDrain.flowingFrom} will pause its fount if its L{_SiphonFount} ... ok
> test_flowFromTypeCheckFails 
> (tubes.test.test_tube.SeriesTests.test_flowFromTypeCheckFails)
> L{_Siphon.flowingFrom} checks the type of its input.  If it doesn't ... ok
> test_flowFromTypeCheckSucceeds 
> (tubes.test.test_tube.SeriesTests.test_flowFromTypeCheckSucceeds)
> L{_Siphon.flowingFrom} checks the type of its input.  If it doesn't ... ok
> test_flowToNoneInitialNoOp 
> (tubes.test.test_tube.SeriesTests.test_flowToNoneInitialNoOp)
> L{_SiphonFount.flowTo}C{(None)} is a no-op when called before ... ok
> test_flowToWillNotResumeFlowPausedInFlowingFrom 
> (tubes.test.test_tube.SeriesTests.test_flowToWillNotResumeFlowPausedInFlowingFrom)
> L{_SiphonFount.flowTo} will not call L{_SiphonFount.resumeFlow} when ... ok
> test_flowingFromFirst (tubes.test.test_tube.SeriesTests.test_flowingFromFirst)
> If L{_Siphon.flowingFrom} is called before L{_Siphon.flowTo}, the ... ok
> test_initiallyEnthusiasticFountBecomesDisillusioned 
> (tubes.test.test_tube.SeriesTests.test_initiallyEnthusiasticFountBecomesDisillusioned)
> If an L{IFount} provider synchronously calls C{receive} on a ... ok
> test_noDrainThenLoseFount 
> (tubes.test.test_tube.SeriesTests.test_noDrainThenLoseFount)
> If a fount is flowed to a tube which does not yet have a drain, then ... ok
> test_receiveCallsTubeReceived 
> (tubes.test.test_tube.SeriesTests.test_receiveCallsTubeReceived)
> L{_SiphonDrain.receive} will send its input to L{ITube.received} on its ... ok
> test_receiveIterableDeliversDownstream 
> (tubes.test.test_tube.SeriesTests.test_receiveIterableDeliversDownstream)
> When L{Tube.received} yields a value, L{_Siphon} will call L{receive} ... ok
> test_reentrantFlowTo (tubes.test.test_tube.SeriesTests.test_reentrantFlowTo)
> An L{IDrain} may call its argument's L{_SiphonFount.flowTo} method in ... ok
> test_seriesEndsInTerminalDrain 
> (tubes.test.test_tube.SeriesTests.test_seriesEndsInTerminalDrain)
> If L{series} is called with an L{IDrain} which returns L{None} from ... ok
> test_seriesStartsWithSeries 
> (tubes.test.test_tube.SeriesTests.test_seriesStartsWithSeries)
> If L{series} is called with the result of L{series} as its first ... ok
> test_siphonDrainRepr (tubes.test.test_tube.SeriesTests.test_siphonDrainRepr)
> repr for L{_SiphonDrain} includes a reference to its tube. ... ok
> test_siphonFlowingFromNoneReturnsSelfFount 
> (tubes.test.test_tube.SeriesTests.test_siphonFlowingFromNoneReturnsSelfFount)
> L{_SiphonDrain.flowingFrom} initially returns its L{_Siphon}'s ... ok
> test_siphonFlowingFromReturnsNextFount 
> (tubes.test.test_tube.SeriesTests.test_siphonFlowingFromReturnsNextFount)
> Once L{_SiphonFount.flowTo} has been called, ... ok
> test_siphonFlowingFromReturnsSelfFount 
> (tubes.test.test_tube.SeriesTests.test_siphonFlowingFromReturnsSelfFount)
> L{_SiphonDrain.flowingFrom} initially returns its L{_Siphon}'s ... ok
> test_siphonFlowingFromSomethingThenNothing 
> (tubes.test.test_tube.SeriesTests.test_siphonFlowingFromSomethingThenNothing)
> L{_SiphonDrain.flowingFrom} sets L{_SiphonDrain.fount}, whether it is ... ok
> test_siphonFountRepr (tubes.test.test_tube.SeriesTests.test_siphonFountRepr)
> repr for L{_SiphonFount} includes a reference to its tube. ... ok
> test_siphonReceiveCallsTubeReceived 
> (tubes.test.test_tube.SeriesTests.test_siphonReceiveCallsTubeReceived)
> L{_SiphonDrain.receive} will call C{tube.received} and synthesize a ... ok
> test_siphonRepr (tubes.test.test_tube.SeriesTests.test_siphonRepr)
> repr for L{_Siphon} includes a reference to its tube. ... ok
> test_startedFlowingToAnother 
> (tubes.test.test_tube.SeriesTests.test_startedFlowingToAnother)
> The greeting is relayed to the ultimate drain when a tube in the middle ... ok
> test_stopFlow (tubes.test.test_tube.SeriesTests.test_stopFlow)
> L{_SiphonFount.stopFlow} stops the flow of its L{_Siphon}'s upstream ... ok
> test_stopFlowBeforeFlowBegins 
> (tubes.test.test_tube.SeriesTests.test_stopFlowBeforeFlowBegins)
> L{_SiphonFount.stopFlow} will stop the flow of its L{_Siphon}'s ... ok
> test_stopFlowInterruptsStarted 
> (tubes.test.test_tube.SeriesTests.test_stopFlowInterruptsStarted)
> As per L{IFount.stopFlow}, a compliant L{fount <IFount>} never calls ... ok
> test_stopFlowStopsFlowImmediately 
> (tubes.test.test_tube.SeriesTests.test_stopFlowStopsFlowImmediately)
> Similar to L{test_stopFlowInterruptsStarted}, if the upstream fount ... ok
> test_stopFlowWhileStartingFlow 
> (tubes.test.test_tube.SeriesTests.test_stopFlowWhileStartingFlow)
> If a fount flowing to a tube calls C{flowStopped} in C{flowTo}, the ... ok
> test_tubeDiverting (tubes.test.test_tube.SeriesTests.test_tubeDiverting)
> The L{_Siphon} of a L{Tube} sends on data to a newly specified ... ok
> test_tubeDivertingControlsWhereOutputGoes 
> (tubes.test.test_tube.SeriesTests.test_tubeDivertingControlsWhereOutputGoes)
> If a siphon A with a tube Ap is flowing to a siphon B with a divertable ... ok
> test_tubeDivertingReassembly 
> (tubes.test.test_tube.SeriesTests.test_tubeDivertingReassembly)
> The L{_Siphon} of a L{Tube} sends on reassembled data - the return ... ok
> test_tubeDiverting_LotsOfStuffAtOnce 
> (tubes.test.test_tube.SeriesTests.test_tubeDiverting_LotsOfStuffAtOnce)
> If a tube returns a sequence of multiple things, great. ... ok
> test_tubeDiverting_ReEntrantResumeReceive 
> (tubes.test.test_tube.SeriesTests.test_tubeDiverting_ReEntrantResumeReceive)
> Diverting a tube that is receiving data from a fount which ... ok
> test_tubePausesItself (tubes.test.test_tube.SeriesTests.test_tubePausesItself)
> When one of the methods on L{Tube} pauses its own C{fount} or C{drain}, ... ok
> test_tubeReStarted (tubes.test.test_tube.SeriesTests.test_tubeReStarted)
> It's perfectly valid to take a L{_Siphon} and call C{flowingFrom} with ... ok
> test_tubeStarted (tubes.test.test_tube.SeriesTests.test_tubeStarted)
> The L{_Siphon} starts its L{Tube} upon C{flowingFrom}. ... ok
> test_tubeStopped (tubes.test.test_tube.SeriesTests.test_tubeStopped)
> The L{_Siphon} stops its L{Tube} and propagates C{flowStopped} ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> test_noOps (tubes.test.test_tube.TubeTests.test_noOps)
> All of L{Tube}'s implementations of L{ITube} are no-ops. ... ok
> test_provider (tubes.test.test_tube.TubeTests.test_provider)
> L{Tube} provides L{ITube}. ... ok
> test_fountToDeferred 
> (tubes.test.test_undefer.DeferredIntegrationTests.test_fountToDeferred)
> L{fountToDeferred} returns a L{Deferred} that fires with an iterable of ... ok
> test_tubeStoppedDeferredly 
> (tubes.test.test_undefer.DeferredIntegrationTests.test_tubeStoppedDeferredly)
> The L{_Siphon} stops its L{Tube} and propagates C{flowStopped} ... ok
> test_tubeYieldedDeferredFiresWhileFlowIsPaused 
> (tubes.test.test_undefer.DeferredIntegrationTests.test_tubeYieldedDeferredFiresWhileFlowIsPaused)
> When a L{Tube} yields an L{Deferred} and that L{Deferred} fires when ... ok
> test_tubeYieldsFiredDeferred 
> (tubes.test.test_undefer.DeferredIntegrationTests.test_tubeYieldsFiredDeferred)
> When a tube yields a fired L{Deferred} its result is synchronously ... ok
> test_tubeYieldsMultipleDeferreds 
> (tubes.test.test_undefer.DeferredIntegrationTests.test_tubeYieldsMultipleDeferreds)
> When a tube yields multiple deferreds their results should be delivered ... ok
> test_tubeYieldsUnfiredDeferred 
> (tubes.test.test_undefer.DeferredIntegrationTests.test_tubeYieldsUnfiredDeferred)
> When a tube yields an unfired L{Deferred} its result is asynchronously ... ok
> runTest (twisted.trial._synctest.SynchronousTestCase.runTest)
> If no C{methodName} argument is passed to the constructor, L{run} will ... ok
> 
> ----------------------------------------------------------------------
> Ran 274 tests in 0.106s
> 
> OK
> dh_auto_test: error: pybuild --test -i python{version} -p "3.12 3.11" 
> returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2023/12/12/python-tubes_0.2.1-3_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20231212;users=lu...@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20231212&fusertaguser=lu...@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.


Reply via email to