def test_lowest_buy_price_quantity3(self): ''' test lowest buy price quantity with sell transaction ''' stock_db_connection = get_default_db_connection() reset_table(stock_db_connection) stock_transaction_table = StockTransactionTable(stock_db_connection) # init transaction 1 stock_transaction_1 = StockTransaction() stock_transaction_1.symbol = "601398" stock_transaction_1.buy_or_sell = StockTransaction.BUY_FLAG stock_transaction_1.date = date(2016, 5, 15) stock_transaction_1.quantity = 200 stock_transaction_1.price = 4.51 stock_transaction_table.add_stock_transaction(stock_transaction_1) stock_transaction_1.trans_id # init transaction 2 stock_transaction_2 = StockTransaction() stock_transaction_2.symbol = "601398" stock_transaction_2.buy_or_sell = StockTransaction.SELL_FLAG stock_transaction_2.date = date(2016, 5, 16) stock_transaction_2.quantity = 100 stock_transaction_2.price = 4.81 stock_transaction_table.add_stock_transaction(stock_transaction_2) stock_transaction_2.trans_id with self.assertRaises(Exception): StockTransaction.get_lowest_buy_price_quantity("601398") return
def test_stock_transaction_sanity(self): stock_db_connection = get_default_db_connection() reset_table(stock_db_connection) stock_transaction_table = StockTransactionTable(stock_db_connection) stock_transaction = StockTransaction() stock_transaction.set_symbol("601398") stock_transaction.set_buy_or_sell("buy") stock_transaction.set_quantity(100) stock_transaction.set_price(4.51) stock_transaction.set_date(date(2015, 11, 10)) stock_transaction_table.add_stock_transaction(stock_transaction) stock_transaction = StockTransaction() stock_transaction.set_symbol("601857") stock_transaction.set_buy_or_sell("buy") stock_transaction.set_quantity(100) stock_transaction.set_price(4.51) stock_transaction.set_date(date(2015, 11, 10)) stock_transaction_table.add_stock_transaction(stock_transaction) stock_transaction = \ stock_transaction_table.get_stock_transaction_by_trans_id(1) stock_transaction.set_quantity("500") stock_transaction_table.update_stock_transaction(stock_transaction) stock_transaction = \ stock_transaction_table.get_stock_transaction_by_trans_id(1) stock_transaction_table.delete_stock_transaction(stock_transaction) return
def test_lowest_buy_price_quantity(self): ''' test lowest buy price quantity ''' stock_db_connection = get_default_db_connection() reset_table(stock_db_connection) stock_transaction_table = StockTransactionTable(stock_db_connection) # init transaction 1 stock_transaction_1 = StockTransaction() stock_transaction_1.symbol = "601398" stock_transaction_1.buy_or_sell = StockTransaction.BUY_FLAG stock_transaction_1.date = date(2016, 5, 15) stock_transaction_1.quantity = 200 stock_transaction_1.price = 4.9 stock_transaction_table.add_stock_transaction(stock_transaction_1) stock_transaction_1.trans_id # init transaction 2 stock_transaction_2 = StockTransaction() stock_transaction_2.symbol = "601398" stock_transaction_2.buy_or_sell = StockTransaction.BUY_FLAG stock_transaction_2.date = date(2016, 5, 16) stock_transaction_2.quantity = 100 stock_transaction_2.price = 4.81 stock_transaction_table.add_stock_transaction(stock_transaction_2) stock_transaction_2.trans_id quantity = StockTransaction.get_lowest_buy_price_quantity("601398") self.assertEqual(quantity, 100) return
def test_reset_table(self): # test logging.info("new StockDbConnection") stock_db_connection = get_default_db_connection() logging.info("reset table") reset_table(stock_db_connection) stock_info_table = StockInfoTable(stock_db_connection) stock_info_list = stock_info_table.get_all_stock_info() self.assertEqual(len(stock_info_list), 7) return
def test_close_stock_transaction(self): ''' test_close_stock_transaction ''' stock_db_connection = get_default_db_connection() reset_table(stock_db_connection) stock_transaction_table = StockTransactionTable(stock_db_connection) # init transaction 1 stock_transaction_1 = StockTransaction() stock_transaction_1.symbol = "601398" stock_transaction_1.buy_or_sell = StockTransaction.BUY_FLAG stock_transaction_1.date = datetime(2016, 5, 15, 0, 0, 0) stock_transaction_1.quantity = 200 stock_transaction_1.price = 4.51 stock_transaction_table.add_stock_transaction(stock_transaction_1) trans_id_1 = stock_transaction_1.trans_id # init transaction 2 stock_transaction_2 = StockTransaction() stock_transaction_2.symbol = "601398" stock_transaction_2.buy_or_sell = StockTransaction.SELL_FLAG stock_transaction_2.date = datetime(2016, 5, 16, 0, 0, 0) stock_transaction_2.quantity = 200 stock_transaction_2.price = 4.81 stock_transaction_table.add_stock_transaction(stock_transaction_2) trans_id_2 = stock_transaction_2.trans_id stock_closed_transaction = \ StockClosedTransactionTable.close_transaction(stock_transaction_1, stock_transaction_2) self.assertEqual(stock_closed_transaction.symbol, "601398") self.assertEqual(stock_closed_transaction.buy_price, 4.51) self.assertEqual(stock_closed_transaction.sell_price, 4.81) self.assertEqual(stock_closed_transaction.buy_date, datetime(2016, 5, 15, 0, 0, 0)) self.assertEqual(stock_closed_transaction.sell_date, datetime(2016, 5, 16, 0, 0, 0)) self.assertEqual(stock_closed_transaction.quantity, 200) stock_transaction = \ stock_transaction_table.get_stock_transaction_by_trans_id( trans_id_1) self.assertIsNone(stock_transaction, "stock_transaction_1 is not deleted") stock_transaction = \ stock_transaction_table.get_stock_transaction_by_trans_id( trans_id_2) self.assertIsNone(stock_transaction, "stock_transaction_2 is not deleted") return
def test_lowest_buy_price_quantity2(self): ''' test lowest buy price quantity ''' stock_db_connection = get_default_db_connection() reset_table(stock_db_connection) StockTransactionTable(stock_db_connection) quantity = StockTransaction.get_lowest_buy_price_quantity("601398") self.assertEqual(quantity, 0) return
def test_lowest_buy_price2(self): ''' test lowest buy price ''' stock_db_connection = get_default_db_connection() reset_table(stock_db_connection) StockTransactionTable(stock_db_connection) lowest_price = StockTransaction.get_lowest_buy_price("601398") self.assertEqual(lowest_price, 9999.00) return
def test_stock_closed_transaction_sanity(self): ''' test_stock_closed_transaction_sanity() ''' stock_db_connection = get_default_db_connection() reset_table(stock_db_connection) transaction_table = StockClosedTransactionTable(stock_db_connection) # new a stock closed transaction stock_closed_transaction = StockClosedTransaction() stock_closed_transaction.symbol = "601398" stock_closed_transaction.buy_price = 4.51 stock_closed_transaction.sell_price = 4.61 stock_closed_transaction.buy_date = datetime(2015, 11, 10, 0, 0, 0) stock_closed_transaction.sell_date = datetime(2015, 12, 30, 0, 0, 0) stock_closed_transaction.quantity = 200 transaction_table.add_stock_closed_transaction( stock_closed_transaction) # query and compare stock_closed_transaction_list = \ transaction_table.get_all_stock_closed_transaction() self.assertEqual(len(stock_closed_transaction_list), 1, "There should be only 1 item") stock_closed_transaction = stock_closed_transaction_list[0] self.assertEqual(stock_closed_transaction.symbol, "601398") self.assertEqual(stock_closed_transaction.buy_price, 4.51) self.assertEqual(stock_closed_transaction.sell_price, 4.61) self.assertEqual(stock_closed_transaction.buy_date, datetime(2015, 11, 10, 0, 0, 0)) self.assertEqual(stock_closed_transaction.sell_date, datetime(2015, 12, 30, 0, 0, 0)) self.assertEqual(stock_closed_transaction.quantity, 200) # delete the newly created item transaction_table.delete_stock_closed_transaction( stock_closed_transaction) stock_closed_transaction_list = \ transaction_table.get_all_stock_closed_transaction() self.assertEqual(len(stock_closed_transaction_list), 0, "The list should be an empty list") return
def test_stock_cash_sanity(self): stock_db_connection = get_default_db_connection() reset_table(stock_db_connection) stock_cash_table = StockCashTable(stock_db_connection) stock_cash = StockCash("601398", 1000) stock_cash_table.add_stock_cash(stock_cash) # test the new created line stock_cash = stock_cash_table.get_stock_cash_by_symbol("601398") self.assertEqual(stock_cash.get_symbol(), "601398") self.assertEqual(stock_cash.get_amount(), 1000) # test update stock cash stock_cash.set_amount(23.456) stock_cash_table.update_stock_cash(stock_cash) stock_cash = stock_cash_table.get_stock_cash_by_symbol("601398") self.assertEqual(stock_cash.get_amount(), 23.456) # test an unavailable line stock_cash = stock_cash_table.get_stock_cash_by_symbol("XXXXXX") self.assertEqual(stock_cash, None) # insert a new line, and test get_all function stock_cash = StockCash("601857", 5000) stock_cash_table.add_stock_cash(stock_cash) stock_cash_list = stock_cash_table.get_all_stock_cash() self.assertEqual(len(stock_cash_list), 2) stock_cash = stock_cash_list[0] self.assertEqual(stock_cash.get_symbol(), "601398") self.assertEqual(stock_cash.get_amount(), 23.456) stock_cash = stock_cash_list[1] self.assertEqual(stock_cash.get_symbol(), "601857") self.assertEqual(stock_cash.get_amount(), 5000) # delete a line stock_cash = StockCash("601398", 0) stock_cash_table.delete_stock_cash(stock_cash) stock_cash = stock_cash_table.get_stock_cash_by_symbol("601398") self.assertEqual(stock_cash, None)