progval / Limnoria

A robust, full-featured, and user/programmer-friendly Python IRC bot, with many existing plugins.
https://docs.limnoria.net/
Other
619 stars 173 forks source link

RSS: Test failures and inconsistencies #1479

Closed wraeth closed 3 years ago

wraeth commented 3 years ago

When the RSS plugin is removed (rm -r plugins/RSS during unpack) and tests are run, 993 tests get run successfully:

Test output without RSS ``` >>> Source compiled. >>> Test phase: net-irc/limnoria-20210617-r1 * python3_9: running distutils-r1_run_phase python_test testAuth (NickAuth.test.NickAuthTestCase) ... ok testBotJoin (NickAuth.test.NickAuthTestCase) ... ok testList (NickAuth.test.NickAuthTestCase) ... ok testNoAuth (NickAuth.test.NickAuthTestCase) ... ok testUserJoin (NickAuth.test.NickAuthTestCase) ... ok testBinary (Filter.test.FilterTest) ... ok testColorize (Filter.test.FilterTest) ... ok testColorstrip (Filter.test.FilterTest) ... ok testDisabledCommandsCannotFilter (Filter.test.FilterTest) ... ok testGnu (Filter.test.FilterTest) ... ok testHebrew (Filter.test.FilterTest) ... ok testHexlifyUnhexlify (Filter.test.FilterTest) ... ok testJeffk (Filter.test.FilterTest) ... ok testMorse (Filter.test.FilterTest) ... ok testNoErrors (Filter.test.FilterTest) ... ok testOutfilter (Filter.test.FilterTest) ... ok testOutfilterAction (Filter.test.FilterTest) ... ok testReverse (Filter.test.FilterTest) ... ok testRot13 (Filter.test.FilterTest) ... ok testRot13HandlesNonAsciiStuff (Filter.test.FilterTest) ... ok testScramble (Filter.test.FilterTest) ... ok testShrink (Filter.test.FilterTest) ... ok testSpellit (Filter.test.FilterTest) ... ok testSquish (Filter.test.FilterTest) ... ok testUnbinary (Filter.test.FilterTest) ... ok testUndup (Filter.test.FilterTest) ... ok testUwu (Filter.test.FilterTest) ... ok testVowelrot (Filter.test.FilterTest) ... ok test00RemoveZero (Scheduler.test.SchedulerTestCase) ... ok testAddRemove (Scheduler.test.SchedulerTestCase) ... ok testRemind (Scheduler.test.SchedulerTestCase) ... ok testRepeat (Scheduler.test.SchedulerTestCase) ... ok testRepeatDelay (Scheduler.test.SchedulerTestCase) ... ok testRepeatDisallowsDuplicateNames (Scheduler.test.SchedulerTestCase) ... ok testRepeatDisallowsIntegerNames (Scheduler.test.SchedulerTestCase) ... ok testRepeatPersistence (Scheduler.test.SchedulerTestCase) ... ok testRepeatWorksWithNestedCommands (Scheduler.test.SchedulerTestCase) ... ok testSinglePersistence (Scheduler.test.SchedulerTestCase) ... ok testAction (Reply.test.ReplyNonChannelTestCase) ... ok testNotice (Reply.test.ReplyTestCase) ... ok testNoticePrivate (Reply.test.ReplyTestCase) ... ok testPrivate (Reply.test.ReplyTestCase) ... ok testReplies (Reply.test.ReplyTestCase) ... ok testAdd (MessageParser.test.MessageParserTestCase) ... ok testGroups (MessageParser.test.MessageParserTestCase) ... ok testInfo (MessageParser.test.MessageParserTestCase) ... ok testKeepRankInfo (MessageParser.test.MessageParserTestCase) ... ok testList (MessageParser.test.MessageParserTestCase) ... ok testLock (MessageParser.test.MessageParserTestCase) ... ok testMaxTriggers (MessageParser.test.MessageParserTestCase) ... ok testRank (MessageParser.test.MessageParserTestCase) ... ok testRemove (MessageParser.test.MessageParserTestCase) ... ok testShow (MessageParser.test.MessageParserTestCase) ... ok testTrigger (MessageParser.test.MessageParserTestCase) ... ok testUnlock (MessageParser.test.MessageParserTestCase) ... ok testVacuum (MessageParser.test.MessageParserTestCase) ... ok testAddFactoid (MoobotFactoids.test.FactoidsTestCase) ... ok testAddFactoidNotCalledWithBadNestingSyntax (MoobotFactoids.test.FactoidsTestCase) ... ok testAugmentFactoid (MoobotFactoids.test.FactoidsTestCase) ... ok testChangeFactoid (MoobotFactoids.test.FactoidsTestCase) ... ok testConfigShowFactoidIfOnlyOneMatch (MoobotFactoids.test.FactoidsTestCase) ... ok testFactinfo (MoobotFactoids.test.FactoidsTestCase) ... ok testGetFactoid (MoobotFactoids.test.FactoidsTestCase) ... ok testListauth (MoobotFactoids.test.FactoidsTestCase) ... ok testListkeys (MoobotFactoids.test.FactoidsTestCase) ... ok testListvalues (MoobotFactoids.test.FactoidsTestCase) ... ok testLiteral (MoobotFactoids.test.FactoidsTestCase) ... ok testLockUnlock (MoobotFactoids.test.FactoidsTestCase) ... ok testMost (MoobotFactoids.test.FactoidsTestCase) ... ok testNoResponseToCtcp (MoobotFactoids.test.FactoidsTestCase) ... ok testRandom (MoobotFactoids.test.FactoidsTestCase) ... ok testRegexpNotCalledIfAlreadyHandled (MoobotFactoids.test.FactoidsTestCase) ... ok testRemove (MoobotFactoids.test.FactoidsTestCase) ... ok testReplaceFactoid (MoobotFactoids.test.FactoidsTestCase) ... ok testAddFactoid (MoobotFactoids.test.NonChannelFactoidsTestCase) ... ok testPickOptions (MoobotFactoids.test.OptionListTestCase) ... ok testAdd (Praise.test.PraiseTestCase) ... ok testPraise (Praise.test.PraiseTestCase) ... ok testMultilineCommand (Owner.test.CommandsTestCase) ... ok testMultilineCommandDisabled (Owner.test.CommandsTestCase) ... ok testSimpleCommand (Owner.test.CommandsTestCase) ... ok testDefaultPluginErrorsWhenCommandNotInPlugin (Owner.test.OwnerTestCase) ... ok testDisable (Owner.test.OwnerTestCase) ... ok testEnable (Owner.test.OwnerTestCase) ... ok testEnableIsCaseInsensitive (Owner.test.OwnerTestCase) ... ok testFlush (Owner.test.OwnerTestCase) ... ok testHelpLog (Owner.test.OwnerTestCase) ... ok testIrcquote (Owner.test.OwnerTestCase) ... ok testLoad (Owner.test.OwnerTestCase) ... ok testReload (Owner.test.OwnerTestCase) ... ok testRename (Owner.test.OwnerTestCase) ... ok testRenameNested (Owner.test.OwnerTestCase) ... skipped 'Nested commands cannot be renamed yet.' testSrcAmbiguity (Owner.test.OwnerTestCase) ... ok testUnload (Owner.test.OwnerTestCase) ... ok testUpkeep (Owner.test.OwnerTestCase) ... ok testClear (Karma.test.KarmaTestCase) ... ok testIncreaseKarmaWithNickNotCallingInvalidCommand (Karma.test.KarmaTestCase) ... ok testKarma (Karma.test.KarmaTestCase) ... ok testKarmaMostDisplayConfigurable (Karma.test.KarmaTestCase) ... ok testKarmaOutputConfigurable (Karma.test.KarmaTestCase) ... ok testKarmaRankingDisplayConfigurable (Karma.test.KarmaTestCase) ... ok testMost (Karma.test.KarmaTestCase) ... ok testMultiWordKarma (Karma.test.KarmaTestCase) ... ok testOnlyNicks (Karma.test.KarmaTestCase) ... ok testSelfRating (Karma.test.KarmaTestCase) ... ok testSimpleOutput (Karma.test.KarmaTestCase) ... ok testUnaddressedKarma (Karma.test.KarmaTestCase) ... ok testApply (Utilities.test.UtilitiesTestCase) ... ok testCountargs (Utilities.test.UtilitiesTestCase) ... ok testEcho (Utilities.test.UtilitiesTestCase) ... ok testEchoDollarOneRepliesDollarOne (Utilities.test.UtilitiesTestCase) ... ok testEchoStandardSubstitute (Utilities.test.UtilitiesTestCase) ... ok testEchoStripCtcp (Utilities.test.UtilitiesTestCase) ... ok testIgnore (Utilities.test.UtilitiesTestCase) ... ok testLast (Utilities.test.UtilitiesTestCase) ... ok testLet (Utilities.test.UtilitiesTestCase) ... ok testSample (Utilities.test.UtilitiesTestCase) ... ok testShuffle (Utilities.test.UtilitiesTestCase) ... ok testSort (Utilities.test.UtilitiesTestCase) ... ok testSuccess (Utilities.test.UtilitiesTestCase) ... ok testNoResponse (Autocomplete.test.AutocompleteChannelTestCase) ... ok testResponse (Autocomplete.test.AutocompleteChannelTestCase) ... ok testCommandNameAndPluginName (Autocomplete.test.AutocompleteTestCase) ... ok testNextWord (Autocomplete.test.AutocompleteTestCase) ... ok testNoResponse (Autocomplete.test.AutocompleteTestCase) ... ok testResponse (Autocomplete.test.AutocompleteTestCase) ... ok testSingleCommandName (Autocomplete.test.AutocompleteTestCase) ... ok testSinglePluginName (Autocomplete.test.AutocompleteTestCase) ... ok testTwoResults (Autocomplete.test.AutocompleteTestCase) ... ok testShellForbidden (Debug.test.DebugTestCase) ... ok testActiveInactiveTodo (Todo.test.TodoTestCase) ... ok testAddtodo (Todo.test.TodoTestCase) ... ok testChangeTodo (Todo.test.TodoTestCase) ... ok testRemovetodo (Todo.test.TodoTestCase) ... ok testSearchtodo (Todo.test.TodoTestCase) ... ok testSetPriority (Todo.test.TodoTestCase) ... ok testTodo (Todo.test.TodoTestCase) ... ok testFeaturedNone (Fediverse.test.NetworklessFediverseTestCase) ... Testing began at Sun Jul 4 11:56:50 2021 (pid 94502) ok testFeaturedSome (Fediverse.test.NetworklessFediverseTestCase) ... ok testProfile (Fediverse.test.NetworklessFediverseTestCase) ... ok testProfileSnarfer (Fediverse.test.NetworklessFediverseTestCase) ... ok testProfileSnarferNoWebfinger (Fediverse.test.NetworklessFediverseTestCase) ... ok testProfileUnknown (Fediverse.test.NetworklessFediverseTestCase) ... ok testProfileUrlSnarfer (Fediverse.test.NetworklessFediverseTestCase) ... ok testSnarferType (Fediverse.test.NetworklessFediverseTestCase) ... ok testStatus (Fediverse.test.NetworklessFediverseTestCase) ... ok testStatusAttachment (Fediverse.test.NetworklessFediverseTestCase) ... ok testStatusError (Fediverse.test.NetworklessFediverseTestCase) ... ok testStatusUrlSnarfer (Fediverse.test.NetworklessFediverseTestCase) ... ok testStatusUrlSnarferDisabled (Fediverse.test.NetworklessFediverseTestCase) ... ok testStatusUrlSnarferErrors (Fediverse.test.NetworklessFediverseTestCase) ... ok testStatusUrlSnarferMore (Fediverse.test.NetworklessFediverseTestCase) ... ok testStatuses (Fediverse.test.NetworklessFediverseTestCase) ... ok testReplace (Quote.test.QuoteTestCase) ... ok testUnauthenticatedAdd (Quote.test.QuoteTestCase) ... ok testSuccess (Success.test.SuccessTestCase) ... ok testAlias (Factoids.test.FactoidsTestCase) ... ok testChangeFactoid (Factoids.test.FactoidsTestCase) ... ok testInfoReturnsRightNumber (Factoids.test.FactoidsTestCase) ... ok testInfoUsageCount (Factoids.test.FactoidsTestCase) ... ok testInvalidCommand (Factoids.test.FactoidsTestCase) ... ok testLearn (Factoids.test.FactoidsTestCase) ... ok testLearnSeparator (Factoids.test.FactoidsTestCase) ... ok testLock (Factoids.test.FactoidsTestCase) ... ok testNotZeroIndexed (Factoids.test.FactoidsTestCase) ... ok testQuoteHandling (Factoids.test.FactoidsTestCase) ... ok testRandomfactoid (Factoids.test.FactoidsTestCase) ... ok testRank (Factoids.test.FactoidsTestCase) ... ok testSearchFactoids (Factoids.test.FactoidsTestCase) ... ok testShowFactoidIfOnlyOneMatch (Factoids.test.FactoidsTestCase) ... ok testStandardSubstitute (Factoids.test.FactoidsTestCase) ... ok testWhatis (Factoids.test.FactoidsTestCase) ... ok testWhatisOnNumbers (Factoids.test.FactoidsTestCase) ... ok testGpgAuth (GPG.test.GPGTestCase) ... ok testEightball (Games.test.GamesTestCase) ... ok testRoulette (Games.test.GamesTestCase) ... ok testCountedPeriodic (test_schedule.TestSchedule) ... ok testPeriodic (test_schedule.TestSchedule) ... ok testReschedule (test_schedule.TestSchedule) ... ok testSchedule (test_schedule.TestSchedule) ... ok testJoinToManyChannels (test_conf.SupyConfTestCase) ... ok testJoinToOneChannel (test_conf.SupyConfTestCase) ... ok testCFooDoesNotRaise (test_firewall.FirewallTestCase) ... ok testDFooDoesNotRaise (test_firewall.FirewallTestCase) ... ok testEBarDoesNotRaise (test_firewall.FirewallTestCase) ... ok testEFooDoesNotRaise (test_firewall.FirewallTestCase) ... ok testFBarReturns2 (test_firewall.FirewallTestCase) ... ok testPluginCreate (test_plugin_create.PluginCreateNoninteractiveTestCase) ... Your new plugin template is in the TestPlugin directory. ok testPluginCreate (test_plugin_create.PluginCreatePartialArgsTestCase) ... ok testPluginCreate (test_plugin_create.PluginCreateTestCase) ... ok testLoadPluginModule (test_plugin.FunctionsTestCase) ... ok testAdd (test_ircdb.CapabilitySetTestCase) ... ok testCheck (test_ircdb.CapabilitySetTestCase) ... ok testContains (test_ircdb.CapabilitySetTestCase) ... ok testGeneral (test_ircdb.CapabilitySetTestCase) ... ok testReprEval (test_ircdb.CapabilitySetTestCase) ... ok testAntiChanFoo (test_ircdb.CheckCapabilityTestCase) ... ok testAntiFoo (test_ircdb.CheckCapabilityTestCase) ... ok testChanOpCountsAsEverything (test_ircdb.CheckCapabilityTestCase) ... ok testJustChanFoo (test_ircdb.CheckCapabilityTestCase) ... ok testJustFoo (test_ircdb.CheckCapabilityTestCase) ... ok testNothing (test_ircdb.CheckCapabilityTestCase) ... ok testNothingAgainstChannel (test_ircdb.CheckCapabilityTestCase) ... ok testOwner (test_ircdb.CheckCapabilityTestCase) ... ok testSecurefoo (test_ircdb.CheckCapabilityTestCase) ... ok testFromChannelCapability (test_ircdb.FunctionsTestCase) ... ok testInvertCapability (test_ircdb.FunctionsTestCase) ... ok testIsAntiCapability (test_ircdb.FunctionsTestCase) ... ok testIsChannelCapability (test_ircdb.FunctionsTestCase) ... ok testMakeAntiCapability (test_ircdb.FunctionsTestCase) ... ok testMakeChannelCapability (test_ircdb.FunctionsTestCase) ... ok testUnAntiCapability (test_ircdb.FunctionsTestCase) ... ok testCapabilities (test_ircdb.IrcChannelTestCase) ... ok testDefaultCapability (test_ircdb.IrcChannelTestCase) ... ok testIgnored (test_ircdb.IrcChannelTestCase) ... ok testInit (test_ircdb.IrcChannelTestCase) ... ok testLobotomized (test_ircdb.IrcChannelTestCase) ... ok testAddDisconnection (test_ircdb.IrcNetworkTestCase) ... ok testDefaults (test_ircdb.IrcNetworkTestCase) ... ok testPreserve (test_ircdb.IrcNetworkTestCase) ... ok testStsPolicy (test_ircdb.IrcNetworkTestCase) ... ok testAddhostmask (test_ircdb.IrcUserTestCase) ... ok testAuth (test_ircdb.IrcUserTestCase) ... ok testCapabilities (test_ircdb.IrcUserTestCase) ... ok testHashedPassword (test_ircdb.IrcUserTestCase) ... ok testHostmasks (test_ircdb.IrcUserTestCase) ... ok testIgnore (test_ircdb.IrcUserTestCase) ... ok testInitCapabilities (test_ircdb.IrcUserTestCase) ... ok testMultipleAuth (test_ircdb.IrcUserTestCase) ... ok testOwner (test_ircdb.IrcUserTestCase) ... ok testPassword (test_ircdb.IrcUserTestCase) ... ok testRemoveCapability (test_ircdb.IrcUserTestCase) ... ok testRemoveHostmask (test_ircdb.IrcUserTestCase) ... ok testTimeoutAuth (test_ircdb.IrcUserTestCase) ... ok testGetSetNetwork (test_ircdb.NetworksDictionaryTestCase) ... ok testPreserveOne (test_ircdb.NetworksDictionaryTestCase) ... ok testPreserveThree (test_ircdb.NetworksDictionaryTestCase) ... ok testAddRemoveUser (test_ircdb.PersistanceTestCase) ... ok testAddUser (test_ircdb.PersistanceTestCase) ... ok testOwner (test_ircdb.UserCapabilitySetTestCase) ... ok testOwnerHasAll (test_ircdb.UserCapabilitySetTestCase) ... ok testOwnerIsAlwaysPresent (test_ircdb.UserCapabilitySetTestCase) ... ok testReprEval (test_ircdb.UserCapabilitySetTestCase) ... ok testGetSetDelUser (test_ircdb.UsersDictionaryTestCase) ... ok testIterAndNumUsers (test_ircdb.UsersDictionaryTestCase) ... ok testExpiredStsPolicy (test_drivers.DriversTestCase) ... ok testRescheduledStsPolicy (test_drivers.DriversTestCase) ... ok testValidStsPolicy (test_drivers.DriversTestCase) ... ok testBan (test_ircmsgs.FunctionsTestCase) ... ok testBans (test_ircmsgs.FunctionsTestCase) ... ok testDehalfops (test_ircmsgs.FunctionsTestCase) ... ok testDeops (test_ircmsgs.FunctionsTestCase) ... ok testDevoices (test_ircmsgs.FunctionsTestCase) ... ok testHalfops (test_ircmsgs.FunctionsTestCase) ... ok testIsAction (test_ircmsgs.FunctionsTestCase) ... ok testIsActionFalseWhenNoSpaces (test_ircmsgs.FunctionsTestCase) ... ok testIsActionIsntStupid (test_ircmsgs.FunctionsTestCase) ... ok testIsCtcp (test_ircmsgs.FunctionsTestCase) ... ok testIsSplit (test_ircmsgs.FunctionsTestCase) ... ok testJoin (test_ircmsgs.FunctionsTestCase) ... ok testJoins (test_ircmsgs.FunctionsTestCase) ... ok testMode (test_ircmsgs.FunctionsTestCase) ... ok testOps (test_ircmsgs.FunctionsTestCase) ... ok testPrivmsg (test_ircmsgs.FunctionsTestCase) ... ok testQuit (test_ircmsgs.FunctionsTestCase) ... ok testUnAction (test_ircmsgs.FunctionsTestCase) ... ok testUnban (test_ircmsgs.FunctionsTestCase) ... ok testVoices (test_ircmsgs.FunctionsTestCase) ... ok testWhois (test_ircmsgs.FunctionsTestCase) ... ok testEq (test_ircmsgs.IrcMsgTestCase) ... ok testHashNotZero (test_ircmsgs.IrcMsgTestCase) ... ok testInit (test_ircmsgs.IrcMsgTestCase) ... ok testLen (test_ircmsgs.IrcMsgTestCase) ... ok testMalformedIrcMsgRaised (test_ircmsgs.IrcMsgTestCase) ... ok testMsgKeywordHandledProperly (test_ircmsgs.IrcMsgTestCase) ... ok testNe (test_ircmsgs.IrcMsgTestCase) ... ok testPickleCopy (test_ircmsgs.IrcMsgTestCase) ... ok testRepr (test_ircmsgs.IrcMsgTestCase) ... ok testServerTags (test_ircmsgs.IrcMsgTestCase) ... ok testSplit (test_ircmsgs.IrcMsgTestCase) ... ok testStr (test_ircmsgs.IrcMsgTestCase) ... ok testTags (test_ircmsgs.IrcMsgTestCase) ... ok testTime (test_ircmsgs.IrcMsgTestCase) ... ok testLines (test_utils.FileTest) ... ok testMktemp (test_utils.FileTest) ... ok testSanitizeName (test_utils.FileTest) ... ok testNormal (test_utils.FormatTestCase) ... ok testPercentL (test_utils.FormatTestCase) ... ok testAbbrev (test_utils.GenTest) ... ok testAbbrevFailsWithDups (test_utils.GenTest) ... ok testExnToString (test_utils.GenTest) ... ok testFindBinaryInPath (test_utils.GenTest) ... ok testInsensitivePreservingDict (test_utils.GenTest) ... ok testIterableMap (test_utils.GenTest) ... ok testSafeEval (test_utils.GenTest) ... ok testSafeEvalTurnsSyntaxErrorIntoValueError (test_utils.GenTest) ... ok testSaltHash (test_utils.GenTest) ... ok testSortBy (test_utils.GenTest) ... ok testSorted (test_utils.GenTest) ... ok testTimeElapsed (test_utils.GenTest) ... ok testAll (test_utils.IterTest) ... ok testAny (test_utils.IterTest) ... ok testFlatten (test_utils.IterTest) ... ok testIlen (test_utils.IterTest) ... ok testLimited (test_utils.IterTest) ... ok testPartition (test_utils.IterTest) ... ok testRandomChoice (test_utils.IterTest) ... ok testSplit (test_utils.IterTest) ... ok testInit (test_utils.MaxLengthQueueTestCase) ... ok testMaxLength (test_utils.MaxLengthQueueTestCase) ... ok testEmailRe (test_utils.NetTest) ... ok testIsIP (test_utils.NetTest) ... ok testIsIPV6 (test_utils.NetTest) ... ok testContains (test_utils.QueueTest) ... ok testEnqueueDequeue (test_utils.QueueTest) ... ok testEq (test_utils.QueueTest) ... ok testGetitem (test_utils.QueueTest) ... ok testInit (test_utils.QueueTest) ... ok testIter (test_utils.QueueTest) ... ok testLen (test_utils.QueueTest) ... ok testNonzero (test_utils.QueueTest) ... ok testPeek (test_utils.QueueTest) ... ok testPickleCopy (test_utils.QueueTest) ... ok testRepr (test_utils.QueueTest) ... ok testReset (test_utils.QueueTest) ... ok testSetitem (test_utils.QueueTest) ... ok testAppend (test_utils.RingBufferTestCase) ... ok testContains (test_utils.RingBufferTestCase) ... ok testEq (test_utils.RingBufferTestCase) ... ok testExtend (test_utils.RingBufferTestCase) ... ok testGetitem (test_utils.RingBufferTestCase) ... ok testInit (test_utils.RingBufferTestCase) ... ok testIter (test_utils.RingBufferTestCase) ... ok testLen (test_utils.RingBufferTestCase) ... ok testNonzero (test_utils.RingBufferTestCase) ... ok testPickleCopy (test_utils.RingBufferTestCase) ... ok testRepr (test_utils.RingBufferTestCase) ... ok testSetitem (test_utils.RingBufferTestCase) ... ok testSliceGetitem (test_utils.RingBufferTestCase) ... ok testSliceSetitem (test_utils.RingBufferTestCase) ... ok testRenumerate (test_utils.SeqTest) ... ok testWindow (test_utils.SeqTest) ... ok testContains (test_utils.SmallQueueTest) ... ok testEnqueueDequeue (test_utils.SmallQueueTest) ... ok testEq (test_utils.SmallQueueTest) ... ok testGetitem (test_utils.SmallQueueTest) ... ok testInit (test_utils.SmallQueueTest) ... ok testIter (test_utils.SmallQueueTest) ... ok testLen (test_utils.SmallQueueTest) ... ok testNonzero (test_utils.SmallQueueTest) ... ok testPeek (test_utils.SmallQueueTest) ... ok testPickleCopy (test_utils.SmallQueueTest) ... ok testRepr (test_utils.SmallQueueTest) ... ok testReset (test_utils.SmallQueueTest) ... ok testSetitem (test_utils.SmallQueueTest) ... ok testCommaAndify (test_utils.StrTest) ... ok testCommaAndifyConfig (test_utils.StrTest) ... ok testCommaAndifyRaisesTypeError (test_utils.StrTest) ... ok testDQRepr (test_utils.StrTest) ... ok testDepluralize (test_utils.StrTest) ... ok testDistance (test_utils.StrTest) ... ok testEllipsisify (test_utils.StrTest) ... ok testMatchCase (test_utils.StrTest) ... ok testMultipleRemover (test_utils.StrTest) ... ok testMultipleReplacer (test_utils.StrTest) ... ok testNItems (test_utils.StrTest) ... ok testNormalizeWhitespace (test_utils.StrTest) ... ok testOrdinal (test_utils.StrTest) ... ok testP2PReDifferentSeparator (test_utils.StrTest) ... ok testPReToReplacerDifferentSeparator (test_utils.StrTest) ... ok testPerlReToPythonRe (test_utils.StrTest) ... ok testPerlReToReplacer (test_utils.StrTest) ... ok testPerlReToReplacerBug850931 (test_utils.StrTest) ... ok testPluralize (test_utils.StrTest) ... ok testRsplit (test_utils.StrTest) ... ok testSoundex (test_utils.StrTest) ... ok testUnCommaThe (test_utils.StrTest) ... ok testMaxNeverExceeded (test_utils.TestCacheDict) ... ok testEquality (test_utils.TestExpiringDict) ... ok testExpire (test_utils.TestExpiringDict) ... ok testInit (test_utils.TestExpiringDict) ... ok testEquality (test_utils.TestTimeoutDict) ... ok testExpire (test_utils.TestTimeoutDict) ... ok testInit (test_utils.TestTimeoutDict) ... ok test (test_utils.TestTimeoutQueue) ... ok testCallableTimeout (test_utils.TestTimeoutQueue) ... ok testContains (test_utils.TestTimeoutQueue) ... ok testReset (test_utils.TestTimeoutQueue) ... ok testBasics (test_utils.TestTruncatableSet) ... ok testTruncate (test_utils.TestTruncatableSet) ... ok testTruncateUnion (test_utils.TestTruncatableSet) ... ok testDelitem (test_utils.TwoWayDictionaryTestCase) ... ok testInit (test_utils.TwoWayDictionaryTestCase) ... ok testSetitem (test_utils.TwoWayDictionaryTestCase) ... ok test_dict (test_utils.UtilsPythonTest) ... ok test_slots (test_utils.UtilsPythonTest) ... ok testReversed (test_utils.UtilsTest) ... ok testGetDomain (test_utils.WebTest) ... ok testEmail (test_commands.ConverterTestCase) ... ok testUrlAllowsHttps (test_commands.ConverterTestCase) ... ok testFirstConverterFailsAndNotErroredState (test_commands.FirstTestCase) ... ok testLongRegexp (test_commands.FirstTestCase) ... ok testRepr (test_commands.FirstTestCase) ... ok testAdditional (test_commands.GeneralContextTestCase) ... ok testAny (test_commands.GeneralContextTestCase) ... ok testChannelRespectsNetwork (test_commands.GeneralContextTestCase) ... ok testCommaList (test_commands.GeneralContextTestCase) ... ok testEmptySpec (test_commands.GeneralContextTestCase) ... ok testGetId (test_commands.GeneralContextTestCase) ... ok testGetopts (test_commands.GeneralContextTestCase) ... ok testGetoptsConflict (test_commands.GeneralContextTestCase) ... ok testGetoptsShort (test_commands.GeneralContextTestCase) ... ok testGlob (test_commands.GeneralContextTestCase) ... ok testLiteral (test_commands.GeneralContextTestCase) ... ok testMany (test_commands.GeneralContextTestCase) ... ok testOptional (test_commands.GeneralContextTestCase) ... ok testRestHandling (test_commands.GeneralContextTestCase) ... ok testRestRequiresArgs (test_commands.GeneralContextTestCase) ... ok testReverse (test_commands.GeneralContextTestCase) ... ok testSpecInt (test_commands.GeneralContextTestCase) ... ok testSpecNick (test_commands.GeneralContextTestCase) ... ok testGetoptsExact (test_commands.GetoptTestCase) ... ok testEscape (test_registry.FunctionsTestCase) ... ok testEscapeAndUnescapeAreInverses (test_registry.FunctionsTestCase) ... ok testJoin (test_registry.FunctionsTestCase) ... ok testJoinAndSplitAreInverses (test_registry.FunctionsTestCase) ... ok testSplit (test_registry.FunctionsTestCase) ... ok testUnescape (test_registry.FunctionsTestCase) ... ok testChild (test_registry.InheritanceTestCase) ... ok testPrivate (test_registry.SecurityTestCase) ... ok testBackslashesKeys (test_registry.ValuesTestCase) ... ok testBackslashesValues (test_registry.ValuesTestCase) ... ok testBoolean (test_registry.ValuesTestCase) ... ok testCommaSeparatedListOfStrings (test_registry.ValuesTestCase) ... ok testFloat (test_registry.ValuesTestCase) ... ok testInteger (test_registry.ValuesTestCase) ... ok testJson (test_registry.ValuesTestCase) ... ok testNormalizedString (test_registry.ValuesTestCase) ... ok testPositiveInteger (test_registry.ValuesTestCase) ... ok testRegexp (test_registry.ValuesTestCase) ... ok testRegexpDefaultString (test_registry.ValuesTestCase) ... ok testRegexpSetValue (test_registry.ValuesTestCase) ... ok testSpacesValues (test_registry.ValuesTestCase) ... ok testString (test_registry.ValuesTestCase) ... ok testStringSurroundedBySpaces (test_registry.ValuesTestCase) ... ok testWith (test_registry.ValuesTestCase) ... ok testFloatingPoint (test_format.FormatTestCase) ... ok test_t_acceptsNone (test_format.FormatTestCase) ... ok test (test_dynamicScope.TestDynamic) ... ok testCommonUsage (test_dynamicScope.TestDynamic) ... ok test_default_no_selected (test_yn.TestYn) ... ok test_default_yes_selected (test_yn.TestYn) ... ok test_no_selected_with_default_no (test_yn.TestYn) ... ok test_no_selected_with_default_yes (test_yn.TestYn) ... ok test_no_selected_without_defaults (test_yn.TestYn) ... ok test_yes_selected_with_default_no (test_yn.TestYn) ... ok test_yes_selected_with_default_yes (test_yn.TestYn) ... ok test_yes_selected_without_defaults (test_yn.TestYn) ... ok testBatchInterleaved (test_irclib.BatchTestCase) Make sure it's not possible for an unrelated message to be sent ... ok testQueueBatch (test_irclib.BatchTestCase) Basic operation of queueBatch ... ok testQueueBatchDuplicate (test_irclib.BatchTestCase) ... ok testQueueBatchEndPlus (test_irclib.BatchTestCase) ... ok testQueueBatchMismatchInner (test_irclib.BatchTestCase) ... ok testQueueBatchMismatchStartEnd (test_irclib.BatchTestCase) ... ok testQueueBatchReuse (test_irclib.BatchTestCase) We can reuse the same label after the batch is closed. ... ok testQueueBatchStartMinus (test_irclib.BatchTestCase) ... ok testQueueBatchTwice (test_irclib.BatchTestCase) Basic operation of queueBatch ... ok testAddUser (test_irclib.ChannelStateTestCase) ... ok testCopy (test_irclib.ChannelStateTestCase) ... ok testPickleCopy (test_irclib.ChannelStateTestCase) ... ok testDoCommand (test_irclib.IrcCallbackTestCase) ... ok testFirstCommands (test_irclib.IrcCallbackTestCase) ... ok testName (test_irclib.IrcCallbackTestCase) ... ok testCapNew (test_irclib.IrcCapsTestCase) ... ok testCapNewEchomessageLabeledResponse (test_irclib.IrcCapsTestCase) ... ok testEchomessageLabeledresponseGrouped (test_irclib.IrcCapsTestCase) ... ok testNoEchomessageWithoutLabeledresponse (test_irclib.IrcCapsTestCase) ... ok testReqLineLength (test_irclib.IrcCapsTestCase) ... ok testCommandDispatch (test_irclib.IrcCommandDispatcherTestCase) ... ok testCommandDispatchLegacy (test_irclib.IrcCommandDispatcherTestCase) Tests the legacy parameters of dispatchCommand, without the "args" ... ok testCommandDispatchMissingArgs (test_irclib.IrcCommandDispatcherTestCase) ... ok testSubCommandDispatch (test_irclib.IrcCommandDispatcherTestCase) ... ok testContains (test_irclib.IrcMsgQueueTestCase) ... ok testEmpty (test_irclib.IrcMsgQueueTestCase) ... ok testEnqueueDequeue (test_irclib.IrcMsgQueueTestCase) ... ok testInit (test_irclib.IrcMsgQueueTestCase) ... ok testJoinBeforeWho (test_irclib.IrcMsgQueueTestCase) ... ok testLen (test_irclib.IrcMsgQueueTestCase) ... ok testModeBeforePrivmsg (test_irclib.IrcMsgQueueTestCase) ... ok testNoIdenticals (test_irclib.IrcMsgQueueTestCase) ... ok testPrioritizing (test_irclib.IrcMsgQueueTestCase) ... ok testRepr (test_irclib.IrcMsgQueueTestCase) ... ok testTopicBeforePrivmsg (test_irclib.IrcMsgQueueTestCase) ... ok testAddMsgRemovesOpsProperly (test_irclib.IrcStateTestCase) ... ok testClientTagDenied (test_irclib.IrcStateTestCase) ... ok testCopy (test_irclib.IrcStateTestCase) ... ok testCopyCopiesChannels (test_irclib.IrcStateTestCase) ... ok testDoModeOnlyChannels (test_irclib.IrcStateTestCase) ... ok testEmptyTopic (test_irclib.IrcStateTestCase) ... ok testEq (test_irclib.IrcStateTestCase) ... ok testHandlesModes (test_irclib.IrcStateTestCase) ... ok testHistory (test_irclib.IrcStateTestCase) ... ok testIRCNet005 (test_irclib.IrcStateTestCase) ... ok testJoin (test_irclib.IrcStateTestCase) ... ok testKickRemovesChannel (test_irclib.IrcStateTestCase) ... ok testNickChangesChangeChannelUsers (test_irclib.IrcStateTestCase) ... ok testPickleCopy (test_irclib.IrcStateTestCase) ... ok testShort004 (test_irclib.IrcStateTestCase) ... ok testSupportedUmodes (test_irclib.IrcStateTestCase) ... ok testWasteland005 (test_irclib.IrcStateTestCase) ... ok test433Response (test_irclib.IrcTestCase) ... ok testBatch (test_irclib.IrcTestCase) ... ok testBatchNested (test_irclib.IrcTestCase) ... ok testHistory (test_irclib.IrcTestCase) ... ok testMsgChannel (test_irclib.IrcTestCase) ... ok testMultipleMotd (test_irclib.IrcTestCase) ... ok testNick (test_irclib.IrcTestCase) ... ok testNoMsgLongerThan512 (test_irclib.IrcTestCase) ... ok testPingResponse (test_irclib.IrcTestCase) ... ok testQuit (test_irclib.IrcTestCase) ... ok testReset (test_irclib.IrcTestCase) ... ok testSendBeforeQueue (test_irclib.IrcTestCase) ... ok testSetUmodes (test_irclib.IrcTestCase) ... ok testTruncate (test_irclib.IrcTestCase) ... ok testExternalFallbackToPlain (test_irclib.SaslTestCase) ... ok testFilter (test_irclib.SaslTestCase) ... ok testPlain (test_irclib.SaslTestCase) ... ok testReauthenticate (test_irclib.SaslTestCase) ... ok testStsInCleartextConnection (test_irclib.StsTestCase) ... ok testStsInCleartextConnectionInvalidDuration (test_irclib.StsTestCase) ... ok testStsInCleartextConnectionNoDuration (test_irclib.StsTestCase) ... ok testStsInInsecureTlsConnection (test_irclib.StsTestCase) ... ok testStsInSecureConnection (test_irclib.StsTestCase) ... ok testDecoder (test_ircutils.AuthenticateTestCase) ... ok testGenerator (test_ircutils.AuthenticateTestCase) ... ok testBanmask (test_ircutils.FunctionsTestCase) ... ok testBold (test_ircutils.FunctionsTestCase) ... ok testDccIpStuff (test_ircutils.FunctionsTestCase) ... ok testExpiringHostmaskDict (test_ircutils.FunctionsTestCase) ... ok testHostmaskPatternEqual (test_ircutils.FunctionsTestCase) ... ok testHostmaskSet (test_ircutils.FunctionsTestCase) ... ok testIsChannel (test_ircutils.FunctionsTestCase) ... ok testIsNick (test_ircutils.FunctionsTestCase) ... ok testIsNickNeverAllowsSpaces (test_ircutils.FunctionsTestCase) ... ok testIsUserHostmask (test_ircutils.FunctionsTestCase) ... ok testItalic (test_ircutils.FunctionsTestCase) ... ok testJoinModes (test_ircutils.FunctionsTestCase) ... ok testMircColor (test_ircutils.FunctionsTestCase) ... ok testNickFromHostmask (test_ircutils.FunctionsTestCase) ... ok testReplyTo (test_ircutils.FunctionsTestCase) ... ok testReverse (test_ircutils.FunctionsTestCase) ... ok testSafeArgument (test_ircutils.FunctionsTestCase) ... ok testSafeArgumentConvertsToString (test_ircutils.FunctionsTestCase) ... ok testSeparateModes (test_ircutils.FunctionsTestCase) ... ok testStandardSubstitute (test_ircutils.FunctionsTestCase) ... ok testStripBold (test_ircutils.FunctionsTestCase) ... ok testStripColor (test_ircutils.FunctionsTestCase) ... ok testStripFormatting (test_ircutils.FunctionsTestCase) ... ok testStripItalic (test_ircutils.FunctionsTestCase) ... ok testStripReverse (test_ircutils.FunctionsTestCase) ... ok testStripUnderline (test_ircutils.FunctionsTestCase) ... ok testToLower (test_ircutils.FunctionsTestCase) ... ok testUnderline (test_ircutils.FunctionsTestCase) ... ok testWrap (test_ircutils.FunctionsTestCase) ... ok test (test_ircutils.IrcDictTestCase) ... ok testContains (test_ircutils.IrcDictTestCase) ... ok testCopyable (test_ircutils.IrcDictTestCase) ... ok testGet (test_ircutils.IrcDictTestCase) ... ok testGetSetItem (test_ircutils.IrcDictTestCase) ... ok testKeys (test_ircutils.IrcDictTestCase) ... ok testSetdefault (test_ircutils.IrcDictTestCase) ... ok test (test_ircutils.IrcSetTestCase) ... ok testCopy (test_ircutils.IrcSetTestCase) ... ok testEquality (test_ircutils.IrcStringTestCase) ... ok testInequality (test_ircutils.IrcStringTestCase) ... ok testAuthorExpand (test_misc.MiscTestCase) ... ok testAuthorExpandShort (test_misc.MiscTestCase) ... ok testMakeChannelFilename (test_plugins.PluginsTestCase) ... ok testAmbiguityWithCommandSameNameAsPlugin (test_callbacks.AmbiguityTestCase) ... ok testAddressed (test_callbacks.FunctionsTestCase) ... ok testAddressedLegacy (test_callbacks.FunctionsTestCase) Checks callbacks.addressed still accepts the 'nick' argument ... ok testAddressedPrefixCharsTakePrecedenceOverNickAtEnd (test_callbacks.FunctionsTestCase) ... ok testAddressedReplyWhenNotAddressed (test_callbacks.FunctionsTestCase) ... ok testAddressedWithMultipleNicks (test_callbacks.FunctionsTestCase) ... ok testAddressedWithNickAtEnd (test_callbacks.FunctionsTestCase) ... ok testCanonicalName (test_callbacks.FunctionsTestCase) ... ok testReply (test_callbacks.FunctionsTestCase) ... ok testReplyStatusmsg (test_callbacks.FunctionsTestCase) ... ok testReplyTo (test_callbacks.FunctionsTestCase) ... ok testTokenize (test_callbacks.FunctionsTestCase) ... ok testReplyInstantBatchFull (test_callbacks.MultilinePrivmsgTestCase) ... ok testReplyInstantBatchFullMaxBytes (test_callbacks.MultilinePrivmsgTestCase) ... ok testReplyInstantBatchPartial (test_callbacks.MultilinePrivmsgTestCase) ... ok testReplyInstantBatchTags (test_callbacks.MultilinePrivmsgTestCase) ... ok testReplyInstantSingle (test_callbacks.MultilinePrivmsgTestCase) ... ok testNoEscapingArgumentError (test_callbacks.PluginRegexpTestCase) ... ok testAmbiguousError (test_callbacks.PrivmsgTestCase) ... ok testAmbiguousHelpError (test_callbacks.PrivmsgTestCase) ... ok testBadInvalidCommandDoesNotKillAll (test_callbacks.PrivmsgTestCase) ... ok testClientTagReply (test_callbacks.PrivmsgTestCase) ... ok testDefaultCommand (test_callbacks.PrivmsgTestCase) ... ok testDispatcherHelp (test_callbacks.PrivmsgTestCase) ... ok testDispatching (test_callbacks.PrivmsgTestCase) ... ok testEmptyNest (test_callbacks.PrivmsgTestCase) ... ok testEmptySquareBrackets (test_callbacks.PrivmsgTestCase) ... ok testErrorNoArgumentIsSilent (test_callbacks.PrivmsgTestCase) ... ok testErrorPrivateKwarg (test_callbacks.PrivmsgTestCase) ... ok testErrorReplyPrivate (test_callbacks.PrivmsgTestCase) ... ok testErrorWithNotice (test_callbacks.PrivmsgTestCase) ... ok testHelpDispatching (test_callbacks.PrivmsgTestCase) ... ok testInvalidCommandOneReplyOnly (test_callbacks.PrivmsgTestCase) ... ok testMaximumNestingDepth (test_callbacks.PrivmsgTestCase) ... ok testNoEscapingAttributeErrorFromTokenizeWithFirstElementList (test_callbacks.PrivmsgTestCase) ... ok testNotActionSecondReply (test_callbacks.PrivmsgTestCase) ... ok testReplyInstant (test_callbacks.PrivmsgTestCase) ... ok testReplyPrivate (test_callbacks.PrivmsgTestCase) ... ok testReplyWithNickPrefix (test_callbacks.PrivmsgTestCase) ... ok testSimpleReply (test_callbacks.PrivmsgTestCase) ... ok testSimpleReplyAction (test_callbacks.PrivmsgTestCase) ... ok testSyntaxErrorNotEscaping (test_callbacks.PrivmsgTestCase) ... ok test (test_callbacks.ProperStringificationOfReplyArgs) ... ok testHashing (test_callbacks.ProxyTestCase) ... ok testErrorNoCapability (test_callbacks.RichReplyMethodsTestCase) ... ok test (test_callbacks.SourceNestedPluginTestCase) ... ok testCommandSameNameAsNestedPlugin (test_callbacks.SourceNestedPluginTestCase) ... ok testBold (test_callbacks.TokenizerTestCase) ... ok testColor (test_callbacks.TokenizerTestCase) ... ok testDQsWithBackslash (test_callbacks.TokenizerTestCase) ... ok testDoubleQuotes (test_callbacks.TokenizerTestCase) ... ok testEmpty (test_callbacks.TokenizerTestCase) ... ok testError (test_callbacks.TokenizerTestCase) ... ok testMultipleSimpleWords (test_callbacks.TokenizerTestCase) ... ok testNesting (test_callbacks.TokenizerTestCase) ... ok testNullCharacter (test_callbacks.TokenizerTestCase) ... ok testPipe (test_callbacks.TokenizerTestCase) ... ok testQuoteConfiguration (test_callbacks.TokenizerTestCase) ... ok testQuotedWords (test_callbacks.TokenizerTestCase) ... ok testSingleDQInDQString (test_callbacks.TokenizerTestCase) ... ok testSingleQuotesNotQuotes (test_callbacks.TokenizerTestCase) ... ok testSingleWord (test_callbacks.TokenizerTestCase) ... ok testUnicode (test_callbacks.TokenizerTestCase) ... ok test (test_callbacks.WithPrivateNoticeTestCase) ... ok testWithNoticeWhenPrivateNotChannel (test_callbacks.WithPrivateNoticeTestCase) ... ok testDocstring (test_i18n.I18nTestCase) ... ok testPluginInternationalization (test_i18n.I18nTestCase) ... ok testStandardSubstitute (test_standardSubstitute.FunctionsTestCase) ... ok testChangeUsername (User.test.UserTestCase) ... ok testDisallowedUnregistration (User.test.UserTestCase) ... ok testHostmask (User.test.UserTestCase) ... ok testHostmaskList (User.test.UserTestCase) ... ok testHostmaskListHandlesEmptyListGracefully (User.test.UserTestCase) ... ok testHostmaskOverlap (User.test.UserTestCase) ... ok testHostmaskOverlapPrivacy (User.test.UserTestCase) ... ok testList (User.test.UserTestCase) ... ok testListHandlesCaps (User.test.UserTestCase) ... ok testRegisterNoPassword (User.test.UserTestCase) ... ok testRegisterPasswordLength (User.test.UserTestCase) ... ok testRegisterUnregister (User.test.UserTestCase) ... ok testSetpassword (User.test.UserTestCase) ... ok testStats (User.test.UserTestCase) ... ok testUserPluginAndUserList (User.test.UserTestCase) ... ok testActionReplace (SedRegex.test.SedRegexTestCase) ... ok testAllFlagsReplace (SedRegex.test.SedRegexTestCase) ... ok testBoldReplacement (SedRegex.test.SedRegexTestCase) ... ok testCaseInsensitiveReplace (SedRegex.test.SedRegexTestCase) ... ok testCaseNormalizationInRead (SedRegex.test.SedRegexTestCase) ... ok testCaseNormalizationInReplace (SedRegex.test.SedRegexTestCase) ... ok testExplicitOtherReplace (SedRegex.test.SedRegexTestCase) ... ok testGlobalCaseInsensitiveReplace (SedRegex.test.SedRegexTestCase) ... ok testGlobalReplace (SedRegex.test.SedRegexTestCase) ... ok testIgnoreRegexOnMessagesBeforeEnable (SedRegex.test.SedRegexTestCase) ... ok testIgnoreRegexWithBadCase (SedRegex.test.SedRegexTestCase) ... ok testIgnoreTextAfterTrailingSeparator (SedRegex.test.SedRegexTestCase) ... ok testMissingTrailingSeparator (SedRegex.test.SedRegexTestCase) ... ok testNoMatch (SedRegex.test.SedRegexTestCase) ... ok testNonSlashSeparator (SedRegex.test.SedRegexTestCase) ... ok testOnlySelfReplace (SedRegex.test.SedRegexTestCase) ... ok testOtherPersonActionReplace (SedRegex.test.SedRegexTestCase) ... ok testOtherPersonReplace (SedRegex.test.SedRegexTestCase) ... ok testReDoSTimeout (SedRegex.test.SedRegexTestCase) ... skipped 'Test requires multiprocessing to be enabled' testSeparatorPresentInNick (SedRegex.test.SedRegexTestCase) ... ok testSimpleReplace (SedRegex.test.SedRegexTestCase) ... ok testSlashInNicks (SedRegex.test.SedRegexTestCase) ... ok testWeirdSeparatorsFail (SedRegex.test.SedRegexTestCase) ... ok testAbs (Math.test.MathTestCase) ... ok testBase (Math.test.MathTestCase) ... ok testCalc (Math.test.MathTestCase) ... ok testCalcFloorWorksWithSqrt (Math.test.MathTestCase) ... ok testCalcImaginary (Math.test.MathTestCase) ... ok testCalcInvalidNode (Math.test.MathTestCase) ... ok testCalcMaxMin (Math.test.MathTestCase) ... ok testCalcMemoryError (Math.test.MathTestCase) ... ok testCalcNoNameError (Math.test.MathTestCase) ... ok testCalcStrFloat (Math.test.MathTestCase) ... ok testCaseInsensitive (Math.test.MathTestCase) ... ok testConvert (Math.test.MathTestCase) ... ok testConvertCaseSensitivity (Math.test.MathTestCase) ... ok testConvertSingularPlural (Math.test.MathTestCase) ... ok testICalc (Math.test.MathTestCase) ... ok testRpmNoSyntaxError (Math.test.MathTestCase) ... ok testRpn (Math.test.MathTestCase) ... ok testRpnSwap (Math.test.MathTestCase) ... ok testUnits (Math.test.MathTestCase) ... ok testBan (Channel.test.ChannelTestCase) ... ok testBanList (Channel.test.ChannelTestCase) ... ok testCanDevoiceSelf (Channel.test.ChannelTestCase) ... ok testCapabilities (Channel.test.ChannelTestCase) ... ok testEnableDisable (Channel.test.ChannelTestCase) ... ok testErrorsWithoutOps (Channel.test.ChannelTestCase) ... ok testHalfOp (Channel.test.ChannelTestCase) ... ok testIban (Channel.test.ChannelTestCase) ... ok testIgnore (Channel.test.ChannelTestCase) ... ok testLobotomies (Channel.test.ChannelTestCase) ... ok testNicks (Channel.test.ChannelTestCase) ... ok testOp (Channel.test.ChannelTestCase) ... ok testPart (Channel.test.ChannelTestCase) ... ok testUnban (Channel.test.ChannelTestCase) ... ok testVoice (Channel.test.ChannelTestCase) ... ok testWontDeItself (Channel.test.ChannelTestCase) ... ok testNonSnarfingRegexpConfigurable (Web.test.WebTestCase) ... ok testApropos (Misc.test.MiscTestCase) ... ok testAproposDoesntReturnNonCanonicalNames (Misc.test.MiscTestCase) ... ok testAproposIsNotCaseSensitive (Misc.test.MiscTestCase) ... ok testClearMores (Misc.test.MiscTestCase) ... ok testHelp (Misc.test.MiscTestCase) ... ok testHelpDoesAmbiguityWithDefaultPlugins (Misc.test.MiscTestCase) ... ok testHelpIncludeFullCommandName (Misc.test.MiscTestCase) ... ok testHelpIsCaseInsensitive (Misc.test.MiscTestCase) ... ok testInvalidCommand (Misc.test.MiscTestCase) ... ok testInvalidCommands (Misc.test.MiscTestCase) ... ok testLast (Misc.test.MiscTestCase) ... ok testList (Misc.test.MiscTestCase) ... ok testListDoesNotIncludeNonCanonicalName (Misc.test.MiscTestCase) ... ok testListIncludesDispatcherIfThereIsAnOriginalCommand (Misc.test.MiscTestCase) ... ok testListIsCaseInsensitive (Misc.test.MiscTestCase) ... ok testListNoIncludeDispatcher (Misc.test.MiscTestCase) ... ok testListPrivate (Misc.test.MiscTestCase) ... ok testListUnloaded (Misc.test.MiscTestCase) ... ok testMore (Misc.test.MiscTestCase) ... ok testMoreBatch (Misc.test.MiscTestCase) ... ok testMoreBatchMaxLines (Misc.test.MiscTestCase) ... ok testMoreIsCaseInsensitive (Misc.test.MiscTestCase) ... ok testMoreMores (Misc.test.MiscTestCase) ... ok testNestedLastNickConfig (Misc.test.MiscTestCase) ... ok testNestedLastTimestampConfig (Misc.test.MiscTestCase) ... ok testNoNestedTell (Misc.test.MiscTestCase) ... ok testNotReplyWhenNotCanonicalName (Misc.test.MiscTestCase) ... ok testPluginHelp (Misc.test.MiscTestCase) ... ok testReplyWhenNotCommand (Misc.test.MiscTestCase) ... ok testReplyWhenNotCommandButFirstCommandIsPluginName (Misc.test.MiscTestCase) ... ok testSource (Misc.test.MiscTestCase) ... ok testTell (Misc.test.MiscTestCase) ... ok testTellDoesNotPropogateAction (Misc.test.MiscTestCase) ... ok testDollarCommand (Dunno.test.DunnoTestCase) ... ok testDunnoAdd (Dunno.test.DunnoTestCase) ... ok testDunnoChange (Dunno.test.DunnoTestCase) ... ok testDunnoGet (Dunno.test.DunnoTestCase) ... ok testDunnoRemove (Dunno.test.DunnoTestCase) ... ok testDunnoSearch (Dunno.test.DunnoTestCase) ... ok testAdd (Lart.test.LartTestCase) ... ok testLart (Lart.test.LartTestCase) ... ok testMeInReason (Lart.test.LartTestCase) ... ok testLog (ChannelLogger.test.ChannelLoggerTestCase) ... ok testLogDir (ChannelLogger.test.ChannelLoggerTestCase) ... ok testLogName (ChannelLogger.test.ChannelLoggerTestCase) ... ok testLogNotice (ChannelLogger.test.ChannelLoggerTestCase) ... ok testLogPrivmsg (ChannelLogger.test.ChannelLoggerTestCase) ... ok testLogRewriteRelayedEmulatedEcho (ChannelLogger.test.ChannelLoggerTestCase) ... ok testLogRewriteRelayedEmulatedEchoNotRelayed (ChannelLogger.test.ChannelLoggerTestCase) ... ok testLogRewriteRelayedRealEcho (ChannelLogger.test.ChannelLoggerTestCase) ... ok testLogRewriteRelayedRealEchoNotRelayed (ChannelLogger.test.ChannelLoggerTestCase) ... ok testAdd (Topic.test.TopicTestCase) ... ok testChange (Topic.test.TopicTestCase) ... ok testConfig (Topic.test.TopicTestCase) ... ok testDefault (Topic.test.TopicTestCase) ... ok testFit (Topic.test.TopicTestCase) ... ok testGet (Topic.test.TopicTestCase) ... ok testInsert (Topic.test.TopicTestCase) ... ok testList (Topic.test.TopicTestCase) ... ok testManageCapabilities (Topic.test.TopicTestCase) ... ok testRefresh (Topic.test.TopicTestCase) ... ok testRemove (Topic.test.TopicTestCase) ... ok testRemoveMultiple (Topic.test.TopicTestCase) ... ok testReorder (Topic.test.TopicTestCase) ... ok testReplace (Topic.test.TopicTestCase) ... ok testRestore (Topic.test.TopicTestCase) ... ok testSeparator (Topic.test.TopicTestCase) ... ok testSet (Topic.test.TopicTestCase) ... ok testSwap (Topic.test.TopicTestCase) ... ok testTopic (Topic.test.TopicTestCase) ... ok testUndo (Topic.test.TopicTestCase) ... ok testUndoRedo (Topic.test.TopicTestCase) ... ok testChr (String.test.StringTestCase) ... ok testEncodeDecode (String.test.StringTestCase) ... ok testLen (String.test.StringTestCase) ... ok testMd5 (String.test.StringTestCase) ... ok testNoErrors (String.test.StringTestCase) ... ok testNotOverlongRe (String.test.StringTestCase) ... ok testOrd (String.test.StringTestCase) ... ok testRe (String.test.StringTestCase) ... ok testReBug850931 (String.test.StringTestCase) ... ok testReNoEscapingUnpackListOfWrongSize (String.test.StringTestCase) ... ok testReNotEmptyString (String.test.StringTestCase) ... ok testReWorksWithJustCaret (String.test.StringTestCase) ... ok testSoundex (String.test.StringTestCase) ... ok testUnicode (String.test.StringTestCase) ... ok testXor (String.test.StringTestCase) ... ok testRegisterRequireEmail (Services.test.ExperimentalServicesTestCase) ... ok testRegisterSuccess (Services.test.ExperimentalServicesTestCase) ... ok testRegisterSuccessBatch (Services.test.ExperimentalServicesTestCase) ... ok testRegisterSuccessEmail (Services.test.ExperimentalServicesTestCase) ... ok testRegisterSupportError (Services.test.ExperimentalServicesTestCase) ... ok testRegisterVerify (Services.test.ExperimentalServicesTestCase) ... ok testRegisterVerifyBatch (Services.test.ExperimentalServicesTestCase) ... ok testSingleNetwork (Services.test.JoinsBeforeIdentifiedTestCase) ... ok testMultipleNetworks (Services.test.NoJoinsUntilIdentifiedTestCase) ... ok testSingleNetwork (Services.test.NoJoinsUntilIdentifiedTestCase) ... ok testChanserv (Services.test.ServicesTestCase) ... ok testNickserv (Services.test.ServicesTestCase) ... ok testPasswordAndIdentify (Services.test.ServicesTestCase) ... ok testPasswordConfig (Services.test.ServicesTestCase) ... ok testRegisterNoExperimentalExtensions (Services.test.ServicesTestCase) ... ok testEnforceLimit (Limiter.test.LimiterTestCase) ... ok testCand (Conditional.test.ConditionalTestCase) ... ok testCeq (Conditional.test.ConditionalTestCase) ... ok testCif (Conditional.test.ConditionalTestCase) ... ok testCor (Conditional.test.ConditionalTestCase) ... ok testCxor (Conditional.test.ConditionalTestCase) ... ok testGe (Conditional.test.ConditionalTestCase) ... ok testGt (Conditional.test.ConditionalTestCase) ... ok testIferror (Conditional.test.ConditionalTestCase) ... ok testLe (Conditional.test.ConditionalTestCase) ... ok testLt (Conditional.test.ConditionalTestCase) ... ok testMatch (Conditional.test.ConditionalTestCase) ... ok testNceq (Conditional.test.ConditionalTestCase) ... ok testNe (Conditional.test.ConditionalTestCase) ... ok testNge (Conditional.test.ConditionalTestCase) ... ok testNgt (Conditional.test.ConditionalTestCase) ... ok testNle (Conditional.test.ConditionalTestCase) ... ok testNlt (Conditional.test.ConditionalTestCase) ... ok testNne (Conditional.test.ConditionalTestCase) ... ok testAcmd (Admin.test.AdminTestCase) ... ok testAddCapabilityOwner (Admin.test.AdminTestCase) ... ok testCapabilityAdd (Admin.test.AdminTestCase) ... ok testCapabilityRemove (Admin.test.AdminTestCase) ... ok testChannels (Admin.test.AdminTestCase) ... ok testIgnoreAddRemove (Admin.test.AdminTestCase) ... ok testIgnoreList (Admin.test.AdminTestCase) ... ok testJoin (Admin.test.AdminTestCase) ... ok testJoinOnOwnerInvite (Admin.test.AdminTestCase) ... ok testNick (Admin.test.AdminTestCase) ... ok testNoJoinOnUnprivilegedInvite (Admin.test.AdminTestCase) ... ok testChannel (Config.test.ConfigTestCase) ... ok testChannelInheritance (Config.test.ConfigTestCase) ... ok testChannelNetwork (Config.test.ConfigTestCase) ... ok testConfigErrors (Config.test.ConfigTestCase) ... ok testDefault (Config.test.ConfigTestCase) ... ok testGet (Config.test.ConfigTestCase) ... ok testHelp (Config.test.ConfigTestCase) ... ok testHelpDoesNotAssertionError (Config.test.ConfigTestCase) ... ok testHelpExhaustively (Config.test.ConfigTestCase) ... ok testList (Config.test.ConfigTestCase) ... ok testListExcludes (Config.test.ConfigTestCase) ... ok testNetwork (Config.test.ConfigTestCase) ... ok testOpEditable (Config.test.ConfigTestCase) ... ok testOpNonEditable (Config.test.ConfigTestCase) ... ok testReadOnly (Config.test.ConfigTestCase) ... ok testResetChannel (Config.test.ConfigTestCase) ... ok testResetNetwork (Config.test.ConfigTestCase) ... ok testResetRegexpChannel (Config.test.ConfigTestCase) ... ok testResetRegexpNetwork (Config.test.ConfigTestCase) ... ok testSearch (Config.test.ConfigTestCase) ... ok testSearchHelp (Config.test.ConfigTestCase) ... ok testSearchValues (Config.test.ConfigTestCase) ... ok testAddbadwords (BadWords.test.BadWordsTestCase) ... ok testDefault (BadWords.test.BadWordsTestCase) ... ok testList (BadWords.test.BadWordsTestCase) ... ok testRemovebadwords (BadWords.test.BadWordsTestCase) ... ok testBold (Format.test.FormatTestCase) ... ok testCapitalize (Format.test.FormatTestCase) ... ok testConcat (Format.test.FormatTestCase) ... ok testCut (Format.test.FormatTestCase) ... ok testField (Format.test.FormatTestCase) ... ok testFormat (Format.test.FormatTestCase) ... ok testJoin (Format.test.FormatTestCase) ... ok testLower (Format.test.FormatTestCase) ... ok testReplace (Format.test.FormatTestCase) ... ok testRepr (Format.test.FormatTestCase) ... ok testReverse (Format.test.FormatTestCase) ... ok testTitle (Format.test.FormatTestCase) ... ok testTranslate (Format.test.FormatTestCase) ... ok testUnderline (Format.test.FormatTestCase) ... ok testUpper (Format.test.FormatTestCase) ... ok testCommand (Network.test.NetworkTestCase) ... ok testNetworks (Network.test.NetworkTestCase) ... ok testList (Note.test.NoteTestCase) ... ok testNext (Note.test.NoteTestCase) ... ok testNote (Note.test.NoteTestCase) ... ok testSearch (Note.test.NoteTestCase) ... ok testSendnote (Note.test.NoteTestCase) ... ok testAny (Seen.test.ChannelDBTestCase) ... ok testNoKeyErrorEscapeFromSeen (Seen.test.ChannelDBTestCase) ... ok testSeen (Seen.test.ChannelDBTestCase) ... ok testSeenNoUser (Seen.test.ChannelDBTestCase) ... ok testAddRemoveAlias (Alias.test.AliasTestCase) ... ok testAliasHelp (Alias.test.AliasTestCase) ... ok testAllArgs (Alias.test.AliasTestCase) ... ok testChannel (Alias.test.AliasTestCase) ... ok testDoesNotOverwriteCommands (Alias.test.AliasTestCase) ... ok testDollars (Alias.test.AliasTestCase) ... ok testMoreDollars (Alias.test.AliasTestCase) ... ok testNick (Alias.test.AliasTestCase) ... ok testNoAliasWithNestedCommandName (Alias.test.AliasTestCase) ... ok testNoExtraQuotes (Alias.test.AliasTestCase) ... ok testNoExtraSpaces (Alias.test.AliasTestCase) ... ok testOptionalArgs (Alias.test.AliasTestCase) ... ok testRemove (Alias.test.AliasTestCase) ... ok testSimpleAliasWithoutArgsImpliesDollarStar (Alias.test.AliasTestCase) ... ok testUnicode (Alias.test.AliasTestCase) ... ok testAdd (Alias.test.EscapedAliasTestCase) ... ok testReadDatabase (Alias.test.EscapedAliasTestCase) ... ok testWriteDatabase (Alias.test.EscapedAliasTestCase) ... ok testFindBiggestDollar (Alias.test.FunctionsTest) ... ok testDDate (Time.test.TimeTestCase) ... skipped 'ddate is missing' testNoErrors (Time.test.TimeTestCase) ... ok testNoNestedErrors (Time.test.TimeTestCase) ... ok testSeconds (Time.test.TimeTestCase) ... ok testTztime (Time.test.TimeTestCase) ... ok testUntil (Time.test.TimeTestCase) ... ok test (URL.test.URLTestCase) ... ok testAction (URL.test.URLTestCase) ... ok testDefaultNotFancy (URL.test.URLTestCase) ... ok testStripsColors (URL.test.URLTestCase) ... ok testAddnews (News.test.NewsTestCase) ... ok testChangenews (News.test.NewsTestCase) ... ok testNews (News.test.NewsTestCase) ... ok testOldnews (News.test.NewsTestCase) ... ok testHostmask (Later.test.LaterTestCase) ... ok testLaterRemove (Later.test.LaterTestCase) ... ok testLaterUndo (Later.test.LaterTestCase) ... ok testLaterWorksTwice (Later.test.LaterTestCase) ... ok testNickValidation (Later.test.LaterTestCase) ... ok testNoteExpiry (Later.test.LaterTestCase) ... ok testNoteSend (Later.test.LaterTestCase) ... ok testSenderHostname (Later.test.LaterTestCase) ... ok testWildcard (Later.test.LaterTestCase) ... ok testHashes (Hashes.test.HashesTestCase) ... ok testMkhash (Hashes.test.HashesTestCase) ... ok testCmd (Status.test.StatusTestCase) ... ok testCommands (Status.test.StatusTestCase) ... ok testCpu (Status.test.StatusTestCase) ... ok testLogfilesize (Status.test.StatusTestCase) ... ok testNet (Status.test.StatusTestCase) ... ok testProcesses (Status.test.StatusTestCase) ... ok testThreads (Status.test.StatusTestCase) ... ok testUptime (Status.test.StatusTestCase) ... ok test (ChannelStats.test.ChannelStatsTestCase) ... ok testNoKeyErrorStats (ChannelStats.test.ChannelStatsTestCase) ... ok testRank (ChannelStats.test.ChannelStatsTestCase) ... ok testSelfStats (ChannelStats.test.ChannelStatsTestCase) ... ok testStats (ChannelStats.test.ChannelStatsTestCase) ... ok testCaseInsensitivity (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testDuplicateGrabs (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testGet (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testList (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testQuoteGrab (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testQuoteGrabReply (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testQuoteGrabReplyDisabled (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testRandom (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testSearch (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testUngrab (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testCaseInsensitivity (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testDuplicateGrabs (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testGet (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testList (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testQuoteGrab (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testQuoteGrabReply (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testQuoteGrabReplyDisabled (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testRandom (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testSearch (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testUngrab (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testAction (Anonymous.test.AnonymousTestCase) ... ok testReact (Anonymous.test.AnonymousTestCase) ... ok testReactClienttagdeny (Anonymous.test.AnonymousTestCase) ... ok testSay (Anonymous.test.AnonymousTestCase) ... ok testTell (Anonymous.test.AnonymousTestCase) ... ok testAuthor (Plugin.test.PluginTestCase) ... ok testContributors (Plugin.test.PluginTestCase) ... ok testContributorsIsCaseInsensitive (Plugin.test.PluginTestCase) ... ok testHelp (Plugin.test.PluginTestCase) ... ok testPlugin (Plugin.test.PluginTestCase) ... ok testPlugins (Plugin.test.PluginTestCase) ... ok testNickometer (Nickometer.test.NickometerTestCase) ... ok ---------------------------------------------------------------------- Ran 993 tests in 232.308s OK (skipped=3) ```

