def test_insertTrade(self): ''' Test the method insertTrade. Verifys that it inserts a trade and then, with an identical trade, it does not insert the trade. The col DateTime requires fxn. ''' rc = FinReqCol() row = dict() row[rc.ticker] = 'AAPL' row['DateTime'] = '20190101;123045' row[rc.shares] = 450 row[rc.price] = 205.43 row[rc.comm] = .75 row[rc.oc] = 'O' row[rc.acct] = 'U1234567' row[rc.bal] = 450 row[rc.avg] = 205.43 row[rc.PL] = 0 ibdb = StatementDB() self.clearTables() ibdb.insertTradeSA(row) ModelBase.session.commit() c = ibdb.tcrud.getTradeCount() self.assertEqual(c, 1) ibdb.insertTradeSA(row) ModelBase.session.commit() c = ibdb.tcrud.getTradeCount() self.assertEqual(c, 1) bu = Backup() bu.restore()
def test_findTrade(self): ''' Tests find a unique trade using findTrade with date, ticker, shares and account. The method is meant to be more exclusive than inclusive. ''' rc = FinReqCol() ibdb = StatementDB() row = { rc.ticker: 'SNRK', "DateTime": '20191212;093145', rc.shares: 3000, rc.price: 150.23, rc.comm: None, rc.oc: 'O', rc.acct: "U2229999", rc.bal: 3000, rc.avg: 150.23, rc.PL: None, "DAS": 'DAS', "IB": None} data = list(row.values()) columns = list(row.keys()) x = pd.DataFrame(data=[data], columns=columns) ibdb.insertTradeSA(x.iloc[0]) ModelBase.session.commit() # conn.commit() foundit = ibdb.findTradesSA(x.iloc[0]['DateTime'], x.iloc[0][rc.ticker], x.iloc[0][rc.shares], x.iloc[0][rc.acct]) self.assertTrue(foundit) bu = Backup() bu.restore()