def test_no_es_posible_modificar_cantidad_directamente(self): unaCuenta = Cuenta("John", 45) # Da error cuando no intentamos manipular la cantidad with self.assertRaises(AttributeError): unaCuenta.cantidad = 100000
def test_mostrar(self): unaCuenta = Cuenta("John", 45) with Capturing() as output: unaCuenta.mostrar() self.assertEqual('Titular: John', output[0]) self.assertEqual('Cantidad: 45.0', output[1])
def test_cantidad_no_obligatoria(self): # No da error cuando no especificamos cantidad try: Cuenta("John") except Exception: self.fail("Cuenta() raised ExceptionType unexpectedly!")
def __init__(self, nombre, apellido, domicilio, telefono, f_Nac, dni, genero, f_Alta, sucursal, nro_Cuenta): Persona.__init__(self, nombre, apellido, domicilio, telefono, f_Nac, dni, genero) self.cuenta = Cuenta(nro_Cuenta) self.lista_Cuentas = [].append(self.cuenta) self.f_Alta = f_Alta self.f_Baja = None self.sucursal = sucursal
class Auto: id = int license = str driver = Cuenta("","") passenger = int #Método constructor def __init__(self, license, driver): self.license = license self.driver = driver
class Persona(object): def __init__(self, nombre, apellido, cantidad, numCuenta): self.__nombre = nombre self.__apellido = apellido self.__cuenta = Cuenta(numCuenta, cantidad) def setNombre(self, nombre): self.__nombre = nombre def getNombre(self): return self.__nombre def setApellido(self, apellido): self.__apellido = apellido def getApellido(self): return self.__apellido def hacerIngreso(self, cantidad): self.__cuenta.ingresarDinero(cantidad) def retirarDinero(self, cantidad): self.__cuenta.sacarDinero(cantidad) def getSaldo(self): return self.__cuenta.getSaldo() def getNumeroCuenta(self): return self.__cuenta.getNumeroCuenta()
def test_ingresar(self): unaCuenta = Cuenta("John", 150) # Ingresar una cantidad válida unaCuenta.ingresar(50) self.assertEqual(unaCuenta.cantidad, 200) # Ingresar una cantidad no válida (se ignora) unaCuenta.ingresar("nada") self.assertEqual(unaCuenta.cantidad, 200)
def test_retirar(self): unaCuenta = Cuenta("John", 150) # Retirar una cantidad válida unaCuenta.retirar(50) self.assertEqual(unaCuenta.cantidad, 100) # Retirar una cantidad no válida (se ignora) unaCuenta.retirar("nada") self.assertEqual(unaCuenta.cantidad, 100)
def login_account(self): print('\nPantalla de logeo ↓') # query ↓ sql = '''SELECT usuarios_id, usuarios.nombre, apellido, edad, paises.nombre AS "pais", ciudades.nombre AS "ciudad", genero, telefono FROM usuarios INNER JOIN ciudades ON ciudad_id_1 = ciudades.ciudad_id INNER JOIN paises ON ciudades.pais_codigo = paises.codigo INNER JOIN cuentas ON usuarios.usuarios_id = cuentas.usuario_id_2 WHERE login_name = %s AND login_pass = %s;''' # values ↓ form_login = { 'login_name': input('\n<login_name>: '), 'login_pass': input('\n<login_pass>: ') } r, dic = self.__vld.validar_login(form_login) if r == 0: dic['login_pass'] = str(self.__encriptarPass( dic['login_pass'])).split("'")[1] val = ( dic['login_name'], dic['login_pass'], ) self.__mydb.ejecutar(sql, val) rows = self.__mydb.get_cursor().fetchall() if len(rows) > 0: nw_user = Usuario(rows[0][0], rows[0][1], rows[0][2], rows[0][3], rows[0][4], rows[0][5], rows[0][6], rows[0][7]) # query ↓ sql = 'SELECT * FROM cuentas WHERE usuario_id_2 = %s;' # value ↓ val = (nw_user.get_user_id(), ) self.__mydb.ejecutar(sql, val) rows = self.__mydb.get_cursor().fetchall() nw_acc = Cuenta(rows[0][0], rows[0][1], self.__desencriptarPass(rows[0][2]), nw_user, rows[0][4], rows[0][5], self.__mydb) return nw_acc else: print(f'\n[Err]: nombre de usuario o contraseña incorrectos!') return None else: print(f'\n[Err]: uno o mas datos no pudieron validarse ↓') for val in dic.values(): print(f'\t{val[0]}') return None
def menu(): while True: try: opcion1 = int(input("1-Inicio 2-Salir ")) if opcion1 == 1: opcionCuenta = int(input("1-Cuenta 2-Cuenta Prenium")) nombre = input("Inserte Titular de cuenta: ") if opcionCuenta == 1: cuenta = Cuenta(nombre) subMenu(cuenta) if opcionCuenta == 2: cuentaPrenium = CuentaPrenium(nombre) subMenuPrenium(cuentaPrenium) if opcion1 == 2: print("--PROGRAMA CERRADO--") exit(0) except ValueError: print("Ingrese uno de los numeros solicitados.")
''' Cree una clase llamada Cuenta. Como atributo tendra un numero float llamado saldo, con una cantidad inicial de 0 euros. Tendra dos metodos: - Ingresar, con un parametro que indica la cantidad a sumar al saldo - Retirar, con un parametro que sera un numero float de euros a restar del saldo Cree un programa para ingresar 125.23, 503.4 y 50 euros y luego retire 333.34 euros. Muestre tras cada operacion el saldo de la cuenta ''' from cuenta import Cuenta # main cuenta = Cuenta(0) cuenta.ingresar(125.23) print cuenta.getSaldo() cuenta.ingresar(503.4) print cuenta.getSaldo() cuenta.ingresar(50) print cuenta.getSaldo() cuenta.retirar(333.34) print cuenta.getSaldo()
def __init__(self, cbu): Cuenta.__init__(self, cbu)
mostrar_cuentaJoven(usuario, edad, monto_apertura) else: print( 'Desea ingresar dinero de Apertura a su cuenta? \n1.-SI \n2.-NO \n' ) respuesta = input() if '1' in respuesta: print('Ingrese el monto de Apertura: ') monto_apertura = float(input()) if monto_apertura < 0: print('No puedes ingresar numeros negativos we \n') else: monto_apertura = 0 print('\n') user = Cuenta(titular=usuario, cantidad=monto_apertura) new_user(usuario, monto_apertura) else: print('Hasta pronto') if '1' in opcioninicial: stop = False while stop == False: print(''' What would you like to do (type a number and press Enter)? - Type 1: DEPOSITAR DINERO a su cuenta. - Type 2: RETIRAR DINERO de su cuenta. - Type 3: MOSTRAR USER Y DINERO de su cuenta. - Type 4: To quit ''')
def register_account(self): print( '\nPantalla de registro ↓\n\n*Nota: todos los campos son obligatorios!' ) # validando datos de usuario # creacion de usuario (en tiempo de ejecucion) form_user = { 'user_id': 'NULL', 'nombre': input('\n<nombre>: '), 'apellido': input('\n<apellido>: '), 'edad': input('\n<edad>: '), 'pais': input('\n<pais>: '), 'ciudad': input('\n<ciudad>: '), 'genero': input('\n<genero>: '), 'tel': input('\n<telefono>: ') } r, dic = self.__vld.validar_datos_de_usuario(form_user) if r == 0: nuevo_usuario = Usuario(**dic) # validando datos de cuenta # creacion de cuenta (en tiempo de ejecucion) form_acc = { 'cuenta_id': 'NULL', 'login_name': input('\n<login_name>: '), 'login_pass': [ input('\n<login_pass>: '), input('\n<login_pass_confirmacion>: ') ], 'usuario': 'NULL', 'mail_primario': input('\n<mail_primario>: '), 'mail_secundario': input('\n<mail_secundario>: ') } r, dic = self.__vld.validar_registro(form_acc) dic['database'] = self.__db if r == 0: nueva_cuenta = Cuenta(**dic) # guardar cambios en bd opc = input('\nConfirmar creacion de cuenta (s/n): ') if opc.lower() == 's': # agregando datos de usuario a la bd ↓ ult_id = nuevo_usuario.save_user( ) # guardando datos de usuario en bd nuevo_usuario.set_user_id( ult_id) # actualizando id de usuario nueva_cuenta.set_usuario( nuevo_usuario ) # <- actualizando nuevo usuario en su cuenta # agregando datos de cuenta a la bd ↓ ult_id = nueva_cuenta.save_account( ) # guardando datos de cuenta en bd nueva_cuenta.set_cuenta_id( ult_id) # actualizando id de cuenta print( f'\n[MENSAGE]: el usuario {nueva_cuenta.get_login_name()} ah sido registrado correctamente!' ) else: print('\n[MENSAGE]: Se cancelo el registro de cuenta.') else: print(f'\n[Err]: uno o mas datos no pudieron validarse ↓') for val in dic.values(): if type(val).__name__ not in ['DataBase']: for i in val: print(f'\t{i}') else: print(f'\n[Err]: uno o mas datos no pudieron validarse ↓') for val in dic.values(): for i in val: print(f'\t{i}')
def test_cantidad_no_valida(self): unaCuenta = Cuenta("John", "hola") self.assertEqual(unaCuenta.cantidad, 0)
def cargarCuentas(self, ruta): doc = openpyxl.load_workbook(self.fileAddress) hojaData = doc.get_sheet_by_name('HojaCuentas') hojaErrores = doc.create_sheet('HojaErrores') hojaCompletos = doc.create_sheet('HojaCompletos') hojaCompletos.append([ 'codigo', 'nombre', 'padre', 'naturaleza', 'nivel', 'idCuenta', 'idPadre', 'idRelacion' ]) hojaErrores.append(['codigo', 'errores', 'nombre']) rowCounter = 1 for fila in hojaData.rows: code = self.cleanIdCuenta( hojaData.cell(row=rowCounter, column=1).value) nombreCuenta = hojaData.cell(row=rowCounter, column=2).value print "Evaluando cuenta " + code cuenta = Cuenta(code, nombreCuenta) cuenta.padre = cuenta.definePadre(cuenta.codigo) cuenta.idCuenta = self.getCuentaById(cuenta.codigo) cuenta.idPadre = self.getCuentaById(cuenta.padre) cuenta.naturaleza = hojaData.cell(row=rowCounter, column=3).value rowCounter += 1 if not cuenta.naturaleza: cuenta.naturaleza = cuenta.defineNaturaleza(cuenta.codigo[:1]) cuenta.nivel = cuenta.defineNivel(cuenta.codigo) error = [] if cuenta.idCuenta: error.append("La cuenta ya existe.") if len(cuenta.nombre.replace(" ", "")) < 3: error.append("El nombre de la cuenta no es valido.") if cuenta.naturaleza is None: error.append("La naturaleza de la cuenta no esta definida.") if not cuenta.idPadre and cuenta.nivel != 1: error.append("El padre no se encuentra registrado.") if not error: try: self.insertCuenta(cuenta) hojaCompletos.append([ cuenta.codigo, cuenta.nombre, cuenta.padre, cuenta.naturaleza, cuenta.nivel, cuenta.idCuenta, cuenta.idPadre, cuenta.idRelacion ]) except Exception as errores: print "Error de nombre caracter" print errores hojaErrores.append([ cuenta.codigo, "Error de nombre caracter", cuenta.nombre, cuenta.nivel ]) else: print "Error: ", ' '.join(error) hojaErrores.append( [cuenta.codigo, ' '.join(error), cuenta.nombre]) doc.save("archivosExcel/resultadoCargue.xlsx")
print("Debemos identificar la cuenta:") print("Introduce tu nombre completo (ej: Jordi Blanch Salgado):") nombre = str(input()) encontrado = False eleccionMovi = 0 with open('cuentas.txt',mode='r',encoding='utf-8')as archivo: for linia in archivo: try: titular,iban,moneda,saldo= linia.split(',', 3) saldo = saldo.strip("\n") except: print("") if nombre.upper() == titular.upper(): cuenta = Cuenta(iban,titular,moneda) encontrado = True varIban = cuenta.getIban() varMoneda = cuenta.getMoneda() varSaldo = saldo while eleccionMovi != 3: menuMovi() eleccionMovi = int(input()) #INGRESAR if eleccionMovi == 1: print("Introduzca la cantidad a ingresar:") importe = int(input()) signo = "+"
def __init__(self, nombre, apellido, cantidad, numCuenta): self.__nombre = nombre self.__apellido = apellido self.__cuenta = Cuenta(numCuenta, cantidad)
def test_titular_obligatorio(self): # Da error cuando no especificamos titular with self.assertRaises(TypeError): Cuenta()
def test_crear_una_cuenta(self): unaCuenta = Cuenta("John", 45) self.assertEqual(unaCuenta.titular, "John") self.assertEqual(unaCuenta.cantidad, 45)
from cliente import Cliente from movimiento import Movimiento from cuenta import Cuenta cliente1 = Cliente("12345678A", "Antonio", "Martinez") cuenta1 = Cuenta(cliente1, 100) cuenta2 = Cuenta(cliente1, 1000) cuenta1.anyadir_movimientos(Movimiento("Compras", -50)) cuenta1.anyadir_movimientos(Movimiento("Transferencia", 100)) cuenta1.anyadir_movimientos(Movimiento("Compras", -65)) cuenta2.anyadir_movimientos(Movimiento("Nomina", 1200)) cuenta2.anyadir_movimientos(Movimiento("Paga extra", 1200)) cuenta2.anyadir_movimientos(Movimiento("Hipoteca", -500)) print(cuenta1.saldo()) print(cuenta2.saldo())
#CREACION PERSONA persona = Persona(nombre,apellido1,apellido2,dni) nombrePersona = persona.getNombreCompleto() nif = persona.getNif() #ESCRIBIR EL TITULARES.TXT titular=Titular(nombre) titular=titular.escribirTitular(nombrePersona,nif,pin) print("Introduce la moneda ") moneda = str(input()) saldo = "0" #CREACION CUENTA cuenta=Cuenta('',nombrePersona,moneda) varIban1=cuenta.genIban() cuenta=cuenta.creacionCuenta(pin,varIban1) menu() #EMPRESA if tipo == 2: print("Razón social:") varNombre = str(input()) print("Cif: Ejemplo:B12345678") varCif = str(input()) comprovaciodni=ComprovacioDni() comprovar=comprovaciodni=ComprovacioDni.validacioCif(varCif) while comprovar == False: print("Dni/Nif:")
from auto import Auto from cuenta import Cuenta if __name__ == "__main__": print("Hola mundo") auto = Auto("HDFR12", Cuenta("Maria Gutierrez", "ADNG145")) #auto.license = #auto.driver = "Andres Herrera" auto.passenger = 3 print(vars(auto)) print(vars(auto.driver))
def main(): try: print("\nCreando personas:") print("---------------------") laura = Persona('Laura', 23, '25678445A') print(laura.mostrar()) jon = Persona('Jon', 15, '30123456B') print(jon.mostrar()) print("¿Es laura mayor de edad ?: {0}".format( laura.es_mayor_de_edad())) print("¿Es jon mayor de edad ?: {0}".format(jon.es_mayor_de_edad())) print("\nCreando cuentas:") print("---------------------") cuenta_jon = Cuenta(jon, 60) print(cuenta_jon.mostrar()) cuenta_laura = Cuenta(laura, 286) print(cuenta_laura.mostrar()) maria = Persona("Maria", 25, "25885613X") cuenta_maria = Cuenta(maria) print(cuenta_maria.mostrar()) print("\nIngresar y retirar de las cuentas:") print("---------------------------------------") print(cuenta_maria.ingresar(23.5)) print(cuenta_maria.ingresar(200)) print(cuenta_maria.retirar(50)) print(cuenta_jon.retirar(25)) print(cuenta_jon.retirar(85)) print(cuenta_jon.ingresar(-67)) print("\nCreando cuentas Jovenes:") print("---------------------") cuenta_joven_laura = CuentaJoven(laura, 300, 5) print(cuenta_joven_laura.mostrar()) print(cuenta_joven_laura.ingresar(500)) print(cuenta_joven_laura.retirar(200)) cuenta_joven_jon = CuentaJoven(jon) print(cuenta_joven_jon.mostrar()) print(cuenta_joven_jon.ingresar(100)) print(cuenta_joven_jon.retirar(50)) except Exception as e: print(e)
def test_cuenta_sin_titular_lanza_excepcion(): with pytest.raises(TypeError) as te: cuenta = Cuenta() assert str( te.value == "__init__() missing 1 required positional argument: 'titular'")
from cliente import Cliente from movimiento import Movimiento from cuenta import Cuenta cliente1 = Cliente('48892364E', 'Antonio', 'Martínez') cuenta1 = Cuenta(cliente1, 100) cuenta2 = Cuenta(cliente1, 200) cuenta1.set_ayadir_movimiento(Movimiento('Nómina', 1000)) cuenta1.set_ayadir_movimiento(Movimiento('Primark', -100)) cuenta1.set_ayadir_movimiento(Movimiento('Mercadona', -50)) cuenta2.set_ayadir_movimiento(Movimiento('Nómina', 1200)) cuenta2.set_ayadir_movimiento(Movimiento('GYM', -50)) cuenta2.set_ayadir_movimiento(Movimiento('Venta', 1000)) print(cuenta1.saldo()) print(cuenta2.saldo()) print(cuenta1.movimientos()) print(cuenta2.movimientos()) print(cuenta1.titular()) print(cuenta2.titular()) print(cuenta1.numero()) print(cuenta2.numero()) s = Cuenta.cuenta(1) print(s)
def cuenta(): titular = Persona("Maria", 25, "30123456B") cuenta = Cuenta(titular) return cuenta
from cliente import Cliente from cuenta import Cuenta antonio = Cliente('111222333F', 'Antonio', 'Martínez') cuenta_antonio1 = Cuenta(antonio) cuenta_antonio2 = Cuenta(antonio) cuenta_antonio1.realizar_movimiento('Depósito inicial', 1000) cuenta_antonio1.realizar_movimiento('gasolinera', -20) cuenta_antonio1.realizar_movimiento('Ingreso Nómina', 895.67) cuenta_antonio1.movimientos() cuenta_antonio2.realizar_movimiento('Depósito inicial', 9000) cuenta_antonio2.realizar_movimiento('Compra ordenador', -789.99) cuenta_antonio2.realizar_movimiento('Netflix', 12.67) cuenta_antonio2.movimientos()
#_*_coding:utf-8_*_ ''' Cree una clase llamada Cuenta. Como atributo tendra un numero float llamado saldo, con una cantidad inicial de 0 euros. Tendra dos metodos: - Ingresar, con un parametro que indica la cantidad a sumar al saldo - Retirar, con un parametro que sera un numero float de euros a restar del saldo Cree un programa para ingresar 125.23, 503.4 y 50 euros y luego retire 333.34 euros. Muestre tras cada operacion el saldo de la cuenta ''' from cuenta import Cuenta # main cuenta = Cuenta(0) cuenta.ingresar(125.23) print cuenta.getSaldo() cuenta.ingresar(503.4) print cuenta.getSaldo() cuenta.ingresar(50) print cuenta.getSaldo() cuenta.retirar(333.34) print cuenta.getSaldo()