def test_5(self): #--------------- Qué ocurre si el título es none Pero nunca llega a ser mostrado por mas_antiguos (cambiamos año) l1 = Libro(autor = Autor(id_autor = 1, nombre = "Miguel de Cervantes", apellido = "Saavedra"), titulo = None, anyo = 1990) l2 = Libro(autor = Autor(id_autor = 2, nombre = "Miguel", apellido = "Jose"), titulo = "Doña Quijota", anyo = 1901) l3 = Libro(autor = Autor(id_autor = 3, nombre = "Miguelito", apellido = "Jose Paco"), titulo = "Don Moderno 2040", anyo = 2040) l4 = Libro(autor = Autor(id_autor = 4, nombre = "Alejandro", apellido = "Maria"), titulo = "Harry Potter 2020", anyo = 2020) lista = [l1, l2, l3, l4] self.assertRaises(mas_antiguo(lista, 1989))
def editarLibro(): libro = Libro(db) data = request.get_json(force=True) libro.actualizar(data) respuesta = make_response("Hello World") respuesta.headers.add("Access-Control-Allow-Origin", "*") return respuesta
def test_1(self): l1 = Libro(autor = Autor(id_autor = 1, nombre = "Miguel de Cervantes", apellido = "Saavedra"), titulo = "Don Quijote", anyo = 1522) l2 = Libro(autor = Autor(id_autor = 2, nombre = "Miguel", apellido = "Jose"), titulo = "Doña Quijota", anyo = 1901) l3 = Libro(autor = Autor(id_autor = 3, nombre = "Miguelito", apellido = "Jose Paco"), titulo = "Don Moderno 2040", anyo = 2040) l4 = Libro(autor = Autor(id_autor = 4, nombre = "Alejandro", apellido = "Maria"), titulo = "Harry Potter 2020", anyo = 2020) lista = [l1, l2, l3, l4] self.assertRaises(examen.mas_antiguo(lista, 1800))
def test_4(self): #--------------- Qué ocurre si el título es none l1 = Libro(autor = Autor(id_autor = 1, nombre = "Miguel de Cervantes", apellido = "Saavedra"), titulo = None, anyo = 1522) l2 = Libro(autor = Autor(id_autor = 2, nombre = "Miguel", apellido = "Jose"), titulo = "Doña Quijota", anyo = 1901) l3 = Libro(autor = Autor(id_autor = 3, nombre = "Miguelito", apellido = "Jose Paco"), titulo = "Don Moderno 2040", anyo = 2040) l4 = Libro(autor = Autor(id_autor = 4, nombre = "Alejandro", apellido = "Maria"), titulo = "Harry Potter 2020", anyo = 2020) lista = [l1, l2, l3, l4] self.assertRaises(mas_antiguo(lista, 2020))
def bookExists(): libro = Libro(db) data = request.get_json(force=True) if(libro.exists(data['isbn']) != 'False'): return jsonify(libro.JsonExists(data['isbn'])) else: return 'False'
def principal(): # Lectores ana = Lector('Ana', 'García') roberto = Lector('Roberto', 'Sánchez') # Libros camino = Libro('El camino', 'Miguel Delibes', 'Mis huevos al viento') soledad = Libro('Cien años de soledad', 'Gabriel García Márquez', 'Mis huevos al viento') rayuela = Libro('Rayuela', 'Julio Cortázar', 'Mis huevos al viento') # Prestamos prestamo1 = Prestamo(ana, camino) print(prestamo1) prestamo2 = Prestamo(ana, soledad) prestamo3 = Prestamo(roberto, rayuela) prestamo_imposible = Prestamo(roberto, soledad) # Actividad 6.f prestamo1.devolver_libro(datetime(2021, 4, 2)) # Devuelto después de 15 días print(prestamo1.libro()) # Prestado debería ser False print(prestamo1.lector()) # Moroso debería ser True
def test_lista_libros_devuelta(self): listaLibros = [] libro1 = Libro(autor=Autor(id_autor="1", nombre="Pedro", apellido="Pujol"), titulo="El tesoro 1", anyo="2006") libro2 = Libro(autor=Autor(id_autor="2", nombre="Juan", apellido="Pujol"), titulo="El tesoro 2", anyo="2000") libro3 = Libro(autor=Autor(id_autor="3", nombre="Sergio", apellido="Pujol"), titulo="El tesoro 3", anyo="2003") listaLibros.append(libro1) listaLibros.append(libro2) listaLibros.append(libro3) self.assertEqual(mas_antiguos(listaLibros, "2003"), ['El tesoro 2', 'El tesoro 3']) self.assertEqual(mas_antiguos(listaLibros, "2004"), ['El tesoro 2', 'El tesoro 3']) self.assertEqual(mas_antiguos(listaLibros, "2009"), ['El tesoro 1', 'El tesoro 2', 'El tesoro 3'])
def test_mas_antiguos(self): libro1 = Libro(autor = "Pepe", titulo = "Memorias", anyo = 1866) libro2 = Libro(autor = "Pepe", titulo = "Memorias 2", anyo = 1969) libro3 = Libro(autor = "Pepe", titulo = "Memorias 3", anyo = 2022) self.assertIsInstance(libro1, Libro) self.assertIsInstance(libro2, Libro) self.assertIsInstance(libro3, Libro)
def registrarLibro(): libro = Libro(db) data = request.get_json(force=True) libro.crear(data) print(data) respuesta = make_response("Hello World") respuesta.headers.add("Access-Control-Allow-Origin", "*") return respuesta
def test_mas_antiguos(self): libros = [ Libro(1, "Lazarillo", 1352), Libro(2, "Quijote", 1462), Libro(3, "Hola", 2000) ] self.assertEqual(mas_antiguos(libros, 1992), ['Lazarillo', 'Quijote']) self.assertRaisesRegex(ValueError, "El año no es válido.", mas_antiguos, libros, 1500) self.assertRaisesRegex(ValueError, "El año no es válido.", mas_antiguos, libros, 2022)
def deleteBook(): book = Libro(db) data = request.get_json(force=True) isbn = data['isbn'] if(book.borrarBook(isbn)): respuesta = make_response("Borrado exitoso") respuesta.headers.add("Access-Control-Allow-Origin", "*") return respuesta else: respuesta = make_response("Error") respuesta.headers.add("Access-Control-Allow-Origin", "*") return respuesta
def __init__(self, titulo=None, editorial=None, anio_publicacion=None, genero=None, edicion=None, precio=None, duracionLibro=None, listaAtributos=None): Libro.__init__(self, titulo, editorial, anio_publicacion, genero, edicion, precio) self.duracionLibro = duracionLibro pass
def main(): producto = Producto(2033, "Producto Genérico", "1 kg", 50) alimento = Alimento(2035, "Botella de Aceite de Oliva", "250 ML", 50, "Marca", "Distribuidor") adorno = Adorno(2034, "Vaso adornado", "Vaso de porcelana", 34, "De Mesa") libro = Libro(2036, "Cocina Mediterránea", "Recetas buenas", 75, "0-123456-78-9", "Autor") productos = [producto, alimento, adorno] productos.append(libro) print("Recorriendo lista de productos:") for producto in productos: print(producto.referencia, producto.nombre) print("Condicional isInstance():") for producto_r in productos: if (isinstance(producto_r, Adorno)): print(producto_r.referencia, producto_r.nombre, producto_r.estilo) elif (isinstance(producto_r, Alimento)): print(producto_r.referencia, producto_r.nombre, producto_r.productor) elif (isinstance(producto_r, Libro)): print(producto_r.referencia, producto_r.nombre, producto_r.isbn) print("Rebajar lista de productos:") for producto_r in productos: producto_r.rebajar_producto(10) print(producto_r)
def agregarlibro(self, libro): if (self.__cantidad == self.__dimension): self.__dimension += self.__incremento self.__arreglo.resize(self.__dimension) self.__arreglo[self.__cantidad] = Libro(libro[0], libro[1], libro[2], libro[3], libro[4], libro[5]) self.__cantidad += 1
def cargarAlSistema(sistema): x = sistema nombre_archivo = input( "\nIngrese el nombre del archivo que desea cargar: ") if path.exists(nombre_archivo): f = open(nombre_archivo, "rb") x = load(f) f.close() #print(sistema) print("El archivo " + nombre_archivo + " se ha cargado exitosamente.") n = len(mostrar_de_catalogo("", x)) m = len(x.get_usuarios()) Libro.set_cuenta(n) u.Usuario.set_cuenta(m) else: print("El archivo {} no existe.".format(nombre_archivo)) return x
def recuperarLibros(): libro = Libro(db) isbn = request.args.get('filtro') name = request.args.get('nombre') if name != None: result = libro.searchBookByName(name) return jsonify(result) if isbn == None: result = libro.mostrarAll() print(result) return jsonify(result) else: result = libro.searchBookByIsbn(isbn) return jsonify(result)
def set_up(self): self.__l1 = Libro(autor=Autor(id_autor=1, nombre="Adrian", apellido="Vaello"), titulo="Las leyendas de pepe", anyo=2021) self.__l2 = Libro(autor=Autor(id_autor=2, nombre="Nacho", apellido="kajs"), titulo="Las historias de aroon", anyo=2014) self.__l3 = Libro(autor=Autor(id_autor=3, nombre="Stephen", apellido="Vaello"), titulo="Harry potter", anyo=1878) self.__lista_libros = [self.__l1, self.__l2, self.__l3] self.__masantiguos = mas_antiguos
def eliminarLibro(self): libro = self.listWidget.currentItem() if libro is not None: datos = libro.text().split("/") self.hash.eliminar(datos[0]) libro = Libro(*datos) eliminar("libros.lib", libro) self.listWidget.takeItem(self.listWidget.currentRow())
def obtenerBaseDatosLibros(ruta): try: baseDatosLibros = open(ruta, "r") estructuraDeDatos = [] linea = baseDatosLibros.readline() #print(linea) #print(type(linea)) #1raForma de hacerlo metodo slip() para cadenas #listaPalbras2daForma = linea.split(sep = ',') #print(listaPalbras2daForma) #2daForma de hacer #Si no existiera el split()->String seria hacerlo manual: while (linea): palabra = '' listaPalabras = [] count = 0 for char in linea: count += 1 #Esto es porque al final no termina en ',' por lo tanto no se guarda la ultima palabra, #existen varias formas de corregirlo una es modificar el toString de libro y que termine en ',' o esta forma saber cual es la ultima linea if char == ',': listaPalabras.append(palabra) palabra = '' #inicializo nuevamente en ceros elif char == ' ': #Como tambien puse despues de la coma un espacio #tambien hay que eliminarlo pass elif count == len( linea ): #con esto identificamos cual es la ultima linea, #y agregamos la ultima palabra que falta, significa que ya no hay mas char que leer termino de leer, #print("entro") listaPalabras.append(palabra) pass else: palabra += char #print(listaPalabras) book = Libro(listaAtributos=listaPalabras) #print(book) estructuraDeDatos.append(book) linea = baseDatosLibros.readline() #print(estructuraDeDatos) return estructuraDeDatos except: print("Error al abrir") #return None finally: baseDatosLibros.close()
def test_anyo_valido(self): listaLibros = [] libro1 = Libro(autor=Autor(id_autor="1", nombre="Pedro", apellido="Pujol"), titulo="El tesoro 1", anyo="2006") libro2 = Libro(autor=Autor(id_autor="2", nombre="Juan", apellido="Pujol"), titulo="El tesoro 2", anyo="2000") libro3 = Libro(autor=Autor(id_autor="3", nombre="Sergio", apellido="Pujol"), titulo="El tesoro 3", anyo="2003") listaLibros.append(libro1) listaLibros.append(libro2) listaLibros.append(libro3) self.assertRaisesRegex(ValueError, "El anyo no es valido", mas_antiguos, listaLibros, "1800")
def buscarPorDoc(docu): conexion = conectar() c = ejecutar( "select * from lectores where documento = '" + str(docu) + "';", 0, conexion) c2 = ejecutar( "select libros.libro_id, libros.titulo, libros.editorial, libros.autor from lectores inner join retiros on retiros.lector_id = lectores.lector_id inner join libros on retiros.libro_id = libros.libro_id where documento ='" + str(docu) + "';", 0, conexion) listaLibros = [] for elem2 in c2: miLib = Libro(elem2[1], elem2[3], elem2[2], elem2[0]) listaLibros.append(miLib) for elem in c: lector = Lector(elem[3], elem[1], elem[2], elem[0], listaLibros) cerrar(conexion) return lector
def listenerRegistro(self): if not self.estan_camposCorrectos(): messagebox.showerror("error", "Debe de rellenar todos los campos") else: new_book = Libro(self.titulo.get(), self.editorial.get(), self.anioPublicacion.get(), self.genero.get(), self.edicion.get(), self.precio.get()) #print(new_book) try: archivo = open("baseDatosLibros.txt", "a+") archivo.write(str(new_book)) archivo.write("\n") #Si no esta repetido mandar mensaeje que registro el libro correctamente messagebox.showinfo("information", "Se ha registrado el libro correctamente") except FileNotFoundError: print("Archivo no encontrado")
from lector import Lector from libro import Libro from prestamo import Prestamo from datetime import datetime lector1 = Lector(1, "Ana", "García") lector2 = Lector(2, "Roberto", "Sánchez") libro1 = Libro(0, "El camino", "Miguel Delibes", "Salvat") libro2 = Libro(1, "Cien años de soledad", "Gabriel García Márquez", "Planeta") libro3 = Libro(2, "Rayuela", "Julio Cortázar", "Planeta") prestamo1 = Prestamo(lector1, libro1, datetime(2021, 2, 22)) prestamo2 = Prestamo(lector1, libro2, datetime(2021, 2, 23)) prestamo3 = Prestamo(lector2, libro3, datetime(2021, 2, 1)) """ print(f'El lector número {lector2.numero()} es moroso: {lector1.moroso()}') prestamo3.devolver_libro(datetime(2021, 2, 10)) print(f'El lector número {lector2.numero()} es moroso: {lector1.moroso()}') """ print( f'El lector {lector1.nombre()} {lector1.apellidos()} es moroso: {lector1.moroso()}' ) prestamo1.devolver_libro(datetime(2022, 4, 22)) print( f'El lector {lector1.nombre()} {lector1.apellidos()} es moroso: {lector1.moroso()}' )
from utils import * from libro import Libro from view import Form __author__ = 'Daniel Cruz <*****@*****.**>' s_opc = [ 'Consulta, agrega libro', 'Prestamo, devolucion', 'Ver catalogo', 'Busca libro', 'Salir' ] if __name__ == '__main__': f = Form() l = Libro({}) l.crea() while True: opc = f.menu(s_opc, 'Opciones') if opc != 4: l = Libro({}) if opc in (0, 1): s = str_to_dict(f.entrada_qr()) l = Libro(s) if l.existe_libro(): if opc == 1: l.actualiza() else: l.agrega() l.existe_libro() f.menu(dict_to_list(l.data), 'Titulo') if opc == 2: tit = []
while True: try: valoracion = int(input("Introduce la valoracion: ")) if valoracion <0 or valoracion >10: print("------------------------------------------") print("La valoracion tiene que estar entre 0 y 10") print("------------------------------------------") else: break except ValueError: print("--------------------------") print("La valoracion no es valida") print("--------------------------") libro = Libro(isbn,titulo,autor,paginas) libro.setValoracion(valoracion) if con.anyadirLibro(libro): print("El libro ",libro.getISBN()," ha sido anyadido correctamente") else: print("El libro ya exsiste!!") if op == 2: while True: try: isbn = int(input("Introduce el ISBN: ")) if isbn == 0: print("----------------------") print("El ISBN no puede ser 0") print("----------------------") else:
from libro import Libro from disco import Disco from revista import Revista from librero import Librero from comic import Comic from manga import Manga miLibrero = Librero() miLibrero.agregaLibro(Libro(autor="korth", titulo="bases", editorial="Pearson")) # Disco miLibrero.agregaDisco( Disco(interprete="Ricardo Montaner", titulo="Vuelve Conmigo", album="Ida y Vuelta Edición Especial", anio=2017)) miLibrero.agregaDisco( Disco(interprete="Michael Jackson", titulo="Bllie Jean", album="Thriller", anio=1983)) miLibrero.agregaDisco( Disco(interprete="Zara Larsson", titulo="Lush Life", album="So Good", anio=2017)) miLibrero.agregaDisco( Disco(interprete="Hailee Steinfeld", titulo="Love Myself", album="Haiz",
if opcion == 1: nombre = input("Nombre de la biblioteca: ") biblioteca = Biblioteca(nombre) print("Se creo la biblioteca: {}".format( biblioteca.consultar_nombre_biblioteca)) elif opcion == 2: titulo = input("Titulo: ") autor = input("Autor: ") cantidad_de_paginas = input("Paginas: ") genero = input("Genero: ") sinopsis = input("Sinopsis: ") libro = Libro(titulo, autor, cantidad_de_paginas, genero, sinopsis) biblioteca.agregar_libro(libro) elif opcion == 3: print("Catalogo de libros: ") for i in biblioteca.consultar_libros(): print(i) elif opcion == 4: indice = input("Id del libro a eliminar: ") biblioteca.quitar_libro(indice) elif opcion == 5: ejecutar = False else:
class Biblioteca: def __init__(self, nombAr, modo): self.nombreArchivo = nombAr self.estanteria = open(self.nombreArchivo, modo) self.libro = Libro("", "", "", "") def modEstanteria(self, modo): self.estanteria = open(self.nombreArchivo, modo) def numLibros(self): self.modEstanteria("r") n = len(self.estateria.readlines()) self.estanteria.close() return n; def yaAgregado(self): with open(self.nombreArchivo) as est: libros = est.readlines() for l in libros: l.lower() if(", ISBN: "+self.libro.getISBN()+"\n").lower() in libros: return True else: return False def listarLibros(self): self.modEstanteria("r") print(self.estanteria.read()) self.estanteria.close() def agregarLibro(self): self.libro.setTitulo(input("Introduzca el título:\n")) self.libro.setAutor(input("Introduzca el autor:\n")) self.libro.setEditorial(input("Introduzca la editorial:\n")) self.libro.setISBN(input("Introduzca el I.S.B.N.:\n")) if(self.yaAgregado()): print("El libro indicado ya se había agregado anteriormente.") else: self.modEstanteria("at") self.estanteria.write("Título: "+self.libro.getTitulo()+", Autor: "+self.libro.getAutor()+", Editorial: "+self.libro.getEditorial()+", ISBN: "+self.libro.getISBN()+"\n") self.estanteria.close() print("Libro agregado con éxito.") self.libro.setTitulo("") self.libro.setAutor("") self.libro.setEditorial("") self.libro.setISBN("") def consultarLibro(self): opcion = int(input("¿Buscar por Título o por Autor? [1: Título; 2: Autor] (Introduce el número de la opción):\n")) while(opcion<1 or opcion>2): opcion = int(input("Fuera de rango.\n¿Buscar por Título o por Autor? [1: Título; 2: Autor] (Introduce el número de la opción):\n")) if(opcion==1): self.libro.setTitulo(input("Introduzca el título:\n")) if(self.yaAgregado()): with open(self.nombreArchivo) as est: libros = est.readlines(); l.lower() for l in libros for l in libros: if ("Título: "+self.libro.getTitulo()).lower() in l: print(l); else: print("Libro no encontrado."); elif(opcion==2): self.libro.setAutor(input("Introduzca el autor:\n")) if(self.yaAgregado()): with open(self.nombreArchivo) as est: libros = est.readlines() l.lower() for l in libros for l in libros: if ("Autor: "+self.libro.getAutor()).lower() in l: print(l) else: print("Libro no encontrado.") self.libro.setTitulo("") self.libro.setAutor("")
def turnUnic(): libro = Libro(db) data = request.get_json(force=True) isbn = data['isbn'] return str(libro.turnIntoUnic(isbn))
def __init__(self, nombAr, modo): self.nombreArchivo = nombAr self.estanteria = open(self.nombreArchivo, modo) self.libro = Libro("", "", "", "")
from utils import * from libro import Libro from view import Form __author__ = 'Daniel Cruz <*****@*****.**>' s_opc = [ 'Consulta, agrega libro', 'Prestamo, devolucion', 'Ver catalogo', 'Busca libro', 'Salir' ] if __name__ == '__main__': f = Form() l = Libro({}) l.crea() while True: opc = f.menu(s_opc, 'Opciones') if opc != 4: l = Libro({}) if opc in (0,1): s = str_to_dict(f.entrada_qr()) l = Libro(s) if l.existe_libro(): if opc == 1: l.actualiza() else: l.agrega() l.existe_libro() f.menu(dict_to_list(l.data), 'Titulo')