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')