Coverage for tests/test_user_manager.py: 100%
18 statements
« prev ^ index » next coverage.py v7.6.1, created at 2024-11-30 23:17 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2024-11-30 23:17 +0000
1def test_index(client):
2 response = client.get('/')
3 assert response.status_code == 200
4 assert b"login" in response.data # Verifica si el texto 'login' está presente
6def test_login(client, mocker):
7 # Crear un objeto mock para simular la respuesta de la base de datos
8 class MockUser:
9 def __init__(self, user_id, username, password_hash):
10 self.UserId = user_id
11 self.Username = username
12 self.PasswordHash = password_hash
14 # Crear el objeto mock que representa un usuario con un PasswordHash
15 mock_user = MockUser(1, 'admin', 'admin123') # Contraseña simulada
17 # Mockear la consulta a la base de datos para devolver el mock de usuario
18 mock_cursor = mocker.patch('pyodbc.connect')
19 mock_cursor.return_value.cursor.return_value.fetchone.return_value = mock_user
21 # Datos del formulario de login
22 data = {'username': 'admin', 'password': 'admin123'}
23 response = client.post('/login', data=data)
25 # Imprimir la URL de redirección para depuración
26 print("Redirección a:", response.location)
28 # Aserciones
29 assert response.status_code == 302 # Redirección esperada
30 assert response.location.endswith('/dashboard') # Redirige a dashboard