import unittest from unittest.mock import patch, MagicMock from src.BrighterTrades import BrighterTrades # Ensure you have the correct import path class TestBrighterTrades(unittest.TestCase): def setUp(self): self.brighter_trades = BrighterTrades() @patch('brighter_trades.Configuration') def test_create_new_user(self, MockConfiguration): mock_config = MockConfiguration.return_value mock_config.users.create_new_user.return_value = True mock_config.users.log_in_user.return_value = True result = self.brighter_trades.create_new_user('test@example.com', 'testuser', 'password') self.assertTrue(result) mock_config.users.create_new_user.assert_called_with(email='test@example.com', username='testuser', password='password') mock_config.users.log_in_user.assert_called_with(username='testuser', password='password') @patch('brighter_trades.Configuration') def test_log_user_in_out_login(self, MockConfiguration): mock_config = MockConfiguration.return_value mock_config.users.log_in_user.return_value = True result = self.brighter_trades.log_user_in_out('testuser', 'login', 'password') self.assertTrue(result) mock_config.users.log_in_user.assert_called_with(username='testuser', password='password') @patch('brighter_trades.Configuration') def test_log_user_in_out_logout(self, MockConfiguration): mock_config = MockConfiguration.return_value mock_config.users.log_out_user.return_value = True result = self.brighter_trades.log_user_in_out('testuser', 'logout') self.assertTrue(result) mock_config.users.log_out_user.assert_called_with(username='testuser') @patch('brighter_trades.Configuration') def test_get_user_info(self, MockConfiguration): mock_config = MockConfiguration.return_value mock_config.users.get_chart_view.return_value = {'timeframe': '1d', 'exchange': 'binance', 'market': 'BTC/USDT'} result = self.brighter_trades.get_user_info('testuser', 'Chart View') self.assertEqual(result, {'timeframe': '1d', 'exchange': 'binance', 'market': 'BTC/USDT'}) mock_config.users.get_chart_view.assert_called_with(user_name='testuser') @patch('brighter_trades.Candles') @patch('brighter_trades.Configuration') def test_get_market_info(self, MockConfiguration, MockCandles): mock_candles = MockCandles.return_value mock_candles.get_candle_history.return_value = [ {'open': 1, 'high': 2, 'low': 0.5, 'close': 1.5, 'volume': 1000}] chart_view = {'market': 'BTC/USDT', 'timeframe': '1d', 'exchange': 'binance'} result = self.brighter_trades.get_market_info('Candle History', chart_view=chart_view, num_records=10, user_name='testuser') self.assertEqual(result, [{'open': 1, 'high': 2, 'low': 0.5, 'close': 1.5, 'volume': 1000}]) mock_candles.get_candle_history.assert_called_with(num_records=10, symbol='BTC/USDT', interval='1d', exchange_name='binance', user_name='testuser') # Add more tests for other methods if __name__ == '__main__': unittest.main()