def test_el_reporte_de_operatoria_se_genera_exitosamente(self): cliente1 = MF.Cliente(1, 'Pablo Rodriguez', "Calle 100", 'A', "DNI", 10) cliente2 = MF.Cliente(2, 'Luis Garcia', "Bleh 200", 'B', "DNI", 20) cliente3 = MF.Cliente(3, 'Roberto Gonzalez', "Bleh 300", 'X', "DNI", 30) producto1 = MF.Producto(1, "Producto 1", 10) producto2 = MF.Producto(2, "Producto 1", 20) producto3 = MF.Producto(3, "Producto 1", 30) pedido1 = MF.Pedido(1, cliente1, [(producto1, 1), (producto2, 1)]) pedido2 = MF.Pedido(2, cliente2, [(producto2, 2), (producto3, 2)]) pedido3 = MF.Pedido(3, cliente3, [(producto1, 3), (producto3, 3)]) pedido4 = MF.Pedido(4, cliente1, [(producto1, 4), (producto2, 4), (producto3, 4)]) pedidos = [pedido1, pedido2, pedido3, pedido4] factura1 = MF.facturar(pedido1) factura2 = MF.facturar(pedido2) factura3 = MF.facturar(pedido3) factura4 = MF.facturar(pedido4) facturas = [factura1, factura2, factura3, factura4] cancelaciones = [factura1] MF.generacion_de_reporte_para_operatoria(facturas, cancelaciones) reporte = open("Reporte de Operatoria", "r") linea = reporte.readline() reporte.close() self.assertEqual(linea, "Pablo Rodriguez-Factura-A-0001-04/28/20-$33.015\n")
def test_tras_facturar_pedido_de_dos_productos_la_factura_contiene_2_lineas_de_detalles(self): cliente1 = MF.Cliente(1, 'Pablo Rodriguez', "Calle 100", 'A', "DNI", 10) producto1 = MF.Producto(1, "Producto 1", 10) producto2 = MF.Producto(2, "Producto 1", 20) pedido1 = MF.Pedido(1, cliente1, [(producto1, 1), (producto2, 1)]) factura = MF.facturar(pedido1) self.assertEqual(len(factura.detalle), 2)
def test_tras_facturar_un_pedido_el_total_y_el_total_iva_son_correctos_en_la_factura(self): cliente1 = MF.Cliente(1, 'Pablo Rodriguez', "Calle 100", 'B', "DNI", 10) producto1 = MF.Producto(1, "Producto 1", 10) producto2 = MF.Producto(2, "Producto 1", 20) pedido1 = MF.Pedido(1, cliente1, [(producto1, 1), (producto2, 1)]) factura = MF.facturar(pedido1) self.assertEqual('{0:.2f}'.format(factura.pie.total), '36.30') self.assertEqual('{0:.2f}'.format(factura.pie.total_iva), '6.30')
def test_tras_facturar_pedido_el_detalle_contiene_los_precios_correctos(self): cliente1 = MF.Cliente(1, 'Pablo Rodriguez', "Calle 100", 'B', "DNI", 10) producto1 = MF.Producto(1, "Producto 1", 10) pedido1 = MF.Pedido(1, cliente1, [(producto1, 1)]) factura = MF.facturar(pedido1) self.assertEqual(factura.detalle[0].precio_neto, 10) self.assertEqual(factura.detalle[0].monto_iva, 2.1) self.assertEqual(factura.detalle[0].precio_venta, 12.1)
def test_tras_cancelar_factura_generado_de_nota_credito_con_total_correcto(self): cliente1 = MF.Cliente(1, 'Pablo Rodriguez', "Calle 100", 'A', "DNI", 10) producto1 = MF.Producto(1, "Producto 1", 10) producto2 = MF.Producto(2, "Producto 1", 20) pedido1 = MF.Pedido(1, cliente1, [(producto1, 1), (producto2, 1)]) factura = MF.facturar(pedido1) nota_credito = MF.cancelar(factura) self.assertEqual(nota_credito.pie.total, factura.pie.total)
def test_tras_facturar_pedido_la_cabecera_es_creada_correctamente(self): cliente1 = MF.Cliente(1, 'Pablo Rodriguez', "Calle 100", 'A', "DNI", 10) producto1 = MF.Producto(1, "Producto 1", 10) producto2 = MF.Producto(2, "Producto 1", 20) pedido1 = MF.Pedido(1, cliente1, [(producto1, 1), (producto2, 1)]) factura = MF.facturar(pedido1) self.assertEqual(factura.cabecera.cliente, cliente1) self.assertEqual(factura.cabecera.letra, 'A') self.assertEqual(factura.cabecera.numero_de_identificacion, MF.factura_number)