Coverage for tests/test_transaction_manager.py: 100%
30 statements
« prev ^ index » next coverage.py v7.6.8, created at 2024-11-30 23:18 +0000
« prev ^ index » next coverage.py v7.6.8, created at 2024-11-30 23:18 +0000
1import pytest
2from unittest.mock import patch
3from datetime import datetime
4from classes.transaction_manager import TransactionManager
5from config.database import Database
7@pytest.fixture
8def mock_database_connection():
9 with patch.object(Database, 'get_connection') as mock_connection:
10 mock_cursor = mock_connection.return_value.cursor.return_value
11 mock_cursor.execute.return_value = None
12 mock_connection.return_value.commit.return_value = None
13 yield mock_connection
15def test_register_transaction_success(mock_database_connection):#Prueba que el registro de una transacción se realice correctamente.
16 result = TransactionManager.register_transaction(
17 1, "USD", "EUR", 100.00, 0.9, 90.00
18 )
19 assert result is True
21#Prueba que el método maneja correctamente los errores de base de datos durante el registro de una transacción.
22def test_register_transaction_database_error(mock_database_connection):
23 mock_database_connection.side_effect = Exception("Error de base de datos")
24 result = TransactionManager.register_transaction(1, "USD", "EUR", 100.00, 0.9, 90.00)
25 assert "error" in result
26 assert result["error"] == "Error de base de datos"
27#Prueba que la obtención de transacciones de un usuario se realice correctamente.
28def test_get_user_transactions_success(mock_database_connection):
29 mock_cursor = mock_database_connection.return_value.cursor.return_value
30 mock_cursor.fetchall.return_value = [
31 (1, 1, "USD", "EUR", 100.00, 0.9, 90.00, datetime.now()),
32 (2, 1, "EUR", "JPY", 200.00, 123.0, 24600.00, datetime.now())
33 ]
34 transactions = TransactionManager.get_user_transactions(1)
35 assert len(transactions) == 2
37#Prueba que el método maneja correctamente los errores de base de datos durante la obtención de transacciones de un usuario.
38def test_get_user_transactions_database_error(mock_database_connection):
39 mock_database_connection.side_effect = Exception("Error de base de datos")
40 transactions = TransactionManager.get_user_transactions(1)
41 assert "error" in transactions
42 assert transactions["error"] == "Error de base de datos"