Example #1
0
class seguridadTestCase(unittest.TestCase):
    def setUp(self):
        self.seguridad = Seguridad()

    #(1) Verifica que exista la clase self.seguridad.
    def test_seguridad(self):
        valid = self.seguridad
        self.assertNotEqual(valid, None)

    #(2) Verifica que exista el metodo registrarUsuario.
    def test_registrar(self):
        valid = self.seguridad.registrarUsuario("*****@*****.**",
                                                "X7SJus62h7AHv",
                                                "X7SJus62h7AHv")
        self.assertNotEqual(valid, None)

    #(4) Verifica que la clave tenga longitud mayor que 7.
    def test_PasswordMin(self):
        valid = self.seguridad.registrarUsuario("[email protected]", "X7SJ",
                                                "X7SJ")
        self.assertEqual(valid, False)

    #(6) Verifica que la clave no tenga caracteres no alfanumericos.
    def test_PasswordAlphaNum(self):
        valid = self.seguridad.registrarUsuario("[email protected]",
                                                "X7SJus62h7AHv?",
                                                "X7SJus62h7AHv?")
        self.assertEqual(valid, False)

    #(8) Verifica que la clave tenga al menos una mayuscula.
    def test_PasswordKeyMax(self):
        valid = self.seguridad.registrarUsuario("*****@*****.**",
                                                "x781dd3pru3hv",
                                                "x781dd3pru3hv")
        self.assertEqual(valid, False)

    #(10) Verifica que la clave tenga al menos un digito.
    def test_PasswordDigit(self):
        valid = self.seguridad.registrarUsuario("*****@*****.**",
                                                "probandoPass", "probandoPass")
        self.assertEqual(valid, False)

    #(12) Verifica que se agrega el usuario al diccionario.
    def test_AddUser(self):
        diccionario = len(self.seguridad.users)
        valid = self.seguridad.registrarUsuario("*****@*****.**",
                                                "X7SJus62h7AHv",
                                                "X7SJus62h7AHv")
        diccionarioAdd = len(self.seguridad.users)
        self.assertNotEqual(diccionario, diccionarioAdd)

    #Verifica que el id de correo sea valido segun el estandar RFC 822.
    def test_EmailValid(self):
        valid = self.seguridad.registrarUsuario("[email protected]",
                                                "X7SJus62h7AHv",
                                                "X7SJus62h7AHv")
        self.assertEqual(valid, False)

    #Verifica que la clave tenga longitud menor que 17.
    def test_PasswordMax(self):
        valid = self.seguridad.registrarUsuario("[email protected]",
                                                "X7SJus62h7AHvxxxx",
                                                "X7SJus62h7AHvxxxx")
        self.assertEqual(valid, False)

    #Verifica que la clave tenga al menos tres letras.
    def test_Password3(self):
        valid = self.seguridad.registrarUsuario("[email protected]",
                                                "9999163121A66o",
                                                "9999163121A66o")
        self.assertEqual(valid, False)

    #Verifica que la clave tenga al menos una minuscula.
    def test_PasswordKeyMin(self):
        valid = self.seguridad.registrarUsuario("*****@*****.**",
                                                "X781DD3PRU3HV",
                                                "X781DD3PRU3HV")
        self.assertEqual(valid, False)

    #Verifica que las claves dadas como parametros sean iguales.
    def test_SamePassword(self):
        valid = self.seguridad.registrarUsuario("*****@*****.**",
                                                "X7SJus62h7AHv",
                                                "X7SJus62h7AHf")
        self.assertEqual(valid, False)
Example #2
0
 def setUp(self):
     self.seguridad = Seguridad()
