Make sure records are actually saveable

MongoDB doesn't like the pure `date` type.
master
Bradlee Speice 2016-08-25 17:08:37 -04:00
parent 0733725728
commit 117f4d60b2
3 changed files with 23 additions and 3 deletions

View File

@ -1,2 +1,2 @@
__version__ = '0.3.3'
__version__ = '0.3.4'
__release__ = __version__

View File

@ -65,7 +65,7 @@ class Tradeking1mTimesales(MongoCreateTask):
'incr_vl': int(quote['incr_vl']),
'hi': float(quote['hi']),
'timestamp': parse(quote['timestamp']),
'date': parse(quote['date']).date(),
'date': parse(quote['date']),
'opn': float(quote['opn'])
}
quotes_typed = [format_quote(q) for q in quotes]

View File

@ -4,13 +4,16 @@ from pandas_datareader.data import get_data_yahoo
from numpy.testing import assert_allclose
import pytest
from six.moves import map
from pytz import utc
from metrik.tasks.tradeking import Tradeking1mTimesales
from metrik.trading_days import TradingDay
from metrik.targets.mongo import MongoTarget
from test.mongo_test import MongoTest
@pytest.mark.parametrize('ticker', [
'AAPL', 'GOOG', 'SPY', 'REGN', 'SWHC', 'BAC', 'NVCR'
'AAPL', 'GOOG', 'SPY', 'REGN', 'SWHC', 'BAC', 'NVCR', 'ARGT'
])
def test_returns_verifiable(ticker):
# Test that the quotes line up with data off of Yahoo
@ -36,3 +39,20 @@ def test_returns_verifiable(ticker):
tradeking_ohlc = (open, high, low, close)
assert_allclose(tradeking_ohlc, yahoo_ohlc, rtol=1e-3)
class TradekingTest(MongoTest):
def test_record_is_saveable(self):
# Had an issue previously where the `date` type would cause saving
# to fail. Make sure that doesn't continue
now = datetime.now()
prior_day = now - TradingDay(1)
quotes = Tradeking1mTimesales.retrieve_data(prior_day, 'AAPL')
t = MongoTarget('tradeking', hash('just_testing'))
t.persist(quotes)
quotes_retrieved = t.retrieve()
for quote in quotes_retrieved['quotes']:
quote['datetime'] = utc.localize(quote['datetime'])
quote['timestamp'] = utc.localize(quote['timestamp'])
assert quotes == quotes_retrieved