However when the RSS plugin is not removed, there is both an import error at the start of tests as well as a failure on testRemoveAliasedFeed, and only 542 tests get run:

Test output with RSS ``` >>> Source compiled. >>> Test phase: net-irc/limnoria-20210617-r1 * python3_9: running distutils-r1_run_phase python_test Failed to load plugin test:Traceback (most recent call last): File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/scripts/supybot-test", line 213, in pluginModule = plugin.loadPluginModule(pluginName) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugin.py", line 88, in loadPluginModule raise ImportError(name) ImportError: test (pluginDirs: ['/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins', '/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/..']) testAdd (MessageParser.test.MessageParserTestCase) ... ok testGroups (MessageParser.test.MessageParserTestCase) ... ok testInfo (MessageParser.test.MessageParserTestCase) ... ok testKeepRankInfo (MessageParser.test.MessageParserTestCase) ... ok testList (MessageParser.test.MessageParserTestCase) ... ok testLock (MessageParser.test.MessageParserTestCase) ... ok testMaxTriggers (MessageParser.test.MessageParserTestCase) ... ok testRank (MessageParser.test.MessageParserTestCase) ... ok testRemove (MessageParser.test.MessageParserTestCase) ... ok testShow (MessageParser.test.MessageParserTestCase) ... ok testTrigger (MessageParser.test.MessageParserTestCase) ... ok testUnlock (MessageParser.test.MessageParserTestCase) ... ok testVacuum (MessageParser.test.MessageParserTestCase) ... ok testAction (Anonymous.test.AnonymousTestCase) ... ok testReact (Anonymous.test.AnonymousTestCase) ... ok testReactClienttagdeny (Anonymous.test.AnonymousTestCase) ... ok testSay (Anonymous.test.AnonymousTestCase) ... ok testTell (Anonymous.test.AnonymousTestCase) ... ok testClear (Karma.test.KarmaTestCase) ... ok testIncreaseKarmaWithNickNotCallingInvalidCommand (Karma.test.KarmaTestCase) ... ok testKarma (Karma.test.KarmaTestCase) ... ok testKarmaMostDisplayConfigurable (Karma.test.KarmaTestCase) ... ok testKarmaOutputConfigurable (Karma.test.KarmaTestCase) ... ok testKarmaRankingDisplayConfigurable (Karma.test.KarmaTestCase) ... ok testMost (Karma.test.KarmaTestCase) ... ok testMultiWordKarma (Karma.test.KarmaTestCase) ... ok testOnlyNicks (Karma.test.KarmaTestCase) ... ok testSelfRating (Karma.test.KarmaTestCase) ... ok testSimpleOutput (Karma.test.KarmaTestCase) ... ok testUnaddressedKarma (Karma.test.KarmaTestCase) ... ok testGpgAuth (GPG.test.GPGTestCase) ... ok testBan (Channel.test.ChannelTestCase) ... ok testBanList (Channel.test.ChannelTestCase) ... ok testCanDevoiceSelf (Channel.test.ChannelTestCase) ... ok testCapabilities (Channel.test.ChannelTestCase) ... ok testEnableDisable (Channel.test.ChannelTestCase) ... ok testErrorsWithoutOps (Channel.test.ChannelTestCase) ... ok testHalfOp (Channel.test.ChannelTestCase) ... ok testIban (Channel.test.ChannelTestCase) ... ok testIgnore (Channel.test.ChannelTestCase) ... ok testLobotomies (Channel.test.ChannelTestCase) ... ok testNicks (Channel.test.ChannelTestCase) ... ok testOp (Channel.test.ChannelTestCase) ... ok testPart (Channel.test.ChannelTestCase) ... ok testUnban (Channel.test.ChannelTestCase) ... ok testVoice (Channel.test.ChannelTestCase) ... ok testWontDeItself (Channel.test.ChannelTestCase) ... ok testEnforceLimit (Limiter.test.LimiterTestCase) ... ok testHostmask (Later.test.LaterTestCase) ... ok testLaterRemove (Later.test.LaterTestCase) ... ok testLaterUndo (Later.test.LaterTestCase) ... ok testLaterWorksTwice (Later.test.LaterTestCase) ... ok testNickValidation (Later.test.LaterTestCase) ... ok testNoteExpiry (Later.test.LaterTestCase) ... ok testNoteSend (Later.test.LaterTestCase) ... ok testSenderHostname (Later.test.LaterTestCase) ... ok testWildcard (Later.test.LaterTestCase) ... ok testEightball (Games.test.GamesTestCase) ... ok testRoulette (Games.test.GamesTestCase) ... ok testHashes (Hashes.test.HashesTestCase) ... ok testMkhash (Hashes.test.HashesTestCase) ... ok testActiveInactiveTodo (Todo.test.TodoTestCase) ... ok testAddtodo (Todo.test.TodoTestCase) ... ok testChangeTodo (Todo.test.TodoTestCase) ... ok testRemovetodo (Todo.test.TodoTestCase) ... ok testSearchtodo (Todo.test.TodoTestCase) ... ok testSetPriority (Todo.test.TodoTestCase) ... ok testTodo (Todo.test.TodoTestCase) ... ok testChannel (Config.test.ConfigTestCase) ... ok testChannelInheritance (Config.test.ConfigTestCase) ... ok testChannelNetwork (Config.test.ConfigTestCase) ... ok testConfigErrors (Config.test.ConfigTestCase) ... ok testDefault (Config.test.ConfigTestCase) ... ok testGet (Config.test.ConfigTestCase) ... ok testHelp (Config.test.ConfigTestCase) ... ok testHelpDoesNotAssertionError (Config.test.ConfigTestCase) ... ok testHelpExhaustively (Config.test.ConfigTestCase) ... ok testList (Config.test.ConfigTestCase) ... ok testListExcludes (Config.test.ConfigTestCase) ... ok testNetwork (Config.test.ConfigTestCase) ... ok testOpEditable (Config.test.ConfigTestCase) ... ok testOpNonEditable (Config.test.ConfigTestCase) ... ok testReadOnly (Config.test.ConfigTestCase) ... ok testResetChannel (Config.test.ConfigTestCase) ... ok testResetNetwork (Config.test.ConfigTestCase) ... ok testResetRegexpChannel (Config.test.ConfigTestCase) ... ok testResetRegexpNetwork (Config.test.ConfigTestCase) ... ok testSearch (Config.test.ConfigTestCase) ... ok testSearchHelp (Config.test.ConfigTestCase) ... ok testSearchValues (Config.test.ConfigTestCase) ... ok testAction (Reply.test.ReplyNonChannelTestCase) ... ok testNotice (Reply.test.ReplyTestCase) ... ok testNoticePrivate (Reply.test.ReplyTestCase) ... ok testPrivate (Reply.test.ReplyTestCase) ... ok testReplies (Reply.test.ReplyTestCase) ... ok testAddbadwords (BadWords.test.BadWordsTestCase) ... ok testDefault (BadWords.test.BadWordsTestCase) ... ok testList (BadWords.test.BadWordsTestCase) ... ok testRemovebadwords (BadWords.test.BadWordsTestCase) ... ok testAcmd (Admin.test.AdminTestCase) ... ok testAddCapabilityOwner (Admin.test.AdminTestCase) ... ok testCapabilityAdd (Admin.test.AdminTestCase) ... ok testCapabilityRemove (Admin.test.AdminTestCase) ... ok testChannels (Admin.test.AdminTestCase) ... ok testIgnoreAddRemove (Admin.test.AdminTestCase) ... ok testIgnoreList (Admin.test.AdminTestCase) ... ok testJoin (Admin.test.AdminTestCase) ... ok testJoinOnOwnerInvite (Admin.test.AdminTestCase) ... ok testNick (Admin.test.AdminTestCase) ... ok testNoJoinOnUnprivilegedInvite (Admin.test.AdminTestCase) ... ok testShellForbidden (Debug.test.DebugTestCase) ... ok testMultilineCommand (Owner.test.CommandsTestCase) ... ok testMultilineCommandDisabled (Owner.test.CommandsTestCase) ... ok testSimpleCommand (Owner.test.CommandsTestCase) ... ok testDefaultPluginErrorsWhenCommandNotInPlugin (Owner.test.OwnerTestCase) ... ok testDisable (Owner.test.OwnerTestCase) ... ok testEnable (Owner.test.OwnerTestCase) ... ok testEnableIsCaseInsensitive (Owner.test.OwnerTestCase) ... ok testFlush (Owner.test.OwnerTestCase) ... ok testHelpLog (Owner.test.OwnerTestCase) ... ok testIrcquote (Owner.test.OwnerTestCase) ... ok testLoad (Owner.test.OwnerTestCase) ... ok testReload (Owner.test.OwnerTestCase) ... ok testRename (Owner.test.OwnerTestCase) ... ok testRenameNested (Owner.test.OwnerTestCase) ... skipped 'Nested commands cannot be renamed yet.' testSrcAmbiguity (Owner.test.OwnerTestCase) ... ok testUnload (Owner.test.OwnerTestCase) ... ok testUpkeep (Owner.test.OwnerTestCase) ... ok testAlias (Factoids.test.FactoidsTestCase) ... ok testChangeFactoid (Factoids.test.FactoidsTestCase) ... ok testInfoReturnsRightNumber (Factoids.test.FactoidsTestCase) ... ok testInfoUsageCount (Factoids.test.FactoidsTestCase) ... ok testInvalidCommand (Factoids.test.FactoidsTestCase) ... ok testLearn (Factoids.test.FactoidsTestCase) ... ok testLearnSeparator (Factoids.test.FactoidsTestCase) ... ok testLock (Factoids.test.FactoidsTestCase) ... ok testNotZeroIndexed (Factoids.test.FactoidsTestCase) ... ok testQuoteHandling (Factoids.test.FactoidsTestCase) ... ok testRandomfactoid (Factoids.test.FactoidsTestCase) ... ok testRank (Factoids.test.FactoidsTestCase) ... ok testSearchFactoids (Factoids.test.FactoidsTestCase) ... ok testShowFactoidIfOnlyOneMatch (Factoids.test.FactoidsTestCase) ... ok testStandardSubstitute (Factoids.test.FactoidsTestCase) ... ok testWhatis (Factoids.test.FactoidsTestCase) ... ok testWhatisOnNumbers (Factoids.test.FactoidsTestCase) ... ok testActionReplace (SedRegex.test.SedRegexTestCase) ... ok testAllFlagsReplace (SedRegex.test.SedRegexTestCase) ... ok testBoldReplacement (SedRegex.test.SedRegexTestCase) ... ok testCaseInsensitiveReplace (SedRegex.test.SedRegexTestCase) ... ok testCaseNormalizationInRead (SedRegex.test.SedRegexTestCase) ... ok testCaseNormalizationInReplace (SedRegex.test.SedRegexTestCase) ... ok testExplicitOtherReplace (SedRegex.test.SedRegexTestCase) ... ok testGlobalCaseInsensitiveReplace (SedRegex.test.SedRegexTestCase) ... ok testGlobalReplace (SedRegex.test.SedRegexTestCase) ... ok testIgnoreRegexOnMessagesBeforeEnable (SedRegex.test.SedRegexTestCase) ... ok testIgnoreRegexWithBadCase (SedRegex.test.SedRegexTestCase) ... ok testIgnoreTextAfterTrailingSeparator (SedRegex.test.SedRegexTestCase) ... ok testMissingTrailingSeparator (SedRegex.test.SedRegexTestCase) ... ok testNoMatch (SedRegex.test.SedRegexTestCase) ... ok testNonSlashSeparator (SedRegex.test.SedRegexTestCase) ... ok testOnlySelfReplace (SedRegex.test.SedRegexTestCase) ... ok testOtherPersonActionReplace (SedRegex.test.SedRegexTestCase) ... ok testOtherPersonReplace (SedRegex.test.SedRegexTestCase) ... ok testReDoSTimeout (SedRegex.test.SedRegexTestCase) ... skipped 'Test requires multiprocessing to be enabled' testSeparatorPresentInNick (SedRegex.test.SedRegexTestCase) ... ok testSimpleReplace (SedRegex.test.SedRegexTestCase) ... ok testSlashInNicks (SedRegex.test.SedRegexTestCase) ... ok testWeirdSeparatorsFail (SedRegex.test.SedRegexTestCase) ... ok testAdd (Praise.test.PraiseTestCase) ... ok testPraise (Praise.test.PraiseTestCase) ... ok testAdd (Topic.test.TopicTestCase) ... ok testChange (Topic.test.TopicTestCase) ... ok testConfig (Topic.test.TopicTestCase) ... ok testDefault (Topic.test.TopicTestCase) ... ok testFit (Topic.test.TopicTestCase) ... ok testGet (Topic.test.TopicTestCase) ... ok testInsert (Topic.test.TopicTestCase) ... ok testList (Topic.test.TopicTestCase) ... ok testManageCapabilities (Topic.test.TopicTestCase) ... ok testRefresh (Topic.test.TopicTestCase) ... ok testRemove (Topic.test.TopicTestCase) ... ok testRemoveMultiple (Topic.test.TopicTestCase) ... ok testReorder (Topic.test.TopicTestCase) ... ok testReplace (Topic.test.TopicTestCase) ... ok testRestore (Topic.test.TopicTestCase) ... ok testSeparator (Topic.test.TopicTestCase) ... ok testSet (Topic.test.TopicTestCase) ... ok testSwap (Topic.test.TopicTestCase) ... ok testTopic (Topic.test.TopicTestCase) ... ok testUndo (Topic.test.TopicTestCase) ... ok testUndoRedo (Topic.test.TopicTestCase) ... ok testAddFactoid (MoobotFactoids.test.FactoidsTestCase) ... ok testAddFactoidNotCalledWithBadNestingSyntax (MoobotFactoids.test.FactoidsTestCase) ... ok testAugmentFactoid (MoobotFactoids.test.FactoidsTestCase) ... ok testChangeFactoid (MoobotFactoids.test.FactoidsTestCase) ... ok testConfigShowFactoidIfOnlyOneMatch (MoobotFactoids.test.FactoidsTestCase) ... ok testFactinfo (MoobotFactoids.test.FactoidsTestCase) ... ok testGetFactoid (MoobotFactoids.test.FactoidsTestCase) ... ok testListauth (MoobotFactoids.test.FactoidsTestCase) ... ok testListkeys (MoobotFactoids.test.FactoidsTestCase) ... ok testListvalues (MoobotFactoids.test.FactoidsTestCase) ... ok testLiteral (MoobotFactoids.test.FactoidsTestCase) ... ok testLockUnlock (MoobotFactoids.test.FactoidsTestCase) ... ok testMost (MoobotFactoids.test.FactoidsTestCase) ... ok testNoResponseToCtcp (MoobotFactoids.test.FactoidsTestCase) ... ok testRandom (MoobotFactoids.test.FactoidsTestCase) ... ok testRegexpNotCalledIfAlreadyHandled (MoobotFactoids.test.FactoidsTestCase) ... ok testRemove (MoobotFactoids.test.FactoidsTestCase) ... ok testReplaceFactoid (MoobotFactoids.test.FactoidsTestCase) ... ok testAddFactoid (MoobotFactoids.test.NonChannelFactoidsTestCase) ... ok testPickOptions (MoobotFactoids.test.OptionListTestCase) ... ok testFeaturedNone (Fediverse.test.NetworklessFediverseTestCase) ... Testing began at Sun Jul 4 12:04:13 2021 (pid 99259) ok testFeaturedSome (Fediverse.test.NetworklessFediverseTestCase) ... ok testProfile (Fediverse.test.NetworklessFediverseTestCase) ... ok testProfileSnarfer (Fediverse.test.NetworklessFediverseTestCase) ... ok testProfileSnarferNoWebfinger (Fediverse.test.NetworklessFediverseTestCase) ... ok testProfileUnknown (Fediverse.test.NetworklessFediverseTestCase) ... ok testProfileUrlSnarfer (Fediverse.test.NetworklessFediverseTestCase) ... ok testSnarferType (Fediverse.test.NetworklessFediverseTestCase) ... ok testStatus (Fediverse.test.NetworklessFediverseTestCase) ... ok testStatusAttachment (Fediverse.test.NetworklessFediverseTestCase) ... ok testStatusError (Fediverse.test.NetworklessFediverseTestCase) ... ok testStatusUrlSnarfer (Fediverse.test.NetworklessFediverseTestCase) ... ok testStatusUrlSnarferDisabled (Fediverse.test.NetworklessFediverseTestCase) ... ok testStatusUrlSnarferErrors (Fediverse.test.NetworklessFediverseTestCase) ... ok testStatusUrlSnarferMore (Fediverse.test.NetworklessFediverseTestCase) ... ok testStatuses (Fediverse.test.NetworklessFediverseTestCase) ... ok test (URL.test.URLTestCase) ... ok testAction (URL.test.URLTestCase) ... ok testDefaultNotFancy (URL.test.URLTestCase) ... ok testStripsColors (URL.test.URLTestCase) ... ok testRegisterRequireEmail (Services.test.ExperimentalServicesTestCase) ... ok testRegisterSuccess (Services.test.ExperimentalServicesTestCase) ... ok testRegisterSuccessBatch (Services.test.ExperimentalServicesTestCase) ... ok testRegisterSuccessEmail (Services.test.ExperimentalServicesTestCase) ... ok testRegisterSupportError (Services.test.ExperimentalServicesTestCase) ... ok testRegisterVerify (Services.test.ExperimentalServicesTestCase) ... ok testRegisterVerifyBatch (Services.test.ExperimentalServicesTestCase) ... ok testSingleNetwork (Services.test.JoinsBeforeIdentifiedTestCase) ... ok testMultipleNetworks (Services.test.NoJoinsUntilIdentifiedTestCase) ... ok testSingleNetwork (Services.test.NoJoinsUntilIdentifiedTestCase) ... ok testChanserv (Services.test.ServicesTestCase) ... ok testNickserv (Services.test.ServicesTestCase) ... ok testPasswordAndIdentify (Services.test.ServicesTestCase) ... ok testPasswordConfig (Services.test.ServicesTestCase) ... ok testRegisterNoExperimentalExtensions (Services.test.ServicesTestCase) ... ok testAbs (Math.test.MathTestCase) ... ok testBase (Math.test.MathTestCase) ... ok testCalc (Math.test.MathTestCase) ... ok testCalcFloorWorksWithSqrt (Math.test.MathTestCase) ... ok testCalcImaginary (Math.test.MathTestCase) ... ok testCalcInvalidNode (Math.test.MathTestCase) ... ok testCalcMaxMin (Math.test.MathTestCase) ... ok testCalcMemoryError (Math.test.MathTestCase) ... ok testCalcNoNameError (Math.test.MathTestCase) ... ok testCalcStrFloat (Math.test.MathTestCase) ... ok testCaseInsensitive (Math.test.MathTestCase) ... ok testConvert (Math.test.MathTestCase) ... ok testConvertCaseSensitivity (Math.test.MathTestCase) ... ok testConvertSingularPlural (Math.test.MathTestCase) ... ok testICalc (Math.test.MathTestCase) ... ok testRpmNoSyntaxError (Math.test.MathTestCase) ... ok testRpn (Math.test.MathTestCase) ... ok testRpnSwap (Math.test.MathTestCase) ... ok testUnits (Math.test.MathTestCase) ... ok testDollarCommand (Dunno.test.DunnoTestCase) ... ok testDunnoAdd (Dunno.test.DunnoTestCase) ... ok testDunnoChange (Dunno.test.DunnoTestCase) ... ok testDunnoGet (Dunno.test.DunnoTestCase) ... ok testDunnoRemove (Dunno.test.DunnoTestCase) ... ok testDunnoSearch (Dunno.test.DunnoTestCase) ... ok testList (Note.test.NoteTestCase) ... ok testNext (Note.test.NoteTestCase) ... ok testNote (Note.test.NoteTestCase) ... ok testSearch (Note.test.NoteTestCase) ... ok testSendnote (Note.test.NoteTestCase) ... ok testAddRemoveAlias (Alias.test.AliasTestCase) ... ok testAliasHelp (Alias.test.AliasTestCase) ... ok testAllArgs (Alias.test.AliasTestCase) ... ok testChannel (Alias.test.AliasTestCase) ... ok testDoesNotOverwriteCommands (Alias.test.AliasTestCase) ... ok testDollars (Alias.test.AliasTestCase) ... ok testMoreDollars (Alias.test.AliasTestCase) ... ok testNick (Alias.test.AliasTestCase) ... ok testNoAliasWithNestedCommandName (Alias.test.AliasTestCase) ... ok testNoExtraQuotes (Alias.test.AliasTestCase) ... ok testNoExtraSpaces (Alias.test.AliasTestCase) ... ok testOptionalArgs (Alias.test.AliasTestCase) ... ok testRemove (Alias.test.AliasTestCase) ... ok testSimpleAliasWithoutArgsImpliesDollarStar (Alias.test.AliasTestCase) ... ok testUnicode (Alias.test.AliasTestCase) ... ok testAdd (Alias.test.EscapedAliasTestCase) ... ok testReadDatabase (Alias.test.EscapedAliasTestCase) ... ok testWriteDatabase (Alias.test.EscapedAliasTestCase) ... ok testFindBiggestDollar (Alias.test.FunctionsTest) ... ok test (ChannelStats.test.ChannelStatsTestCase) ... ok testNoKeyErrorStats (ChannelStats.test.ChannelStatsTestCase) ... ok testRank (ChannelStats.test.ChannelStatsTestCase) ... ok testSelfStats (ChannelStats.test.ChannelStatsTestCase) ... ok testStats (ChannelStats.test.ChannelStatsTestCase) ... ok testApropos (Misc.test.MiscTestCase) ... ok testAproposDoesntReturnNonCanonicalNames (Misc.test.MiscTestCase) ... ok testAproposIsNotCaseSensitive (Misc.test.MiscTestCase) ... ok testClearMores (Misc.test.MiscTestCase) ... ok testHelp (Misc.test.MiscTestCase) ... ok testHelpDoesAmbiguityWithDefaultPlugins (Misc.test.MiscTestCase) ... ok testHelpIncludeFullCommandName (Misc.test.MiscTestCase) ... ok testHelpIsCaseInsensitive (Misc.test.MiscTestCase) ... ok testInvalidCommand (Misc.test.MiscTestCase) ... ok testInvalidCommands (Misc.test.MiscTestCase) ... ok testLast (Misc.test.MiscTestCase) ... ok testList (Misc.test.MiscTestCase) ... ok testListDoesNotIncludeNonCanonicalName (Misc.test.MiscTestCase) ... ok testListIncludesDispatcherIfThereIsAnOriginalCommand (Misc.test.MiscTestCase) ... ok testListIsCaseInsensitive (Misc.test.MiscTestCase) ... ok testListNoIncludeDispatcher (Misc.test.MiscTestCase) ... ok testListPrivate (Misc.test.MiscTestCase) ... ok testListUnloaded (Misc.test.MiscTestCase) ... ok testMore (Misc.test.MiscTestCase) ... ok testMoreBatch (Misc.test.MiscTestCase) ... ok testMoreBatchMaxLines (Misc.test.MiscTestCase) ... ok testMoreIsCaseInsensitive (Misc.test.MiscTestCase) ... ok testMoreMores (Misc.test.MiscTestCase) ... ok testNestedLastNickConfig (Misc.test.MiscTestCase) ... ok testNestedLastTimestampConfig (Misc.test.MiscTestCase) ... ok testNoNestedTell (Misc.test.MiscTestCase) ... ok testNotReplyWhenNotCanonicalName (Misc.test.MiscTestCase) ... ok testPluginHelp (Misc.test.MiscTestCase) ... ok testReplyWhenNotCommand (Misc.test.MiscTestCase) ... ok testReplyWhenNotCommandButFirstCommandIsPluginName (Misc.test.MiscTestCase) ... ok testSource (Misc.test.MiscTestCase) ... ok testTell (Misc.test.MiscTestCase) ... ok testTellDoesNotPropogateAction (Misc.test.MiscTestCase) ... ok test00RemoveZero (Scheduler.test.SchedulerTestCase) ... ok testAddRemove (Scheduler.test.SchedulerTestCase) ... ok testRemind (Scheduler.test.SchedulerTestCase) ... ok testRepeat (Scheduler.test.SchedulerTestCase) ... ok testRepeatDelay (Scheduler.test.SchedulerTestCase) ... ok testRepeatDisallowsDuplicateNames (Scheduler.test.SchedulerTestCase) ... ok testRepeatDisallowsIntegerNames (Scheduler.test.SchedulerTestCase) ... ok testRepeatPersistence (Scheduler.test.SchedulerTestCase) ... ok testRepeatWorksWithNestedCommands (Scheduler.test.SchedulerTestCase) ... ok testSinglePersistence (Scheduler.test.SchedulerTestCase) ... ok testAny (Seen.test.ChannelDBTestCase) ... ok testNoKeyErrorEscapeFromSeen (Seen.test.ChannelDBTestCase) ... ok testSeen (Seen.test.ChannelDBTestCase) ... ok testSeenNoUser (Seen.test.ChannelDBTestCase) ... ok testCmd (Status.test.StatusTestCase) ... ok testCommands (Status.test.StatusTestCase) ... ok testCpu (Status.test.StatusTestCase) ... ok testLogfilesize (Status.test.StatusTestCase) ... ok testNet (Status.test.StatusTestCase) ... ok testProcesses (Status.test.StatusTestCase) ... ok testThreads (Status.test.StatusTestCase) ... ok testUptime (Status.test.StatusTestCase) ... ok testNonSnarfingRegexpConfigurable (Web.test.WebTestCase) ... ok testBinary (Filter.test.FilterTest) ... ok testColorize (Filter.test.FilterTest) ... ok testColorstrip (Filter.test.FilterTest) ... ok testDisabledCommandsCannotFilter (Filter.test.FilterTest) ... ok testGnu (Filter.test.FilterTest) ... ok testHebrew (Filter.test.FilterTest) ... ok testHexlifyUnhexlify (Filter.test.FilterTest) ... ok testJeffk (Filter.test.FilterTest) ... ok testMorse (Filter.test.FilterTest) ... ok testNoErrors (Filter.test.FilterTest) ... ok testOutfilter (Filter.test.FilterTest) ... ok testOutfilterAction (Filter.test.FilterTest) ... ok testReverse (Filter.test.FilterTest) ... ok testRot13 (Filter.test.FilterTest) ... ok testRot13HandlesNonAsciiStuff (Filter.test.FilterTest) ... ok testScramble (Filter.test.FilterTest) ... ok testShrink (Filter.test.FilterTest) ... ok testSpellit (Filter.test.FilterTest) ... ok testSquish (Filter.test.FilterTest) ... ok testUnbinary (Filter.test.FilterTest) ... ok testUndup (Filter.test.FilterTest) ... ok testUwu (Filter.test.FilterTest) ... ok testVowelrot (Filter.test.FilterTest) ... ok testBold (Format.test.FormatTestCase) ... ok testCapitalize (Format.test.FormatTestCase) ... ok testConcat (Format.test.FormatTestCase) ... ok testCut (Format.test.FormatTestCase) ... ok testField (Format.test.FormatTestCase) ... ok testFormat (Format.test.FormatTestCase) ... ok testJoin (Format.test.FormatTestCase) ... ok testLower (Format.test.FormatTestCase) ... ok testReplace (Format.test.FormatTestCase) ... ok testRepr (Format.test.FormatTestCase) ... ok testReverse (Format.test.FormatTestCase) ... ok testTitle (Format.test.FormatTestCase) ... ok testTranslate (Format.test.FormatTestCase) ... ok testUnderline (Format.test.FormatTestCase) ... ok testUpper (Format.test.FormatTestCase) ... ok testAnnounce (RSS.test.RSSTestCase) ... ok testAnnounceAnonymous (RSS.test.RSSTestCase) ... ok testAnnounceReload (RSS.test.RSSTestCase) ... ok testBadlyFormedFeedWithNoItems (RSS.test.RSSTestCase) ... ok testCantAddDuplicatedFeed (RSS.test.RSSTestCase) ... ok testCantAddFeedNamedRss (RSS.test.RSSTestCase) ... ok testCantRemoveMethodThatIsntFeed (RSS.test.RSSTestCase) ... ok testDescription (RSS.test.RSSTestCase) ... ok testFeedSpecificFormat (RSS.test.RSSTestCase) ... ok testFeedSpecificWaitPeriod (RSS.test.RSSTestCase) ... ok testInitialAnnounceNewest (RSS.test.RSSTestCase) ... ok testInitialAnnounceOldest (RSS.test.RSSTestCase) ... ok testMaxAnnounces (RSS.test.RSSTestCase) ... ok testNoInitialAnnounce (RSS.test.RSSTestCase) ... ok testReannounce (RSS.test.RSSTestCase) ... ok testReload (RSS.test.RSSTestCase) ... ok testReloadNoDelay (RSS.test.RSSTestCase) ... ok testRemoveAliasedFeed (RSS.test.RSSTestCase) ... Exception in thread Thread-240: Traceback (most recent call last): File "/usr/lib/python3.9/threading.py", line 973, in _bootstrap_inner Exception in thread Thread-241: Traceback (most recent call last): self.run() File "/usr/lib/python3.9/threading.py", line 910, in run File "/usr/lib/python3.9/threading.py", line 973, in _bootstrap_inner self._target(*self._args, **self._kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/plugin.py", line 90, in newf f(*args, **kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/plugin.py", line 403, in update_feeds self.run() File "/usr/lib/python3.9/threading.py", line 910, in run self.update_feed_if_needed(feed) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/plugin.py", line 383, in update_feed_if_needed self._target(*self._args, **self._kwargs) self.update_feed(feed) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/plugin.py", line 90, in newf File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/log.py", line 368, in m f(*args, **kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/plugin.py", line 403, in update_feeds return f(self, *args, **kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/plugin.py", line 357, in update_feed self.update_feed_if_needed(feed) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/plugin.py", line 383, in update_feed_if_needed d = feedparser.parse(feed.url, etag=feed.etag, File "/usr/lib/python3.9/site-packages/feedparser/api.py", line 216, in parse self.update_feed(feed) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/log.py", line 368, in m return f(self, *args, **kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/plugin.py", line 357, in update_feed data = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) File "/usr/lib/python3.9/site-packages/feedparser/api.py", line 115, in _open_resource d = feedparser.parse(feed.url, etag=feed.etag, File "/usr/lib/python3.9/site-packages/feedparser/api.py", line 216, in parse data = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) File "/usr/lib/python3.9/site-packages/feedparser/api.py", line 115, in _open_resource return http.get(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) File "/usr/lib/python3.9/site-packages/feedparser/http.py", line 172, in get return http.get(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) File "/usr/lib/python3.9/site-packages/feedparser/http.py", line 172, in get data = f.read() File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/test.py", line 65, in read data = f.read() File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/test.py", line 65, in read return self._data.encode() return self._data.encode() AttributeError: 'MockResponse' object has no attribute '_data' AttributeError: 'MockResponse' object has no attribute '_data' Exception in thread Thread-242: Traceback (most recent call last): File "/usr/lib/python3.9/threading.py", line 973, in _bootstrap_inner Exception in thread Thread-243: self.run() Traceback (most recent call last): File "/usr/lib/python3.9/threading.py", line 910, in run File "/usr/lib/python3.9/threading.py", line 973, in _bootstrap_inner self._target(*self._args, **self._kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/plugin.py", line 90, in newf self.run() File "/usr/lib/python3.9/threading.py", line 910, in run f(*args, **kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/plugin.py", line 403, in update_feeds self._target(*self._args, **self._kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/plugin.py", line 90, in newf self.update_feed_if_needed(feed) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/plugin.py", line 383, in update_feed_if_needed f(*args, **kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/plugin.py", line 403, in update_feeds self.update_feed(feed) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/log.py", line 368, in m self.update_feed_if_needed(feed) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/plugin.py", line 383, in update_feed_if_needed return f(self, *args, **kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/plugin.py", line 357, in update_feed self.update_feed(feed) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/log.py", line 368, in m d = feedparser.parse(feed.url, etag=feed.etag, File "/usr/lib/python3.9/site-packages/feedparser/api.py", line 216, in parse return f(self, *args, **kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/plugin.py", line 357, in update_feed data = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) File "/usr/lib/python3.9/site-packages/feedparser/api.py", line 115, in _open_resource d = feedparser.parse(feed.url, etag=feed.etag, File "/usr/lib/python3.9/site-packages/feedparser/api.py", line 216, in parse return http.get(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) File "/usr/lib/python3.9/site-packages/feedparser/http.py", line 172, in get data = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) File "/usr/lib/python3.9/site-packages/feedparser/api.py", line 115, in _open_resource data = f.read() File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/test.py", line 65, in read return http.get(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) File "/usr/lib/python3.9/site-packages/feedparser/http.py", line 172, in get return self._data.encode() AttributeError: 'MockResponse' object has no attribute '_data' data = f.read() File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugins/RSS/test.py", line 65, in read return self._data.encode() AttributeError: 'MockResponse' object has no attribute '_data' ok testRssAddBadName (RSS.test.RSSTestCase) ... ok testAddnews (News.test.NewsTestCase) ... ok testChangenews (News.test.NewsTestCase) ... ok testNews (News.test.NewsTestCase) ... ok testOldnews (News.test.NewsTestCase) ... ok testNoResponse (Autocomplete.test.AutocompleteChannelTestCase) ... ok testResponse (Autocomplete.test.AutocompleteChannelTestCase) ... ok testCommandNameAndPluginName (Autocomplete.test.AutocompleteTestCase) ... ok testNextWord (Autocomplete.test.AutocompleteTestCase) ... ok testNoResponse (Autocomplete.test.AutocompleteTestCase) ... ok testResponse (Autocomplete.test.AutocompleteTestCase) ... ok testSingleCommandName (Autocomplete.test.AutocompleteTestCase) ... ok testSinglePluginName (Autocomplete.test.AutocompleteTestCase) ... ok testTwoResults (Autocomplete.test.AutocompleteTestCase) ... ok testLog (ChannelLogger.test.ChannelLoggerTestCase) ... ok testLogDir (ChannelLogger.test.ChannelLoggerTestCase) ... ok testLogName (ChannelLogger.test.ChannelLoggerTestCase) ... ok testLogNotice (ChannelLogger.test.ChannelLoggerTestCase) ... ok testLogPrivmsg (ChannelLogger.test.ChannelLoggerTestCase) ... ok testLogRewriteRelayedEmulatedEcho (ChannelLogger.test.ChannelLoggerTestCase) ... ok testLogRewriteRelayedEmulatedEchoNotRelayed (ChannelLogger.test.ChannelLoggerTestCase) ... ok testLogRewriteRelayedRealEcho (ChannelLogger.test.ChannelLoggerTestCase) ... ok testLogRewriteRelayedRealEchoNotRelayed (ChannelLogger.test.ChannelLoggerTestCase) ... ok testSuccess (Success.test.SuccessTestCase) ... ok testAdd (Lart.test.LartTestCase) ... ok testLart (Lart.test.LartTestCase) ... ok testMeInReason (Lart.test.LartTestCase) ... ok testAuthor (Plugin.test.PluginTestCase) ... ok testContributors (Plugin.test.PluginTestCase) ... ok testContributorsIsCaseInsensitive (Plugin.test.PluginTestCase) ... ok testHelp (Plugin.test.PluginTestCase) ... ok testPlugin (Plugin.test.PluginTestCase) ... ok testPlugins (Plugin.test.PluginTestCase) ... ok testReplace (Quote.test.QuoteTestCase) ... ok testUnauthenticatedAdd (Quote.test.QuoteTestCase) ... ok testChangeUsername (User.test.UserTestCase) ... ok testDisallowedUnregistration (User.test.UserTestCase) ... ok testHostmask (User.test.UserTestCase) ... ok testHostmaskList (User.test.UserTestCase) ... ok testHostmaskListHandlesEmptyListGracefully (User.test.UserTestCase) ... ok testHostmaskOverlap (User.test.UserTestCase) ... ok testHostmaskOverlapPrivacy (User.test.UserTestCase) ... ok testList (User.test.UserTestCase) ... ok testListHandlesCaps (User.test.UserTestCase) ... ok testRegisterNoPassword (User.test.UserTestCase) ... ok testRegisterPasswordLength (User.test.UserTestCase) ... ok testRegisterUnregister (User.test.UserTestCase) ... ok testSetpassword (User.test.UserTestCase) ... ok testStats (User.test.UserTestCase) ... ok testUserPluginAndUserList (User.test.UserTestCase) ... ok testCommand (Network.test.NetworkTestCase) ... ok testNetworks (Network.test.NetworkTestCase) ... ok testCand (Conditional.test.ConditionalTestCase) ... ok testCeq (Conditional.test.ConditionalTestCase) ... ok testCif (Conditional.test.ConditionalTestCase) ... ok testCor (Conditional.test.ConditionalTestCase) ... ok testCxor (Conditional.test.ConditionalTestCase) ... ok testGe (Conditional.test.ConditionalTestCase) ... ok testGt (Conditional.test.ConditionalTestCase) ... ok testIferror (Conditional.test.ConditionalTestCase) ... ok testLe (Conditional.test.ConditionalTestCase) ... ok testLt (Conditional.test.ConditionalTestCase) ... ok testMatch (Conditional.test.ConditionalTestCase) ... ok testNceq (Conditional.test.ConditionalTestCase) ... ok testNe (Conditional.test.ConditionalTestCase) ... ok testNge (Conditional.test.ConditionalTestCase) ... ok testNgt (Conditional.test.ConditionalTestCase) ... ok testNle (Conditional.test.ConditionalTestCase) ... ok testNlt (Conditional.test.ConditionalTestCase) ... ok testNne (Conditional.test.ConditionalTestCase) ... ok testNickometer (Nickometer.test.NickometerTestCase) ... ok testCaseInsensitivity (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testDuplicateGrabs (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testGet (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testList (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testQuoteGrab (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testQuoteGrabReply (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testQuoteGrabReplyDisabled (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testRandom (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testSearch (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testUngrab (QuoteGrabs.test.QuoteGrabsNonChannelTestCase) ... ok testCaseInsensitivity (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testDuplicateGrabs (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testGet (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testList (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testQuoteGrab (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testQuoteGrabReply (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testQuoteGrabReplyDisabled (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testRandom (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testSearch (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testUngrab (QuoteGrabs.test.QuoteGrabsTestCase) ... ok testChr (String.test.StringTestCase) ... ok testEncodeDecode (String.test.StringTestCase) ... ok testLen (String.test.StringTestCase) ... ok testMd5 (String.test.StringTestCase) ... ok testNoErrors (String.test.StringTestCase) ... ok testNotOverlongRe (String.test.StringTestCase) ... ok testOrd (String.test.StringTestCase) ... ok testRe (String.test.StringTestCase) ... ok testReBug850931 (String.test.StringTestCase) ... ok testReNoEscapingUnpackListOfWrongSize (String.test.StringTestCase) ... ok testReNotEmptyString (String.test.StringTestCase) ... ok testReWorksWithJustCaret (String.test.StringTestCase) ... ok testSoundex (String.test.StringTestCase) ... ok testUnicode (String.test.StringTestCase) ... ok testXor (String.test.StringTestCase) ... ok testAuth (NickAuth.test.NickAuthTestCase) ... ok testBotJoin (NickAuth.test.NickAuthTestCase) ... ok testList (NickAuth.test.NickAuthTestCase) ... ok testNoAuth (NickAuth.test.NickAuthTestCase) ... ok testUserJoin (NickAuth.test.NickAuthTestCase) ... ok testApply (Utilities.test.UtilitiesTestCase) ... ok testCountargs (Utilities.test.UtilitiesTestCase) ... ok testEcho (Utilities.test.UtilitiesTestCase) ... ok testEchoDollarOneRepliesDollarOne (Utilities.test.UtilitiesTestCase) ... ok testEchoStandardSubstitute (Utilities.test.UtilitiesTestCase) ... ok testEchoStripCtcp (Utilities.test.UtilitiesTestCase) ... ok testIgnore (Utilities.test.UtilitiesTestCase) ... ok testLast (Utilities.test.UtilitiesTestCase) ... ok testLet (Utilities.test.UtilitiesTestCase) ... ok testSample (Utilities.test.UtilitiesTestCase) ... ok testShuffle (Utilities.test.UtilitiesTestCase) ... ok testSort (Utilities.test.UtilitiesTestCase) ... ok testSuccess (Utilities.test.UtilitiesTestCase) ... ok testDDate (Time.test.TimeTestCase) ... skipped 'ddate is missing' testNoErrors (Time.test.TimeTestCase) ... ok testNoNestedErrors (Time.test.TimeTestCase) ... ok testSeconds (Time.test.TimeTestCase) ... ok testTztime (Time.test.TimeTestCase) ... ok testUntil (Time.test.TimeTestCase) ... ok ---------------------------------------------------------------------- Ran 542 tests in 230.829s OK (skipped=3) * python3_9: running distutils-r1_run_phase _distutils-r1_clean_egg_info >>> Completed testing net-irc/limnoria-20210617-r1 ```