Example #3
0
class TestSeguridad(unittest.TestCase):

	def setUp(self):
		self.seguridad = Seguridad()

	def tearDown(self):
		self.seguridad = None

	# Prueba 1. Caso interior. Se llama la funcion registrarUsuario()
	# con un correo electronico valido y dos claves iguales.
	# Caso interior. El valor esperado es que la funcion retorne True
	# y almacene en el diccionario de Seguridad el usuario y la contraseña.

	def test_registrar_usuario_1(self):
		self.assertTrue(self.seguridad.registrarUsuario("*****@*****.**","mmM123MJ","mmM123MJ"))

	# Resultado de primera ejecucion: Falla porque la funcion no esta definida.
	# Resultado posterior: Retorna True, la funcion fue definida para retornar el valor


	# Prueba 2. Caso frontera. Se llama la funcion registrarUsuario con un
	# correo electronico invalido, y dos claves validas e iguales.
	# El valor esperado es que la funcion retorne False y no almacene nada.

	def test_registrar_usuario_correo_invalido(self):
		self.assertFalse(self.seguridad.registrarUsuario("andresitorresm", "mmM123MJ", "mmM123MJ"))

	# Resultado de primera ejecucion: Falla porque retorna True y no False
	# Resultado de siguiente ejecucion: Retorna False, ahora se verifican los correos

	# Prueba 2.5. Casos frontera. Se llama a la funcion es_correo_valido
	# con dos correo electronico validos, uno invalido y uno vacio, para verificar
	# que la funcion auxiliar programada es correcta.
	# Los valores esperados son True, True, False y False

	def test_es_correo_valido(self):
		self.assertTrue(self.seguridad.es_correo_valido("*****@*****.**"))
		self.assertTrue(self.seguridad.es_correo_valido("*****@*****.**"))
		self.assertFalse(self.seguridad.es_correo_valido("14-11082"))
		self.assertFalse(self.seguridad.es_correo_valido(""))

	# Resultado de la primera ejecucion: La prueba pasa, se verifica que la funcion auxiliar es correcta


	# Prueba 3. Caso frontera. Se llama la funcion registrarUsuario con un correo electronico
	# valido pero con dos claves que no coinciden. Se espera que la funcion
	# retorne False ya que las claves no son la misma.

	def test_registrar_usuario_claves_distintas(self):
		self.assertFalse(self.seguridad.registrarUsuario("*****@*****.**", "mmM123MK", "mmM132MJ"))

	# Resultado de primera ejecucion: Falla porque la funcion solo verifica si el correo
	# es valido o no
	# Resultado de la siguiente ejecucion: Pasa, porque ahora se verifica
	# que ambas claves sean la misma

	# Prueba 3.5. Casos frontera. Se llama a la funcion claves_coinciden con
	# dos pares de claves que coinciden, un par que no coincide, y dos pares de claves que
	# alternan una estar vacia y la otra no, para verificar que la funcion
	# auxiliar programada es correcta.
	# Los valores esperados son True, True, False, False, False.

	def test_claves_coinciden(self):
		self.assertTrue(self.seguridad.claves_coinciden("clave1", "clave1"))
		self.assertTrue(self.seguridad.claves_coinciden("4m1g0LDC", "4m1g0LDC"))
		self.assertFalse(self.seguridad.claves_coinciden("clave1", "clave2"))
		self.assertFalse(self.seguridad.claves_coinciden("clave1", ""))
		self.assertFalse(self.seguridad.claves_coinciden("", "clave2"))

	# Resultado de la primera ejecucion: Las pruebas pasan, y se verifica que la
	# funcion auxiliar claves_coinciden cumplen con su cometido


	# Prueba 4. Caso interior. Verificacion de longitud. Se llama la funcion
	# con un correo electronico valido y dos claves que coinciden pero
	# que estan por debajo o por encima del tamano permitido. Los valores esperados
	# en las dos pruebas a realizar son False y False.

	def test_registrar_usuario_longitud_claves(self):
		self.assertFalse(self.seguridad.registrarUsuario("*****@*****.**", "m1", "m1"))
		self.assertFalse(self.seguridad.registrarUsuario("*****@*****.**", "mmmmmJJJJJ1111133333", "mmmmmJJJJJ1111133333"))

	# Resultado de primera ejecucion: Falla porque las claves coinciden y eso es todo lo
	# que se valida hasta este punto.
	# Resultado de siguiente ejecucion: Pasa, ya se valida la longitud de las
	# claves.

	# Prueba 4.5. Casos frontera. Se verifica el correcto funcionamiento de la
	# funcion auxiliar tiene_longitud_correcta para conocer si la funcion labora
	# de la manera correcta, con dos pares de contraseñas de longitud correcta,
	# y dos pares de contraseñas de longitud incorrecta.
	# Los resultados esperados son True, True y False, False

	def test_longitud_correcta(self):
		self.assertTrue(self.seguridad.clave_tiene_longitud_correcta("holaAmigo"))
		self.assertTrue(self.seguridad.clave_tiene_longitud_correcta("hola12345687"))
		self.assertFalse(self.seguridad.clave_tiene_longitud_correcta("clave"))
		self.assertFalse(self.seguridad.clave_tiene_longitud_correcta("hola_estaes_una_clave_muy_larga"))

	# Resultado de la primera ejecucion: las pruebas pasan porque la funcion se desempeña
	# de la manera correcta


	# Prueba 5. Caso interior. Verificacion de caracteres especiales. Se llama la funcion
	# registrarUsuario con un correo electronico valido y claves que coinciden de igual longitud
	# pero que incluyen simbolos especiales.
	# El valor esperado es False, ya que solo se permiten numeros y letras en la clave.

	def test_claves_caracteres_especiales(self):
		self.assertFalse(self.seguridad.registrarUsuario("*****@*****.**", "hola1234_", "hola1234_"))
		self.assertFalse(self.seguridad.registrarUsuario("*****@*****.**", "@m_g1.-_{", "@m_g1.-_{"))

	# Resultado de la primera ejecucion: la prueba falla porque devuelve True, no se verifica
	# que solo se permitan utilizar letras y numeros en las claves
	# Resultado de la siguiente ejecucion: la prueba pasa porque ya verifica
	# si la clave tiene simbolos permitidos

	# Prueba 5.5. Verificacion de simbolos permitidos. Se llama la funcion
	# clave_tiene_simbolos_permitidos con dos claves con simbolos validos y dos claves
	# con simbolos invalidos para conocer si la funcion creada se comporta
	# como deberia. Los resultados esperados son True, True, False, False.

	def test_simbolos_especiales(self):
		self.assertTrue(self.seguridad.clave_tiene_simbolos_permitidos("amigo"))
		self.assertTrue(self.seguridad.clave_tiene_simbolos_permitidos("jfgnr1574"))
		self.assertFalse(self.seguridad.clave_tiene_simbolos_permitidos("amigo-"))
		self.assertFalse(self.seguridad.clave_tiene_simbolos_permitidos("4_$/#$%&1"))

	# Resultado de la primera ejecucion: las pruebas pasan, por lo que la funcion
	# verifica correctamente que solo se tengan simbolos del conjunto permitido

	# Prueba 6. Se verifica que la clave debe contener ciertos patrones en las
	# letras, a saber: al menos tres letras, de esas al menos una minuscula y una mayuscula.
	# Se ejecuta la funcion con una clave que cumple con estos parametros y
	# tres pares que no cumplen. El valor esperado es True para el primer caso y False para los
	# otros tres. Esta prueba seria de interior y frontera.

	def test_requerimientos_en_letras(self):
		self.assertTrue(self.seguridad.registrarUsuario("*****@*****.**", "aAama1234", "aAama1234"))
		self.assertFalse(self.seguridad.registrarUsuario("*****@*****.**", "aA123456", "aA123456"))
		self.assertFalse(self.seguridad.registrarUsuario("*****@*****.**", "aa11bb22", "aa11bb22"))
		self.assertFalse(self.seguridad.registrarUsuario("*****@*****.**", "12345678", "12345678"))

	# Resultado de la primera ejecucion: La prueba falla porque todo retorna True, no se validan las
	# condiciones de letras.
	# Resultado de la segunda ejecucion: La prueba pasa ya que se verifican las
	# cantidades de letras segun lo establecido.

	# Prueba 6.5. Verificacion de funcion de letras minimas. Se ejecutan pruebas
	# varias para la funcion clave_tiene_letras_minimas, con tres casos de claves que
	# tienen las letras validas y tres que no las tienen. Se espera como resultado
	# True, True, True, False, False, False. Estas pruebas son de frontera.

	def test_letras_minimas(self):
		self.assertTrue(self.seguridad.clave_tiene_letras_minimas("aaB"))
		self.assertTrue(self.seguridad.clave_tiene_letras_minimas("amiGote1234"))
		self.assertTrue(self.seguridad.clave_tiene_letras_minimas("BBr"))
		self.assertFalse(self.seguridad.clave_tiene_letras_minimas("aa"))
		self.assertFalse(self.seguridad.clave_tiene_letras_minimas("a1234124"))
		self.assertFalse(self.seguridad.clave_tiene_letras_minimas("Ax12581879"))

	# Resultado de la primera ejecucion: La prueba se ejecuta correctamente verificando que la
	# funcion de verificacion de letras minimas esta correcta.


	# Prueba 7. Se ejecuta la funcion registrarUsuario con una clave que no
	# tiene digitos, conociendo que las claves deben tener al menos un digito como
	# condicion minima de validez. Se llama con dos casos de prueba, uno que cumple con
	# tener al menos un digito y otro que no lo tiene pero que cumplen con el
	# resto de criterios. La prueba seria de interior y de frontera. Se espera que
	# los valores sean True, False.

	def test_tiene_digitos_minimos(self):
		self.assertTrue(self.seguridad.registrarUsuario("*****@*****.**", "1amiGuito", "1amiGuito"))
		self.assertFalse(self.seguridad.registrarUsuario("*****@*****.**", "amiGOami", "amiGOami"))

	# Resultado de la primera ejecucion: La prueba se ejecuta y falla, ya que acepta todas las claves
	# a pesar de que uan no tiene digitos.
	# Resultado de la siguiente ejecucion: la prueba pasa tras refactorizar la funcion.

	# Prueba 7.5. Se realizan pruebas varias de frontera e interior para
	# verificar la validez de la funcion auxilizar clave_tiene_digitos_minimos,
	# con dos casos validos y dos invalidos. Se esperan como resultados True, True,
	# False, False.

	def test_digitos_minimos(self):
		self.assertTrue(self.seguridad.clave_tiene_digitos_minimos("12asdf"))
		self.assertTrue(self.seguridad.clave_tiene_digitos_minimos("1"))
		self.assertFalse(self.seguridad.clave_tiene_digitos_minimos("asdfgaewfaw"))
		self.assertFalse(self.seguridad.clave_tiene_digitos_minimos("holaClave"))

	# Resultado de la primera ejecucion: La prueba se ejecuta correctamente verificando que la
	# funcion de verificacion de digitos minimos esta correcta.


	# Prueba 8. Se llama la funcion para verificar que, si se inserta correctamente un
	# email y un par de claves validas, se guarda en el diccinario el reverso de la clave
	# asociada al mail. Esta prueba es de interior. El resultado esperado es que
	# se retorne el reverso de la clave al acceder al diccionario.

	def test_guardar_datos(self):
		self.assertTrue(self.seguridad.registrarUsuario("*****@*****.**", "CLave1234", "CLave1234"))
		self.assertEquals(self.seguridad.usuarios["*****@*****.**"], "4321evaLC")

	# Resultado de la primera ejecucion: La prueba falla ya que no existe el diccionario,
	# porque no hay flujo de almacenamiento de datos.


	# Prueba 9. Se llama la funcion ingresarUsuarios con un correo de usuario y
	# una clave registradas, para verificar que la funcion se ejecute correctamente.
	# El caso esperado es que retorne True para hacer login. Al momento de escribir
	# la prueba, la funcion no esta definida.

	def test_ingresar_usuarios1(self):
		self.assertTrue(self.seguridad.registrarUsuario("*****@*****.**", "mmM12345", "mmM12345"))
		self.assertTrue(self.seguridad.ingresarUsuario("*****@*****.**", "mmM12345"))

	# Resultado de la priemra ejecucion: la funcion falla porque no esta definida.
	# El resultado de la siguien ejecucion: la prueba pasa porque la funcion esta definida y retorna True.

	# Prueba 10. Se llama la funcion ingresarUsuarios con un correo de usuario invalido,
	# esperando que la funcion falle al verificar si el correo es valido.
	# El resultado esperado es que retorne False. Es una prueba frontera.

	def test_ingresar_correo_invalido(self):
		self.assertFalse(self.seguridad.ingresarUsuario("usuario.com", "mmM12345"))

		# Resultado de la priemra ejecucion: la funcion falla porque siempre devuelve True.
		# Resultado de la segunda ejecucion: la funcion retorna False y pasa la prueba.


	# Prueba 11. Se llama la funcion ingresarUsuarios con un correo de usuario valido
	# pero con contraseñas invalidas, esperando que la funcion falle al verificar
	# la contraseña. El resutlado esperado es que retorne False. Es una prueba frontera.

	def test_ingresar_clave_invalida(self):
		self.assertFalse(self.seguridad.ingresarUsuario("*****@*****.**", "amigo"))
		self.assertFalse(self.seguridad.ingresarUsuario("*****@*****.**", "233565465456"))
		self.assertFalse(self.seguridad.ingresarUsuario("*****@*****.**", "!!aAami1234"))

	# Resultado de la primera ejecucion: La funcion falla porque solo verifica la validez del correo.
	# Resultado de la segunda ejecucion: La funcion retorna False en todos los casos
	# porque ahora verifica la validez de la contraseña.


	# Prueba 12. Se llama la funcion ingresarUsuario con un correo de usuario valido y
	# una clave valida pero que no han sido registrados antes, esperando que la funcin
	# falle el login. Es una prueba interior. El resultado esperado es que retorne False.

	def test_ingresar_datos_correctos(self):
		self.assertFalse(self.seguridad.ingresarUsuario("*****@*****.**", "aaA123456"))

	# El resulatdo de la primera ejecucion: La funcion falla poqrue solo verifica que los formatos
	# de correo y contraseña sean correctos.
	# El resultado de la siguien ejecucion: La prueba pasa poqrue ya se verifica si la clave
	# esta en el diccionario

	# Prueba 12.5. Se verifica el funcionamiento de la funcion esta_en_diccionario
	# que fue agregada de manera auxiliar para pasar la prueba 12. La prueba es de interior y
	# de frontera. El resultado esperado, para los cuatro casos, son True, True, False

	def test_esta_en_diccionario(self):
		self.seguridad.usuarios['*****@*****.**'] = "amigo"[::-1]
		self.seguridad.usuarios['*****@*****.**'] = "aaAa1234"[::-1]

		self.assertTrue(self.seguridad.esta_en_diccionario("*****@*****.**", "amigo"))
		self.assertTrue(self.seguridad.esta_en_diccionario("*****@*****.**", "aaAa1234"))
		self.assertFalse(self.seguridad.esta_en_diccionario("*****@*****.**", "asdf15858"))
		self.assertFalse(self.seguridad.esta_en_diccionario("*****@*****.**", "claveinvalida"))
