Spaces:
Sleeping
Sleeping
| from django.test import TestCase | |
| from django.urls import reverse | |
| from ..models import Palabra | |
| class TestsApiWords(TestCase): | |
| def setUp(self): | |
| Palabra.objects.create(nombre_palabra="salado") | |
| def test_get_words_fail(self): | |
| word_name = "dulce" | |
| expected_error = "no existen palabras" | |
| response = self.client.get( | |
| reverse("cata_system:api_palabras")+f"?palabra={word_name}" | |
| ) | |
| self.assertEqual(response.status_code, 200) | |
| res_json = response.json() | |
| self.assertIn("error", res_json) | |
| self.assertEqual(res_json["error"], expected_error) | |
| def test_get_words_no_parameter(self): | |
| expected_error = "parametros no encontrados" | |
| response = self.client.get(reverse("cata_system:api_palabras")) | |
| self.assertEqual(response.status_code, 200) | |
| res_json = response.json() | |
| self.assertIn("error", res_json) | |
| self.assertEqual(res_json["error"], expected_error) | |
| def test_get_words_success(self): | |
| word_name = "sal" | |
| expected_message = "datos localizados" | |
| expected_data = Palabra.objects.filter( | |
| nombre_palabra__contains=word_name) | |
| response = self.client.get( | |
| reverse("cata_system:api_palabras")+f"?palabra={word_name}" | |
| ) | |
| self.assertEqual(response.status_code, 200) | |
| res_json = response.json() | |
| self.assertIn("message", res_json) | |
| self.assertEqual(res_json["message"], expected_message) | |
| data = res_json["data"] | |
| self.assertEqual(len(data), len(expected_data)) | |
| def test_post_word_success(self): | |
| word_name = "dulce" | |
| expected_message = "palabra creada" | |
| data = { | |
| "nombre_palabra": word_name | |
| } | |
| response = self.client.post(reverse("cata_system:api_palabras"), data) | |
| res_json = response.json() | |
| self.assertIn("message", res_json) | |
| self.assertEqual(res_json["message"], expected_message) | |
| data = res_json["data"] | |
| self.assertIn("id", data) | |
| self.assertIn("nombre_palabra", data) | |
| self.assertEqual(data["nombre_palabra"], word_name) | |
| def test_post_word_lowercase(self): | |
| word_name = "AMargo" | |
| expected_message = "palabra creada" | |
| data = { | |
| "nombre_palabra": word_name | |
| } | |
| response = self.client.post(reverse("cata_system:api_palabras"), data) | |
| res_json = response.json() | |
| self.assertIn("message", res_json) | |
| self.assertEqual(res_json["message"], expected_message) | |
| data = res_json["data"] | |
| self.assertIn("id", data) | |
| self.assertIn("nombre_palabra", data) | |
| self.assertEqual(data["nombre_palabra"], word_name.lower()) | |
| def test_post_word_fail(self): | |
| word_name = "salado" | |
| expected_error = "palabra repetida" | |
| data = {"nombre_palabra": word_name} | |
| response = self.client.post( | |
| reverse("cata_system:api_palabras"), | |
| data | |
| ) | |
| res_json = response.json() | |
| self.assertIn("error", res_json) | |
| self.assertEqual(res_json["error"], expected_error) | |
| def test_post_word_no_parameter(self): | |
| expected_error = "parametros requeridos" | |
| response = self.client.post(reverse("cata_system:api_palabras")) | |
| res_json = response.json() | |
| self.assertIn("error", res_json) | |
| self.assertEqual(res_json["error"], expected_error) | |
| def test_post_word_too_short(self): | |
| word_name = "ab" | |
| expected_error = "la palabra es muy corta" | |
| data = {"nombre_palabra": word_name} | |
| response = self.client.post( | |
| reverse("cata_system:api_palabras"), | |
| data | |
| ) | |
| res_json = response.json() | |
| self.assertIn("error", res_json) | |
| self.assertEqual(res_json["error"], expected_error) |