def test_predict_nomodel(self, mock_modelstatus, mock_conn): mock_conn.get.return_value = None mock_modelstatus.return_value = "Model Doesn't Exist Flask response" returned = predict('model_doesntexist') self.assertEqual(mock_conn.get.called, True) self.assertEqual(returned, "Model Doesn't Exist Flask response")
def test_predict_returnspred(self, mock_preprocess, mock_bytesdf, mock_getreqdata, mock_pickle, mock_conn): mock_conn.get.return_value = 'good_model' mock_getreqdata.return_value = b'good data' mock_bytesdf.return_value = 'good_data_df' mock_preprocess.return_value = 'processed_data_df' mock_pickle.loads.return_value.predict.return_value.tolist.return_value = 'class predictions list' mock_pickle.loads.return_value.predict_proba.return_value.tolist.return_value = 'class probability predictions list' predict('good_model') mock_pickle.loads.assert_called_with('good_model') self.assertTrue(mock_getreqdata.called, True) mock_bytesdf.assert_called_with(b'good data') mock_preprocess.assert_called_with('good_data_df') mock_pickle.loads.return_value.predict.assert_called_with( 'processed_data_df') mock_pickle.loads.return_value.predict_proba.assert_called_with( 'processed_data_df')
def getisbndetails(isbn): api = 'https://www.googleapis.com/books/v1/volumes?q=isbn:' isbnapi = api + isbn r = requests.get(isbnapi) data = r.json() bookdetails = {} bookdetails['title'] = data['items'][0]['volumeInfo']['title'] bookdetails['authors'] = data['items'][0]['volumeInfo']['authors'] bookdetails['pageCount'] = data['items'][0]['volumeInfo']['pageCount'] bookdetails['genre'] = predict(data['items'][0]['volumeInfo']['title']) bookdetails['isbn'] = isbn bookdetails['image'] = data['items'][0]['volumeInfo']['imageLinks'][ 'thumbnail'] language = data['items'][0]['volumeInfo']['language'] if language.lower() == 'en': bookdetails['language'] = 'English' else: bookdetails['language'] = language return bookdetails
def prediction(message): result = app.predict(message) return result
def test_show(s): run_error(s, 'unknown contract', app.show, 'test-contract1') run(s, app.create, 'test-contract1', 'terms', '1 hour', '.5') out = run(s, app.show, 'test-contract1') assert 'terms (Unresolved)' in out assert 'Closes' in out user1 = app.lookup_or_create_user(s, 'user1') user2 = app.lookup_or_create_user(s, 'user2') app.predict(s, user1, 'test-contract1', '.6') app.predict(s, user2, 'test-contract1', '.8') app.predict(s, user1, 'test-contract1', '.4') app.predict(s, user1, 'test-contract1', '.2') app.predict(s, user2, 'test-contract1', '.1') app.predict(s, user1, 'test-contract1', '.0001') run(s, app.resolve, 'test-contract1', 'false') out = run(s, app.show, 'test-contract1') assert 'terms (Resolved False)' in out assert 'Was to close' in out assert '50.00% test (' in out assert '60.00% user1 (' in out assert '80.00% user2 (' in out assert '40.00% user1 (' in out assert '20.00% user1 (' in out assert '10.00% user2 (' in out assert '0.01% user1 (' in out assert 'scores:' in out assert 'user1: 126.84' in out assert 'user2: -57.54' in out run(s, app.cancel, 'test-contract1') out = run(s, app.show, 'test-contract1') assert 'scores' not in out assert 'Was to close' in out assert 'Cancelled' in out # User 'test' doesn't get lots of points for setting the house odds at 1% # and then immediately predicting 99%. run(s, app.create, 'test-contract2', 'terms', '1 hour', '.01') run(s, app.predict, 'test-contract2', '.99') app.predict(s, user1, 'test-contract2', '.9') run(s, app.predict, 'test-contract2', '.99') run(s, app.resolve, 'test-contract2', 'true') out = run(s, app.show, 'test-contract2') assert 'test: 9.53' in out assert 'user1: -9.53' in out
def get_prediction(): data = request.get_json() output = predict(convert_to_df(dict(data))) with open('output.csv', 'a+') as f: f.write(','.join(str(v) for v in output[0]) + "\n") return str(','.join(str(v) for v in output[0]))
def test_predict(self): self.assertIsInstance(app_.predict(self._test_object()), list)