Example #4
0
class TestSeguridad(unittest.TestCase):
    def setUp(self):
        self.seguridad = Seguridad()

    def tearDown(self):
        self.seguridad = None

######################### PARTICION 1: LOS USUARIOS SE REGISTRAN SATISFACTORIAMENTE
######################### TIPO DE PRUEBA: FRONTERA

# FRONTERA MINIMA DE LONGITUD ACEPTABLE: 8 CARACTERES

    '''
    PRUEBA 1: Formato de contrasena
    Tipo: Frontera
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Exactamente 3 letras
        2) Exactamente una letra mayuscula
        3) Nuemero de digitos 5 
        4) Longitud de 8 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''
    def test_frontera_registrarUsuarioP1(self):
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "Maa15678",
                                            "Maa15678"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "1And5200",
                                            "1And5200"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "0Myf5430",
                                            "0Myf5430"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "Ang00000",
                                            "Ang00000"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "11Pmj111",
                                            "11Pmj111"))

    '''
    PRUEBA 2: Formato de contrasena
    Tipo: Frontera
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Exactamente 3 letras
        2) Exactamente una letra minuscula
        3) Nuemero de digitos 5 
        4) Longitud de 8 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_frontera_registrarUsuarioP2(self):
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "mAA15678",
                                            "mAA15678"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "1aND5200",
                                            "1aND5200"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "0mYF5430",
                                            "0mYF5430"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "aNG00000",
                                            "aNG00000"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "11pMJ111",
                                            "11pMJ111"))

    '''
    PRUEBA 3: Formato de contrasena
    Tipo: Frontera
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Numero de letras 7
        2) Exactamente un digito
        3) Numero de mayus/minus indeterminado 
        4) Longitud de 8 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_frontera_registrarUsuarioP3(self):
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "mAAaaaa8",
                                            "mAAaaaa8"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "maNDmmm0",
                                            "maNDmmm0"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "AmY1FFFf",
                                            "AmY1FFFf"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "aNG0NGNG",
                                            "aNG0NGNG"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "1MpMJMJM",
                                            "1MpMJMJM"))

    # FRONTERA MAXIMA DE LONGITUD ACEPTABLE: 16 CARACTERES
    '''
    PRUEBA 4: Formato de contrasena
    Tipo: Frontera
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Exactamente 3 letras
        2) Exactamente una letra mayuscula
        3) Nuemero de digitos 13 
        4) Longitud de 16 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_frontera_registrarUsuarioP4(self):
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "Maa1567811111111",
                                            "Maa1567811111111"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "1And520000000000",
                                            "1And520000000000"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "0Myf543000000000",
                                            "0Myf543000000000"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "Ang0000000000000",
                                            "Ang0000000000000"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "11Pmj11111111111",
                                            "11Pmj11111111111"))

    '''
    PRUEBA 5: Formato de contrasena
    Tipo: Frontera
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Exactamente 3 letras
        2) Exactamente una letra minuscula
        3) Nuemero de digitos 13 
        4) Longitud de 16 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_frontera_registrarUsuarioP5(self):
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "mAA1567811111111",
                                            "mAA1567811111111"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "1aND520000000000",
                                            "1aND520000000000"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "0mYF543000000000",
                                            "0mYF543000000000"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "aNG0000000000000",
                                            "aNG0000000000000"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "11pMJ11111111111",
                                            "11pMJ11111111111"))

    '''
    PRUEBA 6: Formato de contrasena
    Tipo: Frontera
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Numero de letras 15
        2) Exactamente un digito
        3) Numero de mayus/minus indeterminado 
        4) Longitud de 16 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_frontera_registrarUsuarioP6(self):
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "mAAaaaa8aaaaaaaa",
                                            "mAAaaaa8aaaaaaaa"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "maNDmmm0mmmmmmmm",
                                            "maNDmmm0mmmmmmmm"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "AmY1FFFfmmmmmmmm",
                                            "AmY1FFFfmmmmmmmm"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "aNG0NGNGaaaaaaaa",
                                            "aNG0NGNGaaaaaaaa"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "1MpMJMJMpppppppp",
                                            "1MpMJMJMpppppppp"))

