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')
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
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)
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")
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)
def _save_website(self, url): website = Website() website.url = url website.status = Website.Status.NEW db.session.add(website) db.session.commit()
def load_fixtures(self): website = Website() website.url = "http://vtrmantovani.com.br" website.status = Website.Status.NEW self.website = website
def load_fixtures(self): website = Website() website.url = "http://vtrmantovani.com.br" website.status = Website.Status.NEW db.session.add(website) db.session.commit()