diff --git a/cosiap_api/notificaciones/Mensajes.py b/cosiap_api/notificaciones/Mensajes.py index 39289bdaafc0cb1a735479108445de5266bb3381..e53018b081781002ecb55f3614016bd7b043a1b2 100644 --- a/cosiap_api/notificaciones/Mensajes.py +++ b/cosiap_api/notificaciones/Mensajes.py @@ -11,63 +11,64 @@ class Mensaje: """ @staticmethod - def _add_message(response, tag, message): + def _add_message(data, tag, message=''): """ Añade un mensaje al diccionario de respuesta bajo el tipo especificado. Parámetros: - - response (dict): El diccionario de respuesta donde se añadirán los mensajes. + - response_data (dict): El diccionario de respuesta donde se añadirán los mensajes. - tag (str): El tipo de mensaje ('success', 'warning', 'error', 'info'). - message (str): El mensaje a añadir. - """ - if 'data' not in response: - response['data'] = {} - if 'message' not in response['data']: - response['data']['message'] = {} - if tag not in response['data']['message']: - response['data']['message'][tag] = [] - response['data']['message'][tag].append(message) + """ + if not isinstance(data, dict): + raise TypeError("El argumento 'data' debe ser un diccionario.") + + if 'messages' not in data: + data['messages'] = {} + if tag not in data['messages']: + data['messages'][tag] = [] + data['messages'][tag].append(message) @staticmethod - def success(response, message): + def success(response_data, message=''): """ Añade un mensaje de éxito al diccionario de respuesta. Parámetros: - - response (dict): El diccionario de respuesta. + - response_data (dict): El diccionario de respuesta. - message (str): El mensaje de éxito a añadir. """ - Mensaje._add_message(response, 'success', message) + Mensaje._add_message(response_data, 'success', message) @staticmethod - def warning(response, message): + def warning(response_data, message=''): """ Añade un mensaje de advertencia al diccionario de respuesta. Parámetros: - - response (dict): El diccionario de respuesta. + - response_data (dict): El diccionario de respuesta. - message (str): El mensaje de advertencia a añadir. """ - Mensaje._add_message(response, 'warning', message) + Mensaje._add_message(response_data, 'warning', message) @staticmethod - def error(response, message): + def error(response_data, message=''): """ Añade un mensaje de error al diccionario de respuesta. Parámetros: - - response (dict): El diccionario de respuesta. + - response_data (dict): El diccionario de respuesta. - message (str): El mensaje de error a añadir. """ - Mensaje._add_message(response, 'error', message) + Mensaje._add_message(response_data, 'error', message) @staticmethod - def info(response, message): + def info(response_data, message=''): """ Añade un mensaje informativo al diccionario de respuesta. Parámetros: - - response (dict): El diccionario de respuesta. + - response_data (dict): El diccionario de respuesta. - message (str): El mensaje informativo a añadir. """ - Mensaje._add_message(response, 'info', message) \ No newline at end of file + Mensaje._add_message(response_data, 'info', message) \ No newline at end of file diff --git a/cosiap_api/notificaciones/tests.py b/cosiap_api/notificaciones/tests.py index 7ce503c2dd97ba78597f6ff6e4393132753573f6..622e1ded6bc04ababf302d93211cd4bf03479454 100644 --- a/cosiap_api/notificaciones/tests.py +++ b/cosiap_api/notificaciones/tests.py @@ -1,3 +1,50 @@ -from django.test import TestCase +from rest_framework.test import APITestCase +from rest_framework import status +from users.models import Usuario, Solicitante +from django.urls import reverse +from rest_framework_simplejwt.tokens import AccessToken, RefreshToken -# Create your tests here. +class MensajeTestCase(APITestCase): + + def setUp(self): + # Crear un usuario común + self.user = Usuario.objects.\ + create_user(curp='testuser', + password='testpassword', + email='usuario1@gmail.com', + nombre='usuario') + + # Crear un usuario administrador + self.admin_user = Usuario.objects.\ + create_superuser(curp='adminuser', + password='adminpassword', + email='usuarioAdmin@gmail.com', + nombre='Administrador') + + # Generar tokens JWT para el usuario común y administrador + self.user_token = self.get_tokens_for_user(self.user) + self.admin_token = self.get_tokens_for_user(self.admin_user) + + # URL para la vista usuario + self.url = reverse('users:usuario-lista-crear') + + def get_tokens_for_user(self, user): + refresh = RefreshToken.for_user(user) + return { + 'refresh': str(refresh), + 'access': str(refresh.access_token), + } + + def test_usuario_lista_creacion_usuario_comun(self): + self.client.credentials(HTTP_AUTHORIZATION=f'Bearer {self.user_token["access"]}') + response = self.client.get(self.url) + print(response.data) + self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) + # Aquí puedes agregar más aserciones según los datos que esperas en la respuesta + + def test_usuario_lista_creacion_administrador(self): + self.client.credentials(HTTP_AUTHORIZATION=f'Bearer {self.admin_token["access"]}') + response = self.client.get(self.url) + print(response.data) + self.assertEqual(response.status_code, status.HTTP_200_OK) + # Añade aserciones adicionales según sea necesario para el rol de administrador diff --git a/cosiap_api/users/tests.py b/cosiap_api/users/tests.py index 0266776c4ab1a3e64c9074fb8f9b3519b98ee1ae..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/cosiap_api/users/tests.py +++ b/cosiap_api/users/tests.py @@ -1,3 +0,0 @@ -# Archivo con las funcionalidades de prueba para la gestión de usuarios -# Autor: Adalberto Cerrillo Vázquez -# Versión: 1.0 \ No newline at end of file