######################### PARTICION 2: LOS USUARIOS No SE PUEDEN REGISTRAN error en formato de contrasena
######################### TIPO DE PRUEBA: FRONTERA

# TAMANO DE CONTRASENA FRONTERA NO ACEPTADO 7 CARACTERES / 17 CARACTERES

    '''
    PRUEBA 7: Formato de contrasena
    Tipo: Frontera
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Exactamente 3 letras
        2) Exactamente 1 letra mayuscula
        3) Nuemero de digitos 4
        4) Longitud de 7 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''
    def test_frontera_registrarUsuarioP7(self):
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "Maa5678",
                                            "Maa5678"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "And5200",
                                            "And5200"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "Myf5430",
                                            "Myf5430"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "Ang0000",
                                            "An00000"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "1Mmj111",
                                            "1Mmj111"))

    '''
    PRUEBA 8: Formato de contrasena
    Tipo: Frontera
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Exactamente 3 letras
        2) Exactamente una letra minuscula
        3) Nuemero de digitos 4 
        4) Longitud de 7 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_frontera_registrarUsuarioP8(self):
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "mAA5678",
                                            "mAA5678"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "aND5200",
                                            "aND5200"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "mYF5430",
                                            "mYF5430"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "aNG0000",
                                            "aNG0000"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "11pMJ11",
                                            "11pMJ11"))

    '''
    PRUEBA 9: Formato de contrasena
    Tipo: Frontera
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Numero de letras 6
        2) Exactamente un digito
        3) Numero de mayus/minus indeterminado 
        4) Longitud de 7 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_frontera_registrarUsuarioP9(self):
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "mAAaaa8",
                                            "mAAaaa8"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "maNDmm0",
                                            "maNDmm0"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "AmY1FFF",
                                            "AmY1FFF"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "aNG0NGN",
                                            "aNG0NGN"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "1MpMJMJ",
                                            "1MpMJMJ"))

    # LONGITUD EN FRONTERA INVALIDA DE CONTRASENA 17 CARACTERES
    '''
    PRUEBA 10: Formato de contrasena
    Tipo: Frontera
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Exactamente 3 letras
        2) Exactamente una letra mayuscula
        3) Nuemero de digitos 14 
        4) Longitud de 17 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_frontera_registrarUsuarioP10(self):
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "Maa15678111111111",
                                            "Maa15678111111111"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "1And5200000000000",
                                            "1And5200000000000"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "0Myf5430000000000",
                                            "0Myf5430000000000"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "Ang00000000000000",
                                            "Ang00000000000000"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "11Pmj111111111111",
                                            "11Pmj111111111111"))

    '''
    PRUEBA 11: Formato de contrasena
    Tipo: Frontera
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Exactamente 3 letras
        2) Exactamente una letra minuscula
        3) Nuemero de digitos 14 
        4) Longitud de 17 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_frontera_registrarUsuarioP11(self):
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "mAA15678111111111",
                                            "mAA15678111111111"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "1aND5200000000000",
                                            "1aND5200000000000"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "0mYF5430000000000",
                                            "0mYF5430000000000"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "aNG00000000000000",
                                            "aNG00000000000000"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "11pMJ111111111111",
                                            "11pMJ111111111111"))

    '''
    PRUEBA 12: Formato de contrasena
    Tipo: Frontera
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Numero de letras 16
        2) Exactamente un digito
        3) Numero de mayus/minus indeterminado 
        4) Longitud de 17 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_frontera_registrarUsuarioP12(self):
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "mmAAaaaa8aaaaaaaa",
                                            "mmAAaaaa8aaaaaaaa"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "mmaNDmmm0mmmmmmmm",
                                            "mmaNDmmm0mmmmmmmm"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "AmmY1FFFfmmmmmmmm",
                                            "AmmY1FFFfmmmmmmmm"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "aNG0nNGNGaaaaaaaa",
                                            "aNG0nNGNGaaaaaaaa"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "1MpMJMJMppppppppp",
                                            "1MpMJMJMppppppppp"))

    ################################# PRUEBAS DE ESQUINA
    ########################## PARTICION 1: los usuarios se registran satisfactoriamente

    # Tamano 8 y 16 caracteres y con tamano 7 y 17
    ##### PRUEBA 1 CON PRUEBA 3
    ##### EXACTAMENTE 1 DIGITO
    ##### EXACTAMENTE UNA LETRA MAYUSCULA
    ##### AL MENOS 3 LETRAS

    ##### PRUEBA 2 CON PRUEBA 3
    ##### EXACTAMENTE 1 DIGITO
    ##### EXACRAMENTE UNA LETRA MINUSCULA
    ##### EXACTAMENTE 3 LETRAS

    ##### Con frontera 8 caracteres #####
    '''
    PRUEBA 13: Formato de contrasena
    Tipo: Esquina
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Al menos 3 letras
        2) Exactamente una letra mayuscula
        3) Nuemero de digitos 1 
        4) Longitud de 8 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_esquina_registrarUsuarioP13(self):
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "Maaaaaa8",
                                            "Maaaaaa8"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "1Anddddd",
                                            "1Anddddd"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "0Myfffff",
                                            "0Myfffff"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "Ang0gggg",
                                            "Ang0gggg"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "1pPmjjjj",
                                            "1pPmjjjj"))

    '''
    PRUEBA 14: Formato de contrasena
    Tipo: Esquina
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Al menos 3 letras
        2) Exactamente una letra minuscula
        3) Exactamente 1 digito 
        4) Longitud de 8 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_esquina_registrarUsuarioP14(self):
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "mAA1AAAA",
                                            "mAA1AAAA"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "1aNDDDDD",
                                            "1aNDDDDD"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "0mYFFFFF",
                                            "0mYFFFFF"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "aNG0NNNN",
                                            "aNG0NNNN"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**", "1pMJMJMJ",
                                            "1pMJMJMJ"))


