class TestGetSpread(TestUnitSetUpPrepare): def test_get_spread(self): """ #Test save position using data in db #can use production database or another database for test """ try: statement = Statement.objects.get(date='2015-01-29') except ObjectDoesNotExist: self.skipTest("Please use 'Unittest' for testing.\n") raise ObjectDoesNotExist() trade_summary = TradeSummary.objects.filter(statement=statement).first() filled_order_manager = FilledOrder.objects.filter(trade_summary=trade_summary) underlying_symbols = filled_order_manager.values_list('underlying__symbol', flat=True).distinct() underlying_symbols = [symbol for symbol in underlying_symbols if symbol] # drop none print underlying_symbols future_symbols = filled_order_manager.values_list('future__symbol', flat=True).distinct() future_symbols = [symbol for symbol in future_symbols if symbol] # drop none forex_symbols = filled_order_manager.values_list('forex__symbol', flat=True).distinct() forex_symbols = [symbol for symbol in forex_symbols if symbol] # drop none print 'Underlying...' for underlying_symbol in underlying_symbols: open_filled_orders = filled_order_manager.filter( Q(underlying__symbol=underlying_symbol) & Q(pos_effect='TO OPEN') ) if open_filled_orders.exists(): self.spread = Spread(filled_orders=open_filled_orders) self.spread.name = self.spread.get_name() print 'Underlying: %s' % self.spread.get_underlying() print 'Name: %s' % self.spread.name print 'Spread: %s' % self.spread.get_spread() print '' print '-' * 80 + '\n' print 'Future...' for future_symbol in future_symbols: open_filled_orders = filled_order_manager.filter( Q(future__symbol=future_symbol) & Q(pos_effect='TO OPEN') ) if open_filled_orders.exists(): self.spread = Spread(filled_orders=open_filled_orders) self.spread.name = self.spread.get_name() print 'Future: %s' % self.spread.get_future() print 'Name: %s' % self.spread.name print 'Spread: %s' % self.spread.get_spread() print '' print '-' * 80 + '\n' print 'Forex...' for forex_symbol in forex_symbols: print forex_symbol open_filled_orders = filled_order_manager.filter( Q(forex__symbol=forex_symbol) & Q(pos_effect='TO OPEN') ) if open_filled_orders.exists(): self.spread = Spread(filled_orders=open_filled_orders) self.spread.name = self.spread.get_name() print 'Forex: %s' % self.spread.get_forex() print 'Name: %s' % self.spread.name print 'Spread: %s' % self.spread.get_spread() print ''