Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test privados AC05 erroneos #623

Open
waknaudt opened this issue Jun 20, 2024 · 3 comments
Open

Test privados AC05 erroneos #623

waknaudt opened this issue Jun 20, 2024 · 3 comments
Assignees
Labels
Actividad Duda AC. Pueden responderse en los alumnos, pero el cuerpo docente no la responderá.

Comments

@waknaudt
Copy link

Hola, al ejecutar test_AC05.py me sale el siguiente error:
import api_privado
ModuleNotFoundError: No module named 'api_privado'

@waknaudt waknaudt added the Actividad Duda AC. Pueden responderse en los alumnos, pero el cuerpo docente no la responderá. label Jun 20, 2024
@cataconi
Copy link
Contributor

Holaa, mil disculpas, se nos pasó agregar ese archivo, pero ya esta todo subido✨.

@cataconi cataconi self-assigned this Jun 21, 2024
@cataconi
Copy link
Contributor

@waknaudt
Copy link
Author

waknaudt commented Jun 27, 2024

Hola, despues de revisar los tests privados creo que estos siguen teniendo errores. En api_privado.py, se ve lo siguiente en lineas desde 173 a 221:

@endpoint("/update", "POST")
    def update_signo_post(self, params, body, *args, **kwargs):
        response = {"result": ""}
        if "signo" not in body or "mensaje" not in body:
            response["result"] = "Falta información en la consulta"
            return response, BAD

        # Recardar que siempre el "valor" del diccionario será una lista
        # aunque sea de 1 elemento.
        mensaje = body["mensaje"][0]
        signo = body["signo"][0]

        if len(mensaje) < 5:
            response["result"] = "El mensaje debe tener más de 4 caracteres"
            return response, BAD

        if signo not in self.database:
            self.database[signo] = mensaje
            response["signos"] = list(self.database.keys())
            response["result"] = "Información agregada con éxito"
            return response, OK

        response["result"] = "El signo ya existe, no puedes modificarlo"
        return response, BAD

    @endpoint("/update", "PUT")
    def update_signo_put(self, params, body, *args, **kwargs):
        response = {"result": ""}

        if "signo" not in body or "mensaje" not in body:
            response["result"] = "Falta información en la consulta"
            return response, BAD

        # Recardar que siempre el "valor" del diccionario será una lista
        # aunque sea de 1 elemento.
        mensaje = body["mensaje"][0]
        signo = body["signo"][0]

        if len(mensaje) < 5:
            response["result"] = "El mensaje debe tener más de 4 caracteres"
            return response, BAD

        if signo not in self.database:
            response["result"] = "El signo no existe."
            return response, BAD

        self.database[signo] = mensaje
        response["result"] = "Información actualizada con éxito"
        return response, OK

Como se puede ver en los @endpoint, estos solo aceptan POST o PUT en /update. Sin embargo, en el enunciado dice lo siguiente:

def actualizar_horoscopo(self, signo: str, mensaje: str, access_token: str) -> str:
Recibe un signo del horóscopo, un mensaje y token de acceso de YolandAPI. Con estos datos,
deberás realizar una request de tipo PATCH a la ruta f"{self.base}/update", para modificar el
mensaje asociado a un signo en la base de datos de YolandAPI...

Es decir, el enunciado dice que la request debe ser tipo PATCH, no POST ni PUT. Los test privados esperan requests del tipo POST o PUT, contradiciendo el enunciado. Si se cambia @endpoint("/update", "PUT") por @endpoint("/update", "PATCH") en api_privado.py, los 3 errores que me enviaron en el feedback desaparecen y corre todo sin errores.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Actividad Duda AC. Pueden responderse en los alumnos, pero el cuerpo docente no la responderá.
Projects
None yet
Development

No branches or pull requests

2 participants