##### CON FRONTERA 16 CARACTERES. RESULTADO ESPERADO: el usuario se registra satisfactoriamente #####

##### PRUEBA 4 CON PRUEBA 6
##### EXACTAMENTE 1 DIGITO
##### EXACTAMENTE UNA LETRA MAYUSCULA
##### AL MENOS 3 LETRAS

##### PRUEBA 5 CON PRUEBA 6
##### EXACTAMENTE 1 DIGITO
##### EXACRAMENTE UNA LETRA MINUSCULA
##### AL MENOS 3 LETRAS

    '''
    PRUEBA 15: Formato de contrasena
    Tipo: Esquina
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Al menos 3 letras
        2) Exactamente una letra mayuscula
        3) Exactamente un digito 
        4) Longitud de 16 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''
    def test_esquina_registrarUsuarioP15(self):
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "Maa1aaaaaaaaaaaa",
                                            "Maa1aaaaaaaaaaaa"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "1Anddddddddddddd",
                                            "1Anddddddddddddd"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "0Myfffffffffffff",
                                            "0Myfffffffffffff"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "Ang0gggggggggggg",
                                            "Ang0gggggggggggg"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "1pPmjjjjjjjjjjjj",
                                            "1pPmjjjjjjjjjjjj"))

    '''
    PRUEBA 16: Formato de contrasena
    Tipo: Esquina
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Al menos 3 letras
        2) Exactamente una letra minuscula
        3) Exactamente un digito 
        4) Longitud de 16 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_esquina_registrarUsuarioP16(self):
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "mAA1AAAAAAAAAAAA",
                                            "mAA1AAAAAAAAAAAA"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "1aNDDDDDDDDDDDDD",
                                            "1aNDDDDDDDDDDDDD"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "0mYFFFFFFFFFFFFF",
                                            "0mYFFFFFFFFFFFFF"))
        self.assertTrue(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "1aNGJJJJJJJJJJJJ",
                                            "1aNGJJJJJJJJJJJJ"))

    ##### CON FRONTERA NO VALIDA CON 7 CARACTERES. RESULTADO ESPERADO: el usuario NO se registra satisfactoriamente #####

    ##### PRUEBA 7 CON PRUEBA 9
    ##### EXACTAMENTE 1 DIGITO
    ##### EXACTAMENTE UNA LETRA MAYUSCULA
    ##### AL MENOS 3 LETRAS

    ##### PRUEBA 8 CON PRUEBA 9
    ##### EXACTAMENTE 1 DIGITO
    ##### EXACRAMENTE UNA LETRA MINUSCULA
    ##### AL MENOS 3 LETRAS
    '''
    PRUEBA 17: Formato de contrasena
    Tipo: Esquina
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Al menos 3 letras
        2) Exactamente 1 letra mayuscula
        3) Exactamente 1 digito
        4) Longitud de 7 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_esquina_registrarUsuarioP17(self):
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "Maaaaa8",
                                            "Maaaaa8"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "Andddd5",
                                            "Andddd5"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "Myffff0",
                                            "Myffff0"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "Angggg0",
                                            "Angggg0"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "1Mmjjjj",
                                            "1Mmjjjj"))

    '''
    PRUEBA 18: Formato de contrasena
    Tipo: Esquina
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Al menos 3 letras
        2) Exactamente una letra minuscula
        3) Exactamente un digito 
        4) Longitud de 7 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_malicia_registrarUsuarioP18(self):
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "mAA5AAA",
                                            "mAA5AAA"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "aND5DDD",
                                            "aND5DDD"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "mYF5FFF",
                                            "mYF5FFF"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "aNG0GGG",
                                            "aNG0GGG"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "1ppMJMJ",
                                            "1ppMJMJ"))

    ##### CON FRONTERA NO VALIDA CON 17 CARACTERES. RESULTADO ESPERADO: el usuario NO se registra satisfactoriamente #####

    ##### PRUEBA 10 CON PRUEBA 12
    ##### EXACTAMENTE 1 DIGITO
    ##### EXACTAMENTE UNA LETRA MAYUSCULA
    ##### AL MENOS 3 LETRAS

    ##### PRUEBA 11 CON PRUEBA 12
    ##### EXACTAMENTE 1 DIGITO
    ##### EXACRAMENTE UNA LETRA MINUSCULA
    ##### AL MENOS 3 LETRAS
    '''
    PRUEBA 19: Formato de contrasena
    Tipo: Esquina
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Al menos 3 letras
        2) Exactamente una letra mayuscula
        3) Exactamente 1 digito 
        4) Longitud de 17 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_esquina_registrarUsuarioP19(self):
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "Maa1aaaaaaaaaaaaa",
                                            "Maa1aaaaaaaaaaaaa"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "1Andddddddddddddd",
                                            "1Andddddddddddddd"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "0Myffffffffffffff",
                                            "0Myffffffffffffff"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "Ang0ggggggggggggg",
                                            "Ang0ggggggggggggg"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "1pPmjjjjjjjjjjjjj",
                                            "1pPmjjjjjjjjjjjjj"))

    '''
    PRUEBA 20: Formato de contrasena
    Tipo: Esquina
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que se registre el usuario de forma correcta con una contrasena
    con:
    Caracteristicas de contrasena:
        1) Al menos 3 letras
        2) Exactamente una letra minuscula
        3) Exactamente un digito 
        4) Longitud de 17 caracteres
    Caracteristicas de email:
        1) email cumple con RFC 822

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_esquina_frontera_registrarUsuarioP20(self):
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "mAA1AAAAAAAAAAAAA",
                                            "mAA1AAAAAAAAAAAAA"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "1aNDDDDDDDDDDDDDD",
                                            "1aNDDDDDDDDDDDDDD"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "0mYFFFFFFFFFFFFFF",
                                            "0mYFFFFFFFFFFFFFF"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**",
                                            "1aNGJJJJJJJJJJJJJ",
                                            "1aNGJJJJJJJJJJJJJ"))

    ########################################### CASOS DE PRUEBA DE MALICIA ####################################

    ########### PRUEBA MALICIOSA: correo invalido ##############
    ########### PROBAMOS FUNCION registrarUsuario  ##############
    '''
    PRUEBA 21: Formato de correo
    Tipo: Malicia
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que el usuario que se registre use como correo alguno 
    que cumpla el formato RFC 822. En este caso: Falta de ., com y @

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_malicia_registrarUsuarioP21(self):
        self.assertFalse(
            self.seguridad.registrarUsuario("mjgf@gmail", "Maa15678",
                                            "Maa15678"))
        self.assertFalse(
            self.seguridad.registrarUsuario("andrescom", "1And5200",
                                            "1And5200"))
        self.assertFalse(
            self.seguridad.registrarUsuario("mariafeixgmail.com", "0Myf5430",
                                            "0Myf5430"))
        self.assertFalse(
            self.seguridad.registrarUsuario("angProco@gmailcom", "Ang00000",
                                            "Ang00000"))
        self.assertFalse(
            self.seguridad.registrarUsuario("josegp.com", "11Pmj111",
                                            "11Pmj111"))

    '''
    PRUEBA 22: Formato de correo
    Tipo: Malicia
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que el usuario que se registre use como correo alguno 
    que cumpla el formato RFC 822. En este caso: caracteres especiales no aceptados

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_malicia_registrarUsuarioP22(self):
        self.assertFalse(
            self.seguridad.registrarUsuario("mjg##[email protected]", "Maa15678",
                                            "Maa15678"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "1And5200",
                                            "1And5200"))
        self.assertFalse(
            self.seguridad.registrarUsuario("mariafe^[email protected]", "0Myf5430",
                                            "0Myf5430"))
        self.assertFalse(
            self.seguridad.registrarUsuario("angProco&&&@gmail.com",
                                            "Ang00000", "Ang00000"))
        self.assertFalse(
            self.seguridad.registrarUsuario("[email protected]", "11Pmj111",
                                            "11Pmj111"))

    '''
    PRUEBA 23: Formato de contrasena
    Tipo: Malicia
    Funcion a probar: registrarUsuario en seguridad.py
    Descripcion del caso: se pone a prueba que el usuario que se registre use una contrasena
    aceptada por el mecanismo de seguridad. En este caso: caracteres especiales (que no son
    aceptados)

    Resultado de la prueba: el usuario se registra satisfactoriamente
    '''

    def test_malicia_registrarUsuarioP23(self):
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "Maa$$15678",
                                            "Maa$$15678"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "1And5200###",
                                            "1And5200###"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "0Myf5430&",
                                            "0Myf5430&"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "Ang*00000",
                                            "Ang*00000"))
        self.assertFalse(
            self.seguridad.registrarUsuario("*****@*****.**", "11Pmj1!!11",
                                            "11Pmj1!!11"))
