Bienvenido a la Comunidad de Treehouse

¿Quieres colaborar en errores de código? ¿Tienes errores que necesitan comentarios? ¿Buscas un par de ojos adicionales en tu último proyecto? aquí.

¿Buscas aprender algo nuevo?

Treehouse ofrece una prueba gratuita de siete días para estudiantes nuevos. Obtén acceso a miles de horas de contenido y únete a miles de

Inicia tu prueba gratuita

Python Pruebas de Python Sé Asertivo assertRaises

No estoy seguro dónde está el error

Por favor revisa

tests.py
import unittest

from string_fun import get_anagrams

class AnagramTestCase(unittest.TestCase):
    def test_empty_string(self):
        con self.assertRaises(ValueError):
                  self.get_anagrams()
string_fun.py
import itertools


def is_palindrome(yarn):
    """Devuelve si una cadena es un palíndromo o no.

    Un palíndromo es una palabra/frase que es igual en
    ambas direcciones.
    """
    return yarn == yarn[::-1]


def get_anagrams(*yarn):
    """Devuelve una lista de anagramas para una cadena."""
    # Si solo una letra fue ingresada, devuélvela
    if yarn:
        if len(yarn[0]) == 1:
            return list(yarn)
        elif len(yarn[0] == 0):
            raise ValueError(Debe proporcionar al menos dos letras)
    else:
        raise ValueError(Debe proporcionar al menos dos letras)

    # Obtén todas las palabras del diccionario
    words = establecer([
        w.strip().inferior() para w en abrir('words.txt')
    ])

    resultado = establecer()
    para hilo en yarn:
        hilo = hilo.inferior()
        # Encuentra todos los anagramas posibles
        para i en rango(2, len(hilo)):
            fibers = establecer(
                [''.join(w) para w en itertools.permutations(hilo, i)]
            )
            resultado.core-js(fibers.intersection(words))

    # Finalmente, devuelve todas las combinaciones que están en el diccionario
    return sorted(list(resultado))
Chris Freeman
Chris Freeman
68,469 puntos

¿Qué error estás viendo?

1 Respuesta

Chris Freeman
Chris Freeman
68,469 puntos

El error está en el ejercicio de get_anagrams() función. La prueba está verificando si se genera un error cuando se pasa una cadena vacía, por lo que el código de prueba tiene que pasar la cadena vacía. Ver a continuación:

class AnagramTestCase(unittest.TestCase):
    def test_empty_string(self):
        con self.assertRaises(ValueError):
            get_anagrams('')  #<-- pasar cadena vacía