For some reason, the import error caused by the RSS plugin being present causes a significant number of other tests to not be loaded/run, as well as there being an actual test failure in the RSS plugin. Despite the issues during tests, the RSS plugin, and the bot generally, appear to function normally.

jlu5 commented 3 years ago

What's the rationale for dropping a built-in plugin? I'm not sure what your packaging scripts look like exactly, but the first error in the second traceback:

Failed to load plugin test:Traceback (most recent call last):
  File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/scripts/supybot-test", line 213, in <module>
    pluginModule = plugin.loadPluginModule(pluginName)
  File "/var/tmp/portage/net-irc/limnoria-20210617-r1/work/Limnoria-master-2021-06-17-python3_9/lib/supybot/plugin.py", line 88, in loadPluginModule
    raise ImportError(name)
ImportError: test

would be why so many tests aren't being missed. That "test" package includes all the tests for Limnoria's core, i.e. stuff outside the pre-packaged plugins.

wraeth commented 3 years ago

What's the rationale for dropping a built-in plugin?

I wasn't involved and don't have specifics, but the packaging comment notes it was causing a conflict involving libxml2 and feedparser. I don't believe that issue exists any more and would like to include RSS again, but would rather not break tests in doing so.

That "test" package includes all the tests for Limnoria's core, i.e. stuff outside the pre-packaged plugins.