Example #5
0
 def test_Seguridad_existe(self) -> 'void':
     valid = Seguridad()
     self.assertNotEqual(valid, None)
Example #6
0
 def setUp(self) -> 'void':
     self.seguridad = Seguridad()
Example #7
0
class SeguridadTestCase(unittest.TestCase):
    def setUp(self) -> 'void':
        self.seguridad = Seguridad()

    def tearDown(self) -> 'void':
        self.seguridad = None

    #Verifica que exista la clase Seguridad.
    def test_Seguridad_existe(self) -> 'void':
        valid = Seguridad()
        self.assertNotEqual(valid, None)

    #Verifica que exista el metodo registrarUsuario.
    def test_Seguridad_existe_metodo_registrar(self) -> 'void':
        email = "*****@*****.**"
        pswd1 = "U581Dd3pRu384"
        pswd2 = "U581Dd3pRu384"
        valid = self.seguridad.registrarUsuario(email, pswd1, pswd2)
        self.assertNotEqual(valid, None)

    #Verifica que el id de correo sea valido segun el estandar RFC 822.
    def test_Seguridad_email_valido(self) -> 'void':
        email = "[email protected]"
        pswd1 = "U581Dd3pRu384"
        pswd2 = "U581Dd3pRu384"
        valid = self.seguridad.registrarUsuario(email, pswd1, pswd2)
        self.assertEqual(valid, False)

    #Verifica que la clave tenga longitud mayor que 7.
    def test_Seguridad_clave_long_ocho_min(self) -> 'void':
        email = "*****@*****.**"
        pswd1 = "U5d3"
        pswd2 = "U5d3"
        valid = self.seguridad.registrarUsuario(email, pswd1, pswd2)
        self.assertEqual(valid, False)

    #Verifica que la clave tenga longitud menor que 17.
    def test_Seguridad_clave_long_dieciseis_max(self) -> 'void':
        email = "*****@*****.**"
        pswd1 = "U581Dd3pRu384largo"
        pswd2 = "U581Dd3pRu384largo"
        valid = self.seguridad.registrarUsuario(email, pswd1, pswd2)
        self.assertEqual(valid, False)

    #Verifica que la clave no tenga caracteres no alfanumericos.
    def test_Seguridad_clave_solo_alfanumericos(self) -> 'void':
        email = "*****@*****.**"
        pswd1 = "U581Dd3pRu384!"
        pswd2 = "U581Dd3pRu384!"
        valid = self.seguridad.registrarUsuario(email, pswd1, pswd2)
        self.assertEqual(valid, False)

    #Verifica que la clave tenga al menos tres letras.
    def test_Seguridad_clave_min_tres_letras(self) -> 'void':
        email = "*****@*****.**"
        pswd1 = "1211163121o66o"
        pswd2 = "1211163121o66o"
        valid = self.seguridad.registrarUsuario(email, pswd1, pswd2)
        self.assertEqual(valid, False)

    #Verifica que la clave tenga al menos una mayuscula.
    def test_Seguridad_clave_min_una_mayuscula(self) -> 'void':
        email = "*****@*****.**"
        pswd1 = "u581dd3pru384"
        pswd2 = "u581dd3pru384"
        valid = self.seguridad.registrarUsuario(email, pswd1, pswd2)
        self.assertEqual(valid, False)

    #Verifica que la clave tenga al menos una minuscula.
    def test_Seguridad_clave_min_una_minuscula(self) -> 'void':
        email = "*****@*****.**"
        pswd1 = "U581DD3PRU384"
        pswd2 = "U581DD3PRU384"
        valid = self.seguridad.registrarUsuario(email, pswd1, pswd2)
        self.assertEqual(valid, False)

    #Verifica que la clave tenga al menos un digito.
    def test_Seguridad_clave_min_un_digito(self) -> 'void':
        email = "*****@*****.**"
        pswd1 = "UsbiDdepRueba"
        pswd2 = "UsbiDdepRueba"
        valid = self.seguridad.registrarUsuario(email, pswd1, pswd2)
        self.assertEqual(valid, False)

    #Verifica que las claves dadas como parametros sean iguales.
    def test_Seguridad_claves_iguales(self) -> 'void':
        email = "*****@*****.**"
        pswd1 = "U581Dd3pRu384"
        pswd2 = "u581Dd3pRu384"
        valid = self.seguridad.registrarUsuario(email, pswd1, pswd2)
        self.assertEqual(valid, False)

    #Verifica que se actualiza el diccionario, cuando los datos ingresados son
    #correctos.
    def test_Seguridad_se_actualiza_diccionario(self) -> 'void':
        bfore = len(self.seguridad.users)
        email = "*****@*****.**"
        pswd1 = "U581Dd3pRu384"
        pswd2 = "U581Dd3pRu384"
        self.seguridad.registrarUsuario(email, pswd1, pswd2)
        after = len(self.seguridad.users)
        self.assertNotEqual(bfore, after)

    #Verifica que exista un metodo ingresarUsuario.
    def test_Seguridad_existe_metodo_ingresar(self) -> 'void':
        self.seguridad.users["*****@*****.**"] = "U581Dd3pRu384"
        email = "*****@*****.**"
        pswd1 = "U581Dd3pRu384"
        valid = self.seguridad.ingresarUsuario(email, pswd1)
        self.assertEqual(valid, True)

    #Verifica que se manejen los datos errados en el metodo ingresarUsuario.
    def test_Seguridad_ingreasar_datos_incorrectos(self) -> 'void':
        self.seguridad.users["*****@*****.**"] = "U581Dd3pRu384"
        email = "*****@*****.**"
        pswd1 = "U581Dd3xRu384"
        valid = self.seguridad.ingresarUsuario(email, pswd1)
        self.assertEqual(valid, False)

    #Verifica que no se pueda registrar un usuario con un email existente.
    def test_Seguridad_registrar_email_usado(self) -> 'void':
        self.seguridad.users["*****@*****.**"] = "U581Dd3pRu384"
        email = "*****@*****.**"
        pswd1 = "U581Dd3xRu384"
        pswd2 = "U581Dd3xRu384"
        valid = self.seguridad.registrarUsuario(email, pswd1, pswd2)
        self.assertEqual(valid, False)