def test_crawler_saves_fixed_sentence_as_words(self, mock_rsssourceprovider): xml_source = '<?xml version="1.0" encoding="utf-8"?>\ <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">\ <channel>\ <item>\ <title>Wywiad "Financial Times" z Jarosławem Kaczyńskim. "Kingmaker z politycznym nosem"</title>\ <link>http://wiadomosci.wp.pl/kat,1017099,title,Wywiad-Financial-Times-z-Jaroslawem-Kaczynskim-Kingmaker-z-politycznym-nosem,wid,18184761,wiadomosc.html</link>\ </item>\ <item>\ <title>Posiedzenie Rady Krajowej PO. Schetyna: będziemy opozycją totalną, Polska to nasza wspólna odpowiedzialność</title>\ <link>http://wiadomosci.wp.pl/kat,1025897,title,Posiedzenie-Rady-Krajowej-PO-Schetyna-bedziemy-opozycja-totalna-Polska-to-nasza-wspolna-odpowiedzialnosc,wid,18184509,wiadomosc.html</link>\ </item>\ </channel>\ </rss>' import feedparser tree = feedparser.parse(xml_source) mock_rsssourceprovider.return_value = tree rsssourceprovider = RssSourceProvider() from django.utils import timezone datetime_ = timezone.datetime.now() time_ = datetime_.time() crawler = factory.get_crawler(Crawlers.wirtualna_polska_informacje) crawler.crawl(rsssourceprovider, datetime_, time_) # print(Link.objects.all().values('title')) self.assertEqual(1, len(Link.objects.filter(title='Wywiad "Financial Times" z Jarosławem Kaczyńskim. "Kingmaker z politycznym nosem"'))) self.assertEqual(1, len(Link.objects.filter(title='Posiedzenie Rady Krajowej PO. Schetyna: będziemy opozycją totalną, Polska to nasza wspólna odpowiedzialność'))) self.assertEqual(0, len(Link.objects.filter(title='Wywiad Financial Times Jarosławem Kaczyńskim Kingmaker politycznym nosem'))) self.assertEqual(0, len(Link.objects.filter(title='Posiedzenie Rady Krajowej PO Schetyna będziemy opozycją totalną Polska nasza wspólna odpowiedzialność')))
def handle(self, *args, **options): datetime_ = self.get_datetime_base() time_ = datetime_.time() logger_filename = self.get_logging_filename(datetime_) logging.basicConfig(filename=logger_filename, level=logging.DEBUG) logging.info('Started {0}'.format(datetime_)) rssprovider = RssSourceProvider() for site_crawler in Crawlers: logging.info('\nTried get {0} crawler.'.format(site_crawler)) try: crawler = factory.get_crawler(site_crawler) logging.info('Received {0} crawler.'.format(site_crawler)) logging.info('\n\nStarted {0} crawling.'.format(site_crawler)) crawler.crawl(rssprovider, datetime_, time_) logging.info('Ended {0} crawling.'.format(site_crawler)) except NotImplementedError: logging.warning('Did not received {0} crawler. Crawler is not implemented.'.format(site_crawler)) logging.info('\n') logging.info('Finished')