def test_search_website_with_status_done(self):
        website = Website()
        website.url = "http://vtrmantovani.com.br"
        website.status = Website.Status.DONE
        db.session.add(website)
        db.session.commit()
        self.assertEqual(Website.query.count(), 1)
        webiste_nosql = WebsiteNoSql()
        body = {'urls': ['http://ibm.com.br']}
        webiste_nosql.create(1, body)

        params = {"status": "DONE", "limit": 2, "offset": 0}
        response = self.client.post("/api/search",
                                    headers={
                                        'Authorization': self.api_key,
                                        'Content-Type': 'application/json'
                                    },
                                    data=json.dumps(params))
        r = json.loads(response.data.decode('utf-8'))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(r['websites'][0]['website'],
                         "http://vtrmantovani.com.br")  # noqa
        self.assertEqual(r['websites'][0]['urls'][0], "http://ibm.com.br")
        self.assertEqual(r['total_itens'], 1)
        webiste_nosql.delete(1)
    def test_create_website(self):
        website = Website()
        website.url = 'http://ibm.com.br'
        website.status = Website.Status.NEW
        db.session.add(website)
        db.session.commit()

        self.assertEqual(Website.query.count(), 1)
    def test_validate_status(self):
        website = Website()

        with self.assertRaisesRegexp(ValueError, "Invalid Status"):
            website.status = "example"

        website.status = Website.Status.NEW
        self.assertEqual(website.status, Website.Status.NEW)
    def test_validate_url(self):
        website = Website()

        with self.assertRaisesRegexp(ValueError, "Url need be string"):
            website.url = 0

        with self.assertRaisesRegexp(ValueError, "Url need be a valid url"):
            website.url = ''

        website.url = 'http://ibm.com.br'
        self.assertEqual(website.url, 'http://ibm.com.br')
示例#5
0
def create():
    r = request.json
    website = Website()
    website.url = r['url']
    website.status = Website.Status.NEW
    try:
        db.session.add(website)
        db.session.commit()
    except SQLAlchemyError as e:
        logger.error("SQLAlchemyError error in create website: {0}".format(e))
        raise BadRequestGeneric(description="Some problems in bd")
    return jsonify(), 201
示例#6
0
    def test_website_processing(self, mock_response):
        website = Website()
        website.url = "http://ibm.com.br"
        website.status = Website.Status.NEW
        db.session.add(website)
        db.session.commit()

        website_processing()
        website_db = Website.query.filter(
            Website.url == website.url).first()  # noqa
        self.assertEqual(website_db.status.value, "PROCESSING")
        self.assertEqual(Website.query.count(), 2)
示例#7
0
    def test_retry_process_available_links_processing(self):
        website_db = Website.query.first()  # noqa
        db.session.delete(website_db)
        db.session.commit()

        website = Website()
        website.url = "http://ibm.com.br"
        website.status = Website.Status.PROCESSING
        website.updated_dt = datetime(2018, 9, 13, 14, 0)
        db.session.add(website)
        db.session.commit()

        retry_process_available_links_processing()

        website_db = Website.query.first()  # noqa
        self.assertEqual(website_db.status.value, "NEW")
 def test_search_website_with_status_done_withot_website_nosql(self):
     website = Website()
     website.url = "http://vtrmantovani.com.br"
     website.status = Website.Status.DONE
     db.session.add(website)
     db.session.commit()
     self.assertEqual(Website.query.count(), 1)
     params = {"status": "DONE", "limit": 2, "offset": 0}
     response = self.client.post("/api/search",
                                 headers={
                                     'Authorization': self.api_key,
                                     'Content-Type': 'application/json'
                                 },
                                 data=json.dumps(params))
     r = json.loads(response.data.decode('utf-8'))
     self.assertEqual(response.status_code, 404)
     self.assertEqual(r['error']['message'], "Website id not found")
 def test_search_website_with_elasticsearch_exception(self, mock_get):
     mock_get.side_effect = mock.Mock(side_effect=ElasticsearchException())
     website = Website()
     website.url = "http://vtrmantovani.com.br"
     website.status = Website.Status.DONE
     db.session.add(website)
     db.session.commit()
     self.assertEqual(Website.query.count(), 1)
     params = {"status": "DONE", "limit": 2, "offset": 0}
     response = self.client.post("/api/search",
                                 headers={
                                     'Authorization': self.api_key,
                                     'Content-Type': 'application/json'
                                 },
                                 data=json.dumps(params))
     r = json.loads(response.data.decode('utf-8'))
     self.assertEqual(response.status_code, 400)
     self.assertEqual(r['error']['message'], "Some problems in bd")
示例#10
0
    def test_search_website_without_status_done(self):
        website = Website()
        website.url = 'http://ibm.com.br'
        website.status = Website.Status.NEW
        db.session.add(website)
        db.session.commit()
        self.assertEqual(Website.query.count(), 1)

        params = {"status": "NEW", "limit": 2, "offset": 0}
        response = self.client.post("/api/search",
                                    headers={
                                        'Authorization': self.api_key,
                                        'Content-Type': 'application/json'
                                    },
                                    data=json.dumps(params))
        r = json.loads(response.data.decode('utf-8'))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(r['websites'][0]['website'], "http://ibm.com.br")
        self.assertEqual(r['total_itens'], 1)
示例#11
0
 def _save_website(self, url):
     website = Website()
     website.url = url
     website.status = Website.Status.NEW
     db.session.add(website)
     db.session.commit()
示例#12
0
    def load_fixtures(self):
        website = Website()
        website.url = "http://vtrmantovani.com.br"
        website.status = Website.Status.NEW

        self.website = website
示例#13
0
 def load_fixtures(self):
     website = Website()
     website.url = "http://vtrmantovani.com.br"
     website.status = Website.Status.NEW
     db.session.add(website)
     db.session.commit()