Exemplo n.º 1
0
    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")
Exemplo n.º 2
0
    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')
Exemplo n.º 3
0
    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')
Exemplo n.º 4
0
    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')
Exemplo n.º 5
0
 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')
Exemplo n.º 6
0
 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')
Exemplo n.º 7
0
 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')
Exemplo n.º 8
0
 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')
Exemplo n.º 9
0
 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'])
Exemplo n.º 10
0
 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")