def update_assets(self, *args): assets = set(pos.asset for pos in self if pos.quantity > 0) itemcount = len(assets) count = 0.0 for i in datasource_controller.update_assets(assets): count += 1 yield count / itemcount self.last_update = datetime.datetime.now() self.emit("updated") yield 1
def test_update_stocks(self): test_date = datetime.datetime(1900, 1, 1) for asset in objects.asset.get_all_assets(): asset.price = 0 asset.date = test_date for item in dsm.update_assets(objects.asset.get_all_assets()): print item for asset in objects.asset.get_all_assets(): self.assertNotEqual(asset.date, test_date) self.assertNotEqual(asset.price, 0)
def test_items_with_problems(self): for item in ITEMS_WITH_PROBLEMS: dsm.search(item, threaded=False) asset = objects.asset.get_asset_for_searchstring(item)[0] self.assertIsNotNone(asset) test_date = datetime.datetime(1900, 1, 1) asset.price = 0 asset.date = test_date for foo in dsm.update_assets([asset]): pass self.assertNotEqual(asset.date, test_date) self.assertNotEqual(asset.price, 0) self.assertIsNotNone(asset) count = len(asset.quotations) self.get_historical_prices(asset) self.assertNotEqual(count, len(asset.quotations))
import sys sys.path.append("../../") import __builtin__ __builtin__._ = str from avernus import objects from avernus.objects import db from avernus.controller import datasource_controller as dsm dbfile = ":memory:" db.set_db(dbfile) db.connect() test_asset = 'FR0010959676' y = DataSource() for res in y.search(test_asset): item, source, source_info = res dsm._item_found_callback(item, source, source_info) asset = objects.asset.get_asset_for_searchstring(test_asset)[0] for foo in dsm.update_assets([asset]): pass for asset in objects.asset.get_all_assets(): for foo in dsm.update_historical_prices_asset(asset, threaded=False): for bar in foo: pass print asset.price, asset.date print len(asset.quotations)