From 50268c52f99bd5d28d790320a5b1b602b9effcf5 Mon Sep 17 00:00:00 2001 From: RafaUC Date: Tue, 9 Jul 2024 13:47:00 -0600 Subject: [PATCH 1/2] test create --- cosiap_api/notificaciones/tests.py | 51 ++++++++++++++++++++++++++++-- cosiap_api/users/tests.py | 3 -- 2 files changed, 49 insertions(+), 5 deletions(-) diff --git a/cosiap_api/notificaciones/tests.py b/cosiap_api/notificaciones/tests.py index 7ce503c..f397fc9 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 .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_) + # 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 0266776..e69de29 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 -- GitLab From f3c05eb3d9597a6cf8678ab004005adc7b46e33a Mon Sep 17 00:00:00 2001 From: RafaUC Date: Wed, 10 Jul 2024 11:19:31 -0600 Subject: [PATCH 2/2] Areglada funcionalidad de mensajes --- cosiap_api/notificaciones/Mensajes.py | 45 ++++++++++++++------------- cosiap_api/notificaciones/tests.py | 4 +-- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/cosiap_api/notificaciones/Mensajes.py b/cosiap_api/notificaciones/Mensajes.py index 39289bd..e53018b 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 f397fc9..622e1de 100644 --- a/cosiap_api/notificaciones/tests.py +++ b/cosiap_api/notificaciones/tests.py @@ -1,6 +1,6 @@ from rest_framework.test import APITestCase from rest_framework import status -from .models import Usuario, Solicitante +from users.models import Usuario, Solicitante from django.urls import reverse from rest_framework_simplejwt.tokens import AccessToken, RefreshToken @@ -39,7 +39,7 @@ class MensajeTestCase(APITestCase): 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_) + 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): -- GitLab