def setUp(self): self.textLinklistParserInstance=TextLinklistParser() debugMock=Mock() settings=Settings() self.textLinklistParserInstance.debug=debugMock self.textLinklistParserInstance.settings=settings self.linklistPath="/media/KINGSTON/Sumid/linklist/prelinklist26.txt"
settings.mainINIFilePath = mainINIFilePath settings.loadAdaptive("all") settings.loadFromINI(mainINIFilePath) debug = Debug(settings) Shared.debug = debug factory = FactoryMethod() settings.pathStorage = factory.create(eval(settings.platform + "PathStorage")) factory.sharedRef.pathStorage = settings.pathStorage files = FilesAdaptorComplex() settings.connectFilesAdaptor(files) linklistAdaptor = LinklistAdaptor() linklistAdaptor.connectLinklistFile(files.linklist) textLinklistParser = TextLinklistParser() textLinklistParser.connectLinklistAdaptor(linklistAdaptor) debug.ThreadAwareLogger.info("Basic initialization complete.") counters = CounterManager() files.connectDB() dummyQueue = Queue() # 026 This is to bypass non-existence of hydra. Fast & ugly. countersQueue = Queue() countersQueueCondition = threading.Condition() # AbstractProducer(inputQueue,outputQueue,inputCondition,outputCondition,**kwargs): # bowBuilderSimple=BOWBuilderSimple(dummyQueue,countersQueue,None,countersQueueCondition,parserInstance=textLinklistParser) bowBuilderComplex = BOWBuilderComplex( dummyQueue, countersQueue, None, countersQueueCondition, parserInstance=textLinklistParser
class TextLinklistParserTest(unittest.TestCase): def setUp(self): self.textLinklistParserInstance=TextLinklistParser() debugMock=Mock() settings=Settings() self.textLinklistParserInstance.debug=debugMock self.textLinklistParserInstance.settings=settings self.linklistPath="/media/KINGSTON/Sumid/linklist/prelinklist26.txt" def tearDown(self): self.textLinklistParserInstance=None def test_trimSpcSymbols(self): """ Line is trimmed. It returns list: [url,symbol,textAfterSymbol]""" oneStringURLWithSPC="" self.assertEqual(self.textLinklistParserInstance.trimSpcSymbols(oneStringURLWithSPC) ,["",None,None]) oneStringURLWithSPC="http://foo.com/blah_blah" self.assertEqual(self.textLinklistParserInstance.trimSpcSymbols(oneStringURLWithSPC) ,["http://foo.com/blah_blah",None,None]) oneStringURLWithSPC="#http://foo.com/blah_blah" self.assertEqual(self.textLinklistParserInstance.trimSpcSymbols(oneStringURLWithSPC) ,["","#","http://foo.com/blah_blah"]) oneStringURLWithSPC="http://foo.com/blah_blah #comment" self.assertEqual(self.textLinklistParserInstance.trimSpcSymbols(oneStringURLWithSPC) ,["http://foo.com/blah_blah ","#","comment"]) oneStringURLWithSPC="http://foo.com/blah_blah @command" self.assertEqual(self.textLinklistParserInstance.trimSpcSymbols(oneStringURLWithSPC) ,["http://foo.com/blah_blah ","@","command"]) oneStringURLWithSPC="@command" self.assertEqual(self.textLinklistParserInstance.trimSpcSymbols(oneStringURLWithSPC) ,["","@","command"]) """ parseToSmartURL - Input is one raw line from linklist. - Output is SmartURL instance. -- SPC part is trimmed -- URL part is striped -- If url string is invalid, exception is thrown (it is the matter of SmartURL) -- Skips empty lines or comments. (Returns None for those) """ def test_parse2SmartURL(self): """ Parses one raw line to SmartURL instance. Handles correctly URL part and SPC part.""" oneStringURLWithSPC=" " url=self.textLinklistParserInstance.parse2SmartURL(oneStringURLWithSPC) self.assertEqual(url,None) oneStringURLWithSPC="#http://foo.com/blah_blah" url=self.textLinklistParserInstance.parse2SmartURL(oneStringURLWithSPC) self.assertEqual(url,None) oneStringURLWithSPC="http://foo.com/blah_blah" url=self.textLinklistParserInstance.parse2SmartURL(oneStringURLWithSPC) self.assertEqual(url.Composed,"http://foo.com/blah_blah") self.assertEqual(url.SPCPart,None) oneStringURLWithSPC="http://foo.com/blah_blah @command" url=self.textLinklistParserInstance.parse2SmartURL(oneStringURLWithSPC) self.assertTrue(isinstance(url,SmartURL)) self.assertEqual(url.Composed,"http://foo.com/blah_blah") self.assertEqual(url.SPCPart,"@command") oneStringURLWithSPC="http://foo.com/blah_blah #comment" url=self.textLinklistParserInstance.parse2SmartURL(oneStringURLWithSPC) self.assertTrue(isinstance(url,SmartURL)) self.assertEqual(url.Composed,"http://foo.com/blah_blah") self.assertEqual(url.SPCPart,"#comment") def test_next(self): """ Next provides another SmartURL instance. """ linklist=urllib2.urlopen("file://%s"%(self.linklistPath)) linklistInstance=LinklistAdaptor() linklistInstance.connectLinklistFile(linklist) self.textLinklistParserInstance.connectLinklistAdaptor(linklistInstance) next=self.textLinklistParserInstance.next() # 026 If this test fails, check if first line of linklist is not commented out. self.assertTrue(isinstance(next,SmartURL)) def test_next_noLinklist(self): """ If there's no linklist connected, next raises error.""" # Suppose thers's no linklist until I connect it. self.assertRaises(AttributeError,self.textLinklistParserInstance.next) self.textLinklistParserInstance.linklistAdaptorInstance=None self.assertRaises(AttributeError,self.textLinklistParserInstance.next) def test_connectLinklistAdaptor_wrongInput(self): """ Linklist parser allows connect only LinklistAdaptor instance.""" self.assertRaises(AttributeError,self.textLinklistParserInstance.connectLinklistAdaptor,"/This/is/a/string") self.assertRaises(AttributeError,self.textLinklistParserInstance.connectLinklistAdaptor,["This","is","a","list"]) self.assertRaises(AttributeError,self.textLinklistParserInstance.connectLinklistAdaptor,{"This":"is","a":"dict"}) self.assertRaises(AttributeError,self.textLinklistParserInstance.connectLinklistAdaptor,object()) self.assertRaises(AttributeError,self.textLinklistParserInstance.connectLinklistAdaptor,file(self.linklistPath)) self.assertRaises(AttributeError,self.textLinklistParserInstance.connectLinklistAdaptor,urllib2.urlopen("file://%s"%(self.linklistPath))) def test_connectLinklistAdaptor_correctInput(self): """Linklist parser stores link to a LinklistAdaptor instance, when gets it as a input parameter.""" linklistInstance=LinklistAdaptor() self.textLinklistParserInstance.connectLinklistAdaptor(linklistInstance) self.assertTrue(hasattr(self.textLinklistParserInstance,"linklistAdaptorInstance")) self.assertTrue(isinstance(self.textLinklistParserInstance.linklistAdaptorInstance,LinklistAdaptor))