That makes sense as far as why so many tests go missing, but still odd that having the RSS plugin present causes the core tests to generate an exception during import. Literally the only difference between the two cases is the removal of rm -r plugins/RSS.

progval commented 3 years ago

Could you check on your end that test/__init__.py still exists the moment supybot-test is run?

wraeth commented 3 years ago

Could you check on your end that test/__init__.py still exists the moment supybot-test is run?

Aha, that pointed me in the right direction - it wasn't! I won't go into details since it's distro-specific, but in removing the function that ran rm (since that's all the function did) it triggered different behaviour in the package manager. The presence of the function triggered different behaviour.

I've worked around that issue so all tests are being run again, however testRemoveAliasedFeed is still raising an exception, and that exception isn't caught as a test failure:

Ran 1012 tests in 245.733s

OK (skipped=3)
Test exception ``` testRemoveAliasedFeed (RSS.test.RSSTestCase) ... Exception in thread Thread-240: Traceback (most recent call last): File "/usr/lib/python3.9/threading.py", line 973, in _bootstrap_inner self.run() File "/usr/lib/python3.9/threading.py", line 910, in run self._target(*self._args, **self._kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/plugins/RSS/plugin.py", line 90, in newf f(*args, **kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/plugins/RSS/plugin.py", line 403, in update_feeds Exception in thread Thread-241: Traceback (most recent call last): File "/usr/lib/python3.9/threading.py", line 973, in _bootstrap_inner self.update_feed_if_needed(feed) File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/plugins/RSS/plugin.py", line 383, in update_feed_if_needed self.update_feed(feed) File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/log.py", line 368, in m self.run() return f(self, *args, **kwargs) File "/usr/lib/python3.9/threading.py", line 910, in run File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/plugins/RSS/plugin.py", line 357, in update_feed self._target(*self._args, **self._kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/plugins/RSS/plugin.py", line 90, in newf d = feedparser.parse(feed.url, etag=feed.etag, File "/usr/lib/python3.9/site-packages/feedparser/api.py", line 216, in parse data = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) File "/usr/lib/python3.9/site-packages/feedparser/api.py", line 115, in _open_resource f(*args, **kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/plugins/RSS/plugin.py", line 403, in update_feeds return http.get(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) File "/usr/lib/python3.9/site-packages/feedparser/http.py", line 172, in get data = f.read() self.update_feed_if_needed(feed) File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/plugins/RSS/test.py", line 65, in read File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/plugins/RSS/plugin.py", line 383, in update_feed_if_needed return self._data.encode() AttributeError: 'MockResponse' object has no attribute '_data' self.update_feed(feed) File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/log.py", line 368, in m return f(self, *args, **kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/plugins/RSS/plugin.py", line 357, in update_feed d = feedparser.parse(feed.url, etag=feed.etag, File "/usr/lib/python3.9/site-packages/feedparser/api.py", line 216, in parse data = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) File "/usr/lib/python3.9/site-packages/feedparser/api.py", line 115, in _open_resource return http.get(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) File "/usr/lib/python3.9/site-packages/feedparser/http.py", line 172, in get data = f.read() File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/plugins/RSS/test.py", line 65, in read return self._data.encode() AttributeError: 'MockResponse' object has no attribute '_data' Exception in thread Thread-242: Traceback (most recent call last): File "/usr/lib/python3.9/threading.py", line 973, in _bootstrap_inner self.run() File "/usr/lib/python3.9/threading.py", line 910, in run self._target(*self._args, **self._kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/plugins/RSS/plugin.py", line 90, in newf f(*args, **kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/plugins/RSS/plugin.py", line 403, in update_feeds self.update_feed_if_needed(feed) File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/plugins/RSS/plugin.py", line 383, in update_feed_if_needed self.update_feed(feed) File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/log.py", line 368, in m return f(self, *args, **kwargs) File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/plugins/RSS/plugin.py", line 357, in update_feed d = feedparser.parse(feed.url, etag=feed.etag, File "/usr/lib/python3.9/site-packages/feedparser/api.py", line 216, in parse data = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) File "/usr/lib/python3.9/site-packages/feedparser/api.py", line 115, in _open_resource return http.get(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) File "/usr/lib/python3.9/site-packages/feedparser/http.py", line 172, in get data = f.read() File "/var/tmp/portage/net-irc/limnoria-20210617/work/Limnoria-master-2021-06-17-python3_9/build/lib/supybot/plugins/RSS/test.py", line 65, in read return self._data.encode() AttributeError: 'MockResponse' object has no attribute '_data' ok ```
progval commented 3 years ago

Try this:

diff --git a/plugins/RSS/test.py b/plugins/RSS/test.py
index eab10c61b..a9e3c07c6 100644
--- a/plugins/RSS/test.py
+++ b/plugins/RSS/test.py
@@ -102,6 +102,7 @@ def testCantAddDuplicatedFeed(self):

     @mock_urllib
     def testRemoveAliasedFeed(self, mock):
+        mock._data = xkcd_new
         try:
             self.assertNotError('rss announce add http://xkcd.com/rss.xml')
             self.assertNotError('rss add xkcd http://xkcd.com/rss.xml')
wraeth commented 3 years ago

Confirmed, that fixes it. I could have sworn I tried that, but I must have had it in the wrong spot...

Thanks!