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')
Пример #3
0
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
Пример #4
0
def prediction(message):
    result = app.predict(message)
    return result
Пример #5
0
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
Пример #6
0
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]))
Пример #7
0
 def test_predict(self):
     self.assertIsInstance(app_.predict(self._test_object()), list)