Your message dated Wed, 13 Dec 2023 13:49:40 +0000
with message-id <e1rdpck-00ckrg...@fasolo.debian.org>
and subject line Bug#1058166: fixed in python-tubes 0.2.1-4
has caused the Debian Bug report #1058166,
regarding python-tubes: FTBFS: AttributeError: 'RouterTests' object has no 
attribute 'assertEquals'. Did you mean: 'assertEqual'?
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1058166: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1058166
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
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.

--- End Message ---
--- Begin Message ---
Source: python-tubes
Source-Version: 0.2.1-4
Done: Andrius Merkys <mer...@debian.org>

We believe that the bug you reported is fixed in the latest version of
python-tubes, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1058...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Andrius Merkys <mer...@debian.org> (supplier of updated python-tubes package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Wed, 13 Dec 2023 08:26:09 -0500
Source: python-tubes
Architecture: source
Version: 0.2.1-4
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <team+pyt...@tracker.debian.org>
Changed-By: Andrius Merkys <mer...@debian.org>
Closes: 1056509 1058166
Changes:
 python-tubes (0.2.1-4) unstable; urgency=medium
 .
   * Fix deprecated assertEquals() (Closes: #1056509, #1058166)
Checksums-Sha1:
 9f05e3a7ad4fe764d7c456ae7bd1ead6cee6ec5a 2135 python-tubes_0.2.1-4.dsc
 a703bdaab0e87c7e67acac1c1c74030cdbbbb36d 6148 
python-tubes_0.2.1-4.debian.tar.xz
 bb0d038ea3fd2d6256d2fe25e0c560243fbc5ded 8240 
python-tubes_0.2.1-4_source.buildinfo
Checksums-Sha256:
 76636fae5c1dfbe4c95759ee44ab1af1e0456be11d6e7d42ed31fc21ac38560d 2135 
python-tubes_0.2.1-4.dsc
 77af891d1c55be88bb4f46035a5a0d99724bb5960ec2f52aa3af9748ef6a16ec 6148 
python-tubes_0.2.1-4.debian.tar.xz
 6e9b882cec446aa0d8933c625874f93d1e6ad028f8e3a207f08250d5557a0ce2 8240 
python-tubes_0.2.1-4_source.buildinfo
Files:
 4c618f5d46c3f624afe046884792095d 2135 python optional python-tubes_0.2.1-4.dsc
 d676cc3686d3562a64652298f49663f1 6148 python optional 
python-tubes_0.2.1-4.debian.tar.xz
 03d26e84f6db037c62e5214c038612b0 8240 python optional 
python-tubes_0.2.1-4_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQJGBAEBCgAwFiEEdyKS9veshfrgQdQe5fQ/nCc08ocFAmV5sgoSHG1lcmt5c0Bk
ZWJpYW4ub3JnAAoJEOX0P5wnNPKHRTUQAIb0zFVObf/+ajwR8RggNblH9kFWXO1J
OXsfIUCeq8GLxeXD/d54tIQWFtbJh+VSPjAUBJ9TuvML6rcJWQ9MpJHvbP63zNRB
HwKAJzwmFzqex6Ipr5+9pz9cFi2qcp+TBHK5KJaLnSecNhlEIFozmbj7UNf0pGRq
FJtJ/Dtr4nZF1XEr2xnN5Y7Dsfz3Rj4iJeIotN7C5C3xTDbH3bswu0+7aceYC+0m
YAFa6nwa/CLXU1G3dpsJJzUurSxUfGP7rrktfMaZ8J+Lp73EMwkVDF9LXJ0sUVlw
VP9GLgN3pM0FnqOBqn+yPypExjwcaxVumCJNg8QgPqd7UEMDX1smH7Oo5DiRtAWV
0VZFxHzK1Mi6AD4xy5D3OCUs/QK4BrP7+yTGND+p/xCFPaelDmiadSdXZ82WpEqo
IrHwM3EzWtBdQ6emidrUyHNTeSupYRDnrVgLnx5D6ChbZRscaYDhEOeFA1yG9W5p
eYGxh9J5MTD72V5133ez5V1Hvcbn6TTY71ciSMeztDcjKUaoskE0EPHgKtp7vn2e
ELTFyA1ULhmDXQDCn/56Zwz02kE3ao5XXPBF06RZ8Eyf/cOzKDzmr6X85rKuWYtl
fZ1F3YtjufRItp1mvPYb10MI18vpUUF0+eLm9/5MWsRyL57zRePLoSYK9zP0sAJR
ePrwi//Q4Q+w
=RAfg
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to