def test_update_stocks_vol_last(self): structures.update_stocks_vol('SPX', TEST_DB_NAME) with database.connect_db(TEST_DB_NAME) as db: db.execute('SELECT MAX(date) FROM stocks WHERE symbol=?;', ['SPX']) test_date = database.decode_date(db.fetchall()[0][0]) db.execute('SELECT * FROM volatility WHERE symbol=? AND date=?;', ['SPX', test_date]) original_row = db.fetchall()[0][3:] db.execute('UPDATE volatility SET change=?, vol1d=?, vol2d=?, ' \ 'vol3d=?, vol4d=?, vol5d=?, vol6d=?, vol7d=?, vol8d=?, '\ 'vol9d=?, vol1m=?, vol2m=?, vol3m=?, vol6m=?, vol1y=? ' \ 'WHERE symbol=? AND date=?;', [0] * 15 + ['SPX', test_date]) db.execute('SELECT * FROM volatility WHERE symbol=? AND date=?;', ['SPX', test_date]) corrupted_row = db.fetchall()[0][3:] self.assertTrue(all(abs(item) > 1e-5 for item in original_row)) self.assertTrue(all(abs(item) < 1e-5 for item in corrupted_row)) structures.update_stocks_vol_last('SPX', TEST_DB_NAME) with database.connect_db(TEST_DB_NAME) as db: db.execute('SELECT * FROM volatility WHERE symbol=? AND date=?;', ['SPX', test_date]) updated_row = db.fetchall()[0][3:] self.assertTrue(all(abs(item) > 1e-5 for item in updated_row))
def update_stocks(): if request.args["date"] == "": stocks.fetch_realtime(["VIX", "VXST", "VXV", "VXMT", "VVIX", "SPX", "XIV", "VXX", "TLT"]) structures.update_stocks_vol_last("SPX") return jsonify()