예제 #1
0
    def _save_website_links(self, website, list_urls):
        website_nosql = WebsiteNoSql()
        body = {'urls': list_urls}

        check_website_exist_done = self._check_if_website_exist_done(
            website.url)  # noqa

        if check_website_exist_done is False:
            self._put_website_links_on_quee(list_urls)
            website_nosql.create(website.id, body)
        else:
            website_done = Website.query\
                .filter(Website.url == website.url)\
                .filter(Website.status == Website.Status.DONE).first()
            website_nosql_db = website_nosql.get(website_done.id)
            if website_nosql_db:
                if website_nosql_db['_source'] != body:
                    self._put_website_links_on_quee(list_urls)
                    website_nosql.create(website.id, body)
                    website_nosql.update(website_done.id, body)
                else:
                    website_nosql.create(website.id, body)
            else:
                logger.error(
                    "Website NoSql not found: on website_id {0}".format(
                        website_done.id))  # noqa
                raise WebsiteBackendException("Website NoSql not found")
예제 #2
0
 def test_update_website_document_with_error(self, mock_elastich):
     mock_elastich.side_effect = mock.Mock(
         side_effect=ElasticsearchException())  # noqa
     with self.assertRaises(ElasticsearchException):
         body = {'urls': ['http://vtrmantovani.com.br']}
         webiste_nosql = WebsiteNoSql()
         webiste_nosql.update(1, body)
     self.assertEqual(mock_elastich.call_count, 1)
예제 #3
0
    def test_update_website_document(self):
        webiste_nosql = WebsiteNoSql()
        body = {'urls': ['http://ibm.com.br']}
        webiste_nosql.create(4, body)

        body = {'urls': ['http://vtrmantovani.com.br']}
        webiste_nosql.update(4, body)
        bd_web_site = webiste_nosql.get(4)
        self.assertEquals(bd_web_site['_source'], body)
        webiste_nosql.delete(4)