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

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 

5 

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 

13 

14 # Crear el objeto mock que representa un usuario con un PasswordHash 

15 mock_user = MockUser(1, 'admin', 'admin123') # Contraseña simulada 

16 

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 

20 

21 # Datos del formulario de login 

22 data = {'username': 'admin', 'password': 'admin123'} 

23 response = client.post('/login', data=data) 

24 

25 # Imprimir la URL de redirección para depuración 

26 print("Redirección a:", response.location) 

27 

28 # Aserciones 

29 assert response.status_code == 302 # Redirección esperada 

30 assert response.location.endswith('/dashboard') # Redirige a dashboard 

31