;ς > ΔDc@s`dkZdkTeidƒZeiiZeiiZeii iZ de fd„ƒYZ dS(N(s*sInfobotsInfobotTestCasecBsqtZdfZeidƒZd„Zd„Zd„Zd„Z d„Z d„Z d „Z d „Z d „ZRS( NsInfobots !|, \S+\.|\.cCs.tiiƒ}tiiƒ}zβtiiitƒtiiitƒ|i ddƒ|i ddƒ|i ddƒ|i ddƒ|i ddƒ|i dd ƒ|i d ƒ}|i|iid |id ƒtjƒ|i d dƒ|i ddƒWdtiii|ƒtiii|ƒXdS(Nsfoo is at http://bar.com/is infobot statss1 modificationsinfobot statussfoo?sfoo.*is.*http://bar.com/sfoo is at http://baz.com/sbazsbar is at http://foo.com/sisbar?sbar.*is.*http://foo.com/s what was bar?shttp://foo.com/(sibots unaddressedssnarfDefinitionsslearnsanswerQuestionssanswerssetValuesTruesselfsassertSnarfNoResponses assertRegexpsassertSnarfRegexpsassertSnarfNotRegexpsgetMsgsms failUnlesss_endRessubsargssconfirms(sselfsmslearnsanswer((s./Infobot/test.pys testIsSnarf*s$)cCs>tiiƒ}tiiƒ}zςtiiitƒtiiitƒ|i ddƒ|i ddƒ|i ddƒ|i ddƒ|i ddƒ|i ddƒ|i d |i d ƒ|i d dƒ|i d |i d ƒ|i d dƒ|i d|i i dƒWdtiii|ƒtiii|ƒXdS(Nsfoo is at http://bar.com/is what's foo?sfoo.*is.*http://bar.com/s wtf's foo?s who's foo?s where's foo?s i am a tools%s?sis.*toolsmy bot is a tools %s's bot?syour name is weirds %s's name?s is.*weird(sibots unaddressedssnarfDefinitionsslearnsanswerQuestionssanswerssetValuesTruesselfsassertSnarfNoResponsesassertSnarfRegexps assertRegexpsnicksirc(sselfsanswerslearn((s./Infobot/test.pys testNormalize>s&cCsΖtiiƒ}tiiƒ}zztiiitƒtiiitƒ|i ddƒ|i ddƒ|i ddƒ|i ddƒ|i ddƒWdtiii|ƒtiii|ƒXdS( Nsbars are dirtyisbars?sbars.*are.*dirtysbars are not dirtysnotswhat were bars?sdirty( sibots unaddressedssnarfDefinitionsslearnsanswerQuestionssanswerssetValuesTruesselfsassertSnarfNoResponsesassertSnarfRegexpsassertSnarfNotRegexp(sselfsanswerslearn((s./Infobot/test.pys testAreSnarfSscCsΦtiiƒ}tiiƒ}zŠtiiitƒtiiitƒ|i ddƒ|i ddƒ|i ddƒ|i ddƒ|i ddƒ|i ddƒWdtiii|ƒtiii|ƒXdS(Ns foo is barisfoo?s foo.*is.*bars when is foo?s why is foo?swhy foo?( sibots unaddressedssnarfDefinitionsslearnsanswerQuestionssanswerssetValuesTruesselfsassertSnarfNoResponsesassertSnarfRegexp(sselfsanswerslearn((s./Infobot/test.pystestIsResponsesbscCstiiƒ}zWtiiitƒ|idƒ|iddƒtiiit ƒ|iddƒWdtiii|ƒXdS(Ns foo is barsfoo?s foo.*is.*bari( sibots unaddressedsanswerQuestionssanswerssetValuesTruesselfsassertSnarfNoResponsesassertSnarfRegexpsFalse(sselfsanswer((s./Infobot/test.pystestAnswerUnaddressedrs cCs°tiiƒ}tiiƒ}zdtiiitƒtiiitƒ|i dƒ|i ddƒ|i dƒ|i ddƒWdtiii|ƒtiii|ƒXdS(Nsforums are goodsforums?sforums.*are.*goodsno, forums are evilsforums.*.are.*evil( sibots unaddressedsanswerQuestionssanswerssnarfDefinitionsslearnssetValuesTruesselfsassertSnarfNoResponsesassertSnarfRegexpsassertNotError(sselfsanswerslearn((s./Infobot/test.pystestReplaceFactoid}s  cCsκtiiƒ}tiiƒ}zžtiiitƒtiiitƒ|i dƒ|i ddƒ|i dƒ|i ddƒ|i dƒ|i dd ƒ|i d ƒ|i d d ƒWdtiii|ƒtiii|ƒXdS( Nsfoo is foo is barsfoo?s foo is barsbars are bars are goodsbars?s bars are goodsbees are honey is goodsbees?s honey is goodsfood is tacos are goodsfood?stacos are good( sibots unaddressedsanswerQuestionssanswerssnarfDefinitionsslearnssetValuesTruesselfsassertSnarfNoResponsesassertSnarfRegexp(sselfsanswerslearn((s./Infobot/test.pystestDoubleIsAre‹s     cCs$|iddƒ|iddƒdS(Nswhat?isroses?s roses are red(sselfsassertSnarfNoResponses assertRegexp(sself((s./Infobot/test.pystestPredefinedFactoids‘scCs.|idƒ|idƒ|iddƒdS(Nshi is Hello, $who.shisHello(sselfsassertSnarfNoResponses assertRegexp(sself((s./Infobot/test.pystestAddressedQuestions₯s  (s__name__s __module__spluginssrescompiles_endRes testIsSnarfs testNormalizes testAreSnarfstestIsResponsesstestAnswerUnaddressedstestReplaceFactoidstestDoubleIsArestestPredefinedFactoidsstestAddressedQuestions(((s./Infobot/test.pysInfobotTestCase's        ( sres supybot.testspluginsloadPluginModulesInfobotsconfirmssdunnossconfssupybotspluginssibotsChannelPluginTestCasesInfobotTestCase(sdunnossInfobotsInfobotTestCasesresconfirmssibot((s./Infobot/test.pys?s