def test_save_and_pk_load(self): user = Account(username="******") user.save() self.assertIsInstance(user.values['pk'], int, 'save sets pk') pk = user.values['pk'] same_user = Account.one_from_pk(pk) self.assertIsInstance(same_user, Account, "one_from_pk loads an Account object") self.assertEqual(same_user.values['username'], "Greg", "save creates database row") same_user.values['username'] = "******" same_user.save() same_again = Account.one_from_pk(pk) self.assertEqual(same_again.values['username'], "Gregory", "save updates an existing row")
def test_save_and_pk_load(self): user = Account(username='******') user.save() self.assertIsInstance( user.values['pk'], int, 'save sets pk' ) #assert will always return a boolean - if we get false back, something is broken pk = user.values['pk'] same_user = Account.one_from_pk(pk) self.assertIsInstance(same_user, Account, 'one_from_pk loads an Account object') self.assertEqual(same_user.values['username'], 'Sami', 'save creates database row') same_user.values['username'] = '******' same_user.save() same_again = Account.one_from_pk(pk) self.assertEqual(same_again.values['username'], 'Gregory', 'save updates an exisiting row')
def test_sell(self): user = Account.one_from_pk(1) user_balance_before = user.values['balance'] user.sell('tsla', 1) user_balance_after = (user_balance_before + util.lookup_price('tsla')) self.assertEqual( user.values['balance'], user_balance_after, 'account balance increased for ticker_price * amount ') transaction = user.trades_for('TSLA') self.assertIsInstance(transaction[2], Trade, 'trades_for returns Trade objects') self.assertEqual(transaction[2].values['buy_sell'], 'Sell') self.assertEqual(transaction[2].values['shares'], 1) self.assertEqual(transaction[2].values['username'], 'sami') account_position = user.get_position_for('TSLA') self.assertIsInstance(account_position, Position, 'get_position_for returns Position object') self.assertEqual(account_position.values['shares'], 4) self.assertEqual(account_position.values['username'], 'sami')
def test_buy(self): user = Account.one_from_pk(1) user_balance_before = user.values['balance'] user.buy('AAPL', 1) user_balance_after = (user_balance_before - util.lookup_price('aapl')) self.assertEqual( user.values['balance'], user_balance_after, 'buy if account balance > ticker_price * shares, account balance deducted' ) transaction = user.trades_for('aapl') self.assertIsInstance(transaction[0], Trade, 'trades_for returns Trade objects') self.assertEqual(transaction[0].values['buy_sell'], 'Buy') self.assertEqual(transaction[0].values['shares'], 1) self.assertEqual(transaction[0].values['username'], 'sami') account_position = user.get_position_for('aapl') self.assertIsInstance(account_position, Position, 'get_position_for returns Position object') self.assertEqual(account_position.values['shares'], 1) self.assertEqual(account_position.values['username'], 'sami')
def test_get_positions(self): user = Account.one_from_pk(1) positions = user.get_positions() self.assertIsInstance(positions, list, 'get_positions returns a list') self.assertIsInstance(positions[0], Position, 'get_positions returns Position objects')
def test_get_trades_for(self): user = Account.one_from_pk(1) trades = user.trades_for('TSLA') self.assertIsInstance(trades, list, 'trades_for returns a list') self.assertIsInstance(trades[0], Trade, 'trades_for returns Trade objects')
def test_get_trades(self): user = Account.one_from_pk(1) trades = user.get_trades() self.assertIsInstance(trades, list, 'get_trades returns a list') self.assertIsInstance(trades[0], Trade, 'get_trades returns Position objects')
def test_get_position_for(self): user = Account.one_from_pk(1) positions = user.get_position_for('TSLA') self.assertIsInstance(positions, Position, 'get_position_for returns one Position object')
def test_get_position_for(self): user = Account.one_from_pk(1) position = user.get_position_for('TSLA') self.assertIsInstance(position, Position, "get_position should return a Position object") self.assertEqual(5, position['shares'])
def test_get_positions(self): user = Account.one_from_pk(1) positions = user.get_positions() self.assertIsInstance(positions, list, "get_positions returns a list") self.assertIsInstance(positions[0], Position, "get_positions should return Position objects")