def test_muchos_estacionamiento_con_disintos_rif(self): n = 1000 for i in range(0, n): pro = Propietario(nombre="prop%d" % i, ci='V-12345678%d' % i, tel="0412-1234567") pro.save() e1 = Estacionamiento( ci_propietario=pro, nombre="nom%d" % i, direccion="dir1", rif="J-%i" % (123456789 - i), capacidad=n, apertura=time(0, 0), cierre=time(23, 59), ) e1.save() r = Reserva(estacionamiento=e1, inicioReserva=datetime(2015, 3, 10, 3, 0), finalReserva=datetime(2015, 3, 10, 5, 0)) r.save() p = Pago( fechaTransaccion=datetime.now(), cedula="V-1234567", tipoPago="VISTA", reserva=r, monto=100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == 100)
def test_un_estacionamiento_muchos_pagos(self): n = 1000 p = Puestos(particular=n, moto=20, carga=20, discapacitado=20) p.save() e = Estacionamiento( propietario=self.crear_propietario(), nombre="nom", direccion="dir", telefono1="041414141111", telefono2="041414141112", telefono3="04141414111", email1="*****@*****.**", email2="*****@*****.**", rif="J-123456789", capacidad=p, apertura=time(0, 0), cierre=time(23, 59), ) e.save() for i in range(0, n): r = Reserva(estacionamiento=e, inicioReserva=datetime(2015, 3, 10, 3, 0), finalReserva=datetime(2015, 3, 10, 5, 0), tipo_puesto='Particular') r.save() p = Pago( fechaTransaccion=datetime.now(), cedula="V-1234567", tarjetaTipo="VISTA", reserva=r, monto=100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == n * 100)
def test_un_estacionamiento_un_pago(self): pro = Propietario(nombre="Pepe", ci='V-12345678', tel="0412-1234567") pro.save() e = Estacionamiento( ci_propietario=pro, nombre="nom", direccion="dir", rif="J-123456789", capacidad=20, apertura=time(0, 0), cierre=time(23, 59), ) e.save() r = Reserva(estacionamiento=e, inicioReserva=datetime(2015, 3, 10, 3, 0), finalReserva=datetime(2015, 3, 10, 5, 0)) r.save() p = Pago( fechaTransaccion=datetime.now(), cedula="V-1234567", tipoPago="VISTA", reserva=r, monto=150, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == 150)
def testFiveSpotsSixReservationNoOverlapping( self): #Dos esquinas, 1. count = capacidad, inicio=apertura # 2. count = capacidad, fin=cierre e = self.crear_estacionamiento(5) Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 17)).save() self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 6), datetime(2015, 1, 20, 10))) #La reserva de arriba NO se concreta, puesto que s�lo se verific� si era v�lida, sin agregar su objeto self.assertFalse( marzullo(e.id, datetime(2015, 1, 20, 9), datetime(2015, 1, 20, 18)))
def test_un_estacionamiento_muchos_pagos(self): n = 1000 prop=Propietario(nombres="prop",apellidos="",cedula="") prop.save() e = Estacionamiento( propietario = prop, nombre = "nom", direccion = "dir", rif = "J-123456789", capacidad = n, apertura = time(0,0), cierre = time(23,59), ) e.save() for i in range(0,n): r = Reserva( estacionamiento = e, inicioReserva = datetime(2015,3,10,3,0), finalReserva = datetime(2015,3,10,5,0) ) r.save() p = Pago( fechaTransaccion = datetime.now(), cedulaTipo = "V", cedula = "1234567", tarjetaTipo = "VISTA", reserva = r, monto = 100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == n*100)
def test_un_estacionamiento_muchos_pagos(self): n = 1000 prop = Propietario(nombres="prop", apellidos="", cedula="") prop.save() e = Estacionamiento( propietario=prop, nombre="nom", direccion="dir", rif="J-123456789", capacidad=n, apertura=time(0, 0), cierre=time(23, 59), ) e.save() for i in range(0, n): r = Reserva(estacionamiento=e, inicioReserva=datetime(2015, 3, 10, 3, 0), finalReserva=datetime(2015, 3, 10, 5, 0)) r.save() p = Pago( fechaTransaccion=datetime.now(), cedulaTipo="V", cedula="1234567", tarjetaTipo="VISTA", reserva=r, monto=100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == n * 100)
def test_reservaciones_de_una_hora_24_horas(self): # Esquina CAPACIDAD = 10 HORAS_SEMANA = 168 UNA_HORA = timedelta(hours=1) ahora = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) e = self.crear_estacionamiento(CAPACIDAD) for i in range(CAPACIDAD): hora_reserva = ahora for j in range(HORAS_SEMANA): if j != HORAS_SEMANA - 1: Reserva(estacionamiento=e, inicioReserva=hora_reserva, finalReserva=hora_reserva + UNA_HORA).save() else: Reserva(estacionamiento=e, inicioReserva=hora_reserva, finalReserva=hora_reserva + timedelta(minutes=59)).save() hora_reserva += UNA_HORA lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [60 * CAPACIDAD * 24 for i in range(7)] lista_valores[6] = 60 * CAPACIDAD * 24 - CAPACIDAD salida = dict(zip(lista_fechas, lista_valores)) self.assertEqual(tasa_reservaciones(e.id), salida)
def testFiveSpotsSixReservation( self ): #borde, ocupacion = capacidad antes de intentar hacer reservas nuevas e = self.crear_estacionamiento(5) Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 17)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 17)).save() self.assertFalse( marzullo(e.id, datetime(2015, 1, 20, 9), datetime(2015, 1, 20, 18))) self.assertFalse( marzullo(e.id, datetime(2015, 1, 20, 9), datetime(2015, 1, 20, 15)))
def test_un_estacionamiento_un_pago(self): pro = Propietario( nombre = "Pepe", ci = 'V-12345678', tel = "0412-1234567" ) pro.save() e = Estacionamiento( ci_propietario = pro, nombre = "nom", direccion = "dir", rif = "J-123456789", capacidad = 20, apertura = time(0,0), cierre = time(23,59), ) e.save() r = Reserva( estacionamiento = e, inicioReserva = datetime(2015,3,10,3,0), finalReserva = datetime(2015,3,10,5,0) ) r.save() p = Pago( fechaTransaccion = datetime.now(), cedula = "V-1234567", tipoPago = "VISTA", reserva = r, monto = 150, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == 150)
def test_muchos_estacionamiento_con_disintos_rif(self): n = 1000 for i in range(0,n): pro = Propietario( nombre = "prop%d"%i, ci = 'V-12345678%d'%i, tel = "0412-1234567" ) pro.save() e1 = Estacionamiento( ci_propietario = pro, nombre = "nom%d"%i, direccion = "dir1", rif = "J-%i"%(123456789-i), capacidad = n, apertura = time(0,0), cierre = time(23,59), ) e1.save() r = Reserva( estacionamiento = e1, inicioReserva = datetime(2015,3,10,3,0), finalReserva = datetime(2015,3,10,5,0) ) r.save() p = Pago( fechaTransaccion = datetime.now(), cedula = "V-1234567", tipoPago = "VISTA", reserva = r, monto = 100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == 100)
def crear_reserva(h_inicio, h_fin, _estacionamiento): r = Reserva( estacionamiento = _estacionamiento, inicioReserva = h_inicio, finalReserva = h_fin ) r.save() return r
def test_dos_reservaciones_mismo_dia(self): # Borde e=self.crear_estacionamiento(2) ahora=datetime.now().replace(hour=0,minute=0,second=0,microsecond=0) lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[0 for i in range(7)] lista_valores[0]=1440*2 salida=dict(zip(lista_fechas,lista_valores)) Reserva(estacionamiento= e,inicioReserva=ahora,finalReserva=ahora+timedelta(1)).save() Reserva(estacionamiento= e,inicioReserva=ahora,finalReserva=ahora+timedelta(1)).save() self.assertEqual(tasa_reservaciones(e.id),salida)
def test_muchos_estacionamiento_mitad_sin_pagos(self): n = 100 m = 10 for i in range(0,n): pro1 = Propietario( nombre = "prop1%d"%i, ci = "V-12345678%d"%i, tel = "0412-1234567" ) pro2 = Propietario( nombre = "prop2%d"%(i+1), ci = "V-12345679%d"%(i+1), tel = "0412-1234567" ) pro1.save() pro2.save() e1 = Estacionamiento( ci_propietario = pro1, nombre = "nom%d"%i, direccion = "dir1", rif = "J-123456789", capacidad = m, apertura = time(0,0), cierre = time(23,59), ) e2 = Estacionamiento( ci_propietario = pro2, nombre = "no%d"%i, direccion = "dir3", rif = "J-123456789", capacidad = m, apertura = time(0,0), cierre = time(23,59), ) e1.save() e2.save() for j in range(0,m): r = Reserva( estacionamiento = e1, inicioReserva = datetime(2015,3,10,3,0), finalReserva = datetime(2015,3,10,5,0) ) r.save() p = Pago( fechaTransaccion = datetime.now(), cedula = "V-1234567", tipoPago = "VISTA", reserva = r, monto = 100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 2*n and total == n*m*100)
def crear_Reserva(self): hoy = datetime.now() reserva = Reserva(nombre='nomRes', apellido='apelRes', cedula='V-289074', estacionamiento=self.crear_Estacionamiento(), inicioReserva=datetime(2015, 7, 12, 13, 40), finalReserva=datetime(2015, 7, 12, 18, 40), tipo_puesto='Particular') reserva.save() return reserva
def crear_Reserva3(self): hoy = datetime.now() reserva3 = Reserva( nombre='nomRes3', apellido='apelRes3', cedula='V-2345678', estacionamiento=self.crear_Estacionamiento(), inicioReserva=datetime(2015, 7, 12, 13, 40), finalReserva=datetime(2015, 7, 12, 15, 40), ) reserva3.save() return reserva3
def crear_Reserva3(self): hoy = datetime.now() reserva3 = Reserva( nombre = 'nomRes3', apellido = 'apelRes3', cedula = 'V-2345678', estacionamiento = self.crear_Estacionamiento(), inicioReserva = datetime(2015,7,12,13,40), finalReserva = datetime(2015,7,12,15,40), ) reserva3.save() return reserva3
def crear_Reserva(self): hoy = datetime.now() reserva = Reserva( nombre = 'nomRes', apellido = 'apelRes', cedula = 'V-289074', estacionamiento = self.crear_Estacionamiento(), inicioReserva = datetime(2015,7,12,13,40), finalReserva = datetime(2015,7,12,18,40), tipo_puesto = 'Particular' ) reserva.save() return reserva
def testAddThreeReservations( self ): #malicia, reserva cubre todo el horario, y ocupaci�n = capacidad e = self.crear_estacionamiento(3) Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 6), datetime(2015, 1, 20, 18)))
def test_muchos_estacionamiento_mitad_sin_pagos(self): n = 100 m = 10 for i in range(0, n): pro1 = Propietario(nombre="prop1%d" % i, ci="V-12345678%d" % i, tel="0412-1234567") pro2 = Propietario(nombre="prop2%d" % (i + 1), ci="V-12345679%d" % (i + 1), tel="0412-1234567") pro1.save() pro2.save() e1 = Estacionamiento( ci_propietario=pro1, nombre="nom%d" % i, direccion="dir1", rif="J-123456789", capacidad=m, apertura=time(0, 0), cierre=time(23, 59), ) e2 = Estacionamiento( ci_propietario=pro2, nombre="no%d" % i, direccion="dir3", rif="J-123456789", capacidad=m, apertura=time(0, 0), cierre=time(23, 59), ) e1.save() e2.save() for j in range(0, m): r = Reserva(estacionamiento=e1, inicioReserva=datetime(2015, 3, 10, 3, 0), finalReserva=datetime(2015, 3, 10, 5, 0)) r.save() p = Pago( fechaTransaccion=datetime.now(), cedula="V-1234567", tipoPago="VISTA", reserva=r, monto=100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 2 * n and total == n * m * 100)
def test_dos_estacionamiento_muchos_pagos(self): n = 1000 pro1 = Propietario(nombre="PepeUn", ci='V-12345678', tel="0412-1234567") pro1.save() e1 = Estacionamiento( ci_propietario=pro1, nombre="nom1", direccion="dir1", rif="J-123456789", capacidad=n, apertura=time(0, 0), cierre=time(23, 59), ) pro2 = Propietario(nombre="PepeDos", ci='V-12345679', tel="0412-1234568") pro2.save() e2 = Estacionamiento( ci_propietario=pro2, nombre="nom2", direccion="dir3", rif="J-123456789", capacidad=n, apertura=time(0, 0), cierre=time(23, 59), ) e1.save() e2.save() for i in range(0, n): r = Reserva(estacionamiento=e1, inicioReserva=datetime(2015, 3, 10, 3, 0), finalReserva=datetime(2015, 3, 10, 5, 0)) r.save() p = Pago( fechaTransaccion=datetime.now(), cedula="V-1234567", tipoPago="VISTA", reserva=r, monto=100, ) p.save() for i in range(0, n): r = Reserva(estacionamiento=e2, inicioReserva=datetime(2015, 3, 10, 3, 0), finalReserva=datetime(2015, 3, 10, 5, 0)) r.save() p = Pago( fechaTransaccion=datetime.now(), cedula="V-1234567", tipoPago="VISTA", reserva=r, monto=100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 2 and total == 2 * n * 100)
def test_reservaciones_de_una_hora_6_a_18_horas(self): # Esquina CAPACIDAD = 10 HORAS_DIA = 12 UNA_HORA = timedelta(hours=1) ahora = datetime.now().replace(hour=6, minute=0, second=0, microsecond=0) n = CAPACIDAD p = Puestos(particular=n, moto=n, carga=n, discapacitado=n) p.save() e = self.crear_estacionamiento(p, time(6, 0), time(18, 0)) for i in range(CAPACIDAD): hora_reserva = ahora for j in range(7): for k in range(HORAS_DIA): Reserva(estacionamiento=e, inicioReserva=hora_reserva, finalReserva=hora_reserva + UNA_HORA, tipo_puesto='Particular').save() hora_reserva += UNA_HORA hora_reserva = ahora + timedelta(j + 1) lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [60 * CAPACIDAD * HORAS_DIA for i in range(7)] salida = dict(zip(lista_fechas, lista_valores)) self.assertEqual(tasa_reservaciones(e.id), salida)
def test_estacionamiento_reserva_una_hora_cambio_fecha_mediaNoche( self): # Esquina n = 1 p = Puestos(particular=n, moto=n, carga=n, discapacitado=n) p.save() e = self.crear_estacionamiento(p) ahora = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [0 for i in range(7)] lista_valores[1] = 45 lista_valores[2] = 1 salida = dict(zip(lista_fechas, lista_valores)) fecha_inicio = (ahora + timedelta(1)).replace(hour=23, minute=15, second=0) fecha_fin = fecha_inicio + timedelta(minutes=46) Reserva(estacionamiento=e, inicioReserva=fecha_inicio, finalReserva=fecha_fin, tipo_puesto='Particular').save() x = tasa_reservaciones(e.id) self.assertEqual(x, salida)
def testFiveSpotsFiveReservation(self): #borde, ocupaci�n = capacidad e = self.crear_estacionamiento(5) Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 12), finalReserva=datetime(2015, 1, 20, 15)).save() Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 10), finalReserva=datetime(2015, 1, 20, 15)).save() self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 10), datetime(2015, 1, 20, 18)))
def test_muchos_estacionamiento_con_disintos_rif(self): n = 1000 for i in range(0,n): prop = Propietario( nombre = "prop%d"%i, apellido = "apell", cedula = "V-041414141111", telefono = "041414141112", email = "*****@*****.**", ) prop.save() p = Puestos( particular = n, moto = 20, carga = 20, discapacitado = 20 ) p.save() e1 = Estacionamiento( propietario = prop, nombre = "nom%d"%i, direccion = "dir1", rif = "J-%i"%(123456789-i), capacidad = p, apertura = time(0,0), cierre = time(23,59), ) e1.save() r = Reserva( estacionamiento = e1, inicioReserva = datetime(2015,3,10,3,0), finalReserva = datetime(2015,3,10,5,0), tipo_puesto = 'Particular' ) r.save() p = Pago( fechaTransaccion = datetime.now(), cedula = "V-1234567", tarjetaTipo = "VISTA", reserva = r, monto = 100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == 100)
def testAddTwoReservation( self): #esquina, dos reservaciones con fin = cierre estac. e = self.crear_estacionamiento(10) Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 9), finalReserva=datetime(2015, 1, 20, 18)).save() self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 12), datetime(2015, 1, 20, 18)))
def testAddTwoReservation2( self): #esquina, dos reservaciones con incio = apertura estac. e = self.crear_estacionamiento(10) Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 6), finalReserva=datetime(2015, 1, 20, 15)).save() self.assertTrue( marzullo(e.id, datetime(2015, 1, 20, 6), datetime(2015, 1, 20, 14)))
def test_dos_estacionamiento_muchos_pagos(self): n = 1000 p = Puestos( particular = n, moto = 20, carga = 20, discapacitado = 20 ) p.save() e = Estacionamiento( propietario = self.crear_propietario(), nombre = "nom", direccion = "dir", telefono1 = "041414141111", telefono2 = "041414141112", telefono3 = "04141414111", email1 = "*****@*****.**", email2 = "*****@*****.**", rif = "J-123456789", capacidad = p, apertura = time(0,0), cierre = time(23,59), ) e.save() for i in range(0,n): r = Reserva( estacionamiento = e, inicioReserva = datetime(2015,3,10,3,0), finalReserva = datetime(2015,3,10,5,0), tipo_puesto = 'Particular' ) r.save() p = Pago( fechaTransaccion = datetime.now(), cedula = "V-1234567", tarjetaTipo = "VISTA", reserva = r, monto = 100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == n*100)
def testFullPlusOne( self ): #malicia, fin - inicio = 1hora, doce veces + una reserva FullDay e = self.crear_estacionamiento(1) for i in range(12): Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 6 + i), finalReserva=datetime(2015, 1, 20, 7 + i)).save() self.assertFalse( marzullo(e.id, datetime(2015, 1, 20, 6), datetime(2015, 1, 20, 18)))
def testAllSmallestReservations( self): #malicia, fin - inicio = 1hora, doce veces e = self.crear_estacionamiento(1) for i in range(12): Reserva(estacionamiento=e, inicioReserva=datetime(2015, 1, 20, 6 + i), finalReserva=datetime(2015, 1, 20, 7 + i)).save() for i in range(12): self.assertFalse( marzullo(e.id, datetime(2015, 1, 20, 6 + i), datetime(2015, 1, 20, 7 + i)))
def test_estacionamiento_reserva_un_dia_sola_casilla_menos_un_minuto(self): # Normal TDD e=self.crear_estacionamiento(1) ahora=datetime.now().replace(hour=0,minute=0,second=0,microsecond=0) lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[0 for i in range(7)] lista_valores[1]=60*24-1 salida=dict(zip(lista_fechas,lista_valores)) fecha_inicio=ahora+timedelta(1) fecha_fin=ahora+timedelta(days=1,hours=23,minutes=59) Reserva(estacionamiento= e,inicioReserva=fecha_inicio,finalReserva=fecha_fin).save() self.assertEqual(tasa_reservaciones(e.id),salida)
def test_estacionamiento_reserva_una_hora_sin_cambio_fecha(self): # Normal TDD e=self.crear_estacionamiento(1) ahora=datetime.now().replace(second=0,microsecond=0) lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[0 for i in range(7)] lista_valores[1]=60 salida=dict(zip(lista_fechas,lista_valores)) fecha_inicio=(ahora+timedelta(1)).replace(hour=15,minute=15) fecha_fin=fecha_inicio.replace(hour=16,minute=15) Reserva(estacionamiento= e,inicioReserva=fecha_inicio,finalReserva=fecha_fin).save() self.assertEqual(tasa_reservaciones(e.id),salida)
def test_reserva_inicio_antes_de_inicioVentana_fin_despues_inicioVentana(self): # Esquina e=self.crear_estacionamiento(1) ahora=datetime.now().replace(hour=0,minute=0,second=0,microsecond=0) lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[0 for i in range(7)] lista_valores[0]=1 salida=dict(zip(lista_fechas,lista_valores)) fecha_inicio=ahora-timedelta(1) fecha_fin=ahora.replace(hour=0,minute=1) Reserva(estacionamiento= e,inicioReserva=fecha_inicio,finalReserva=fecha_fin).save() self.assertEqual(tasa_reservaciones(e.id),salida)
def test_estacionamiento_reserva_siete_dias(self): # Esquina e=self.crear_estacionamiento(1) ahora=datetime.now().replace(hour=0,minute=0,second=0,microsecond=0) lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[60*24 for i in range(7)] lista_valores[6]=60*24-1 salida=dict(zip(lista_fechas,lista_valores)) fecha_inicio=ahora fecha_fin=ahora+timedelta(days=6,hours=23,minutes=59,seconds=0) Reserva(estacionamiento= e,inicioReserva=fecha_inicio,finalReserva=fecha_fin).save() self.assertEqual(tasa_reservaciones(e.id,True),salida)
def test_estacionamiento_reserva_un_dia_dos_casillas(self): #Borde e=self.crear_estacionamiento(1) ahora=datetime.now().replace(hour=0,minute=0,second=0,microsecond=0) lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[0 for i in range(7)] lista_valores[1]=780 lista_valores[2]=660 salida=dict(zip(lista_fechas,lista_valores)) fecha_inicio=ahora+timedelta(days=1,hours=11) fecha_fin=ahora+timedelta(days=2,hours=11) Reserva(estacionamiento= e,inicioReserva=fecha_inicio,finalReserva=fecha_fin).save() self.assertEqual(tasa_reservaciones(e.id),salida)
def test_reserva_6_dias_misma_hora(self): # Normal TDD e=self.crear_estacionamiento(2) ahora=datetime.now().replace(hour=0,minute=0,second=0,microsecond=0) lista_fechas=[(ahora+timedelta(i)).date() for i in range(7)] lista_valores=[1440 for i in range(7)] lista_valores[0]=0 lista_valores[1]=0 lista_valores[2]=18*60 lista_valores[6]=6*60 salida=dict(zip(lista_fechas,lista_valores)) Reserva(estacionamiento= e,inicioReserva=ahora.replace(hour=6)+timedelta(2),finalReserva=ahora.replace(hour=6)+timedelta(6)).save() x=tasa_reservaciones(e.id) self.assertEqual(tasa_reservaciones(e.id),salida)
def test_dos_reservaciones_mismo_dia(self): # Borde n = 2 p = Puestos(particular=n, moto=n, carga=n, discapacitado=n) p.save() e = self.crear_estacionamiento(p) ahora = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [0 for i in range(7)] lista_valores[0] = 1440 * 2 salida = dict(zip(lista_fechas, lista_valores)) Reserva(estacionamiento=e, inicioReserva=ahora, finalReserva=ahora + timedelta(1), tipo_puesto='Particular').save() Reserva(estacionamiento=e, inicioReserva=ahora, finalReserva=ahora + timedelta(1), tipo_puesto='Particular').save() self.assertEqual(tasa_reservaciones(e.id), salida)
def test_muchos_estacionamiento_con_disintos_rif(self): n = 1000 for i in range(0, n): prop = Propietario( nombre="prop%d" % i, apellido="apell", cedula="V-041414141111", telefono="041414141112", email="*****@*****.**", ) prop.save() p = Puestos(particular=n, moto=20, carga=20, discapacitado=20) p.save() e1 = Estacionamiento( propietario=prop, nombre="nom%d" % i, direccion="dir1", rif="J-%i" % (123456789 - i), capacidad=p, apertura=time(0, 0), cierre=time(23, 59), ) e1.save() r = Reserva(estacionamiento=e1, inicioReserva=datetime(2015, 3, 10, 3, 0), finalReserva=datetime(2015, 3, 10, 5, 0), tipo_puesto='Particular') r.save() p = Pago( fechaTransaccion=datetime.now(), cedula="V-1234567", tarjetaTipo="VISTA", reserva=r, monto=100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 1 and total == 100)
def test_dos_estacionamiento_muchos_pagos(self): n = 1000 e1 = Estacionamiento( propietario = "prop1", nombre = "nom1", direccion = "dir1", rif = "J-123456789", capacidad = n, apertura = time(0,0), cierre = time(23,59), ) e2 = Estacionamiento( propietario = "prop2", nombre = "nom2", direccion = "dir3", rif = "J-123456789", capacidad = n, apertura = time(0,0), cierre = time(23,59), ) e1.save() e2.save() for i in range(0,n): r = Reserva( estacionamiento = e1, inicioReserva = datetime(2015,3,10,3,0), finalReserva = datetime(2015,3,10,5,0) ) r.save() p = Pago( fechaTransaccion = datetime.now(), cedulaTipo = "V", cedula = "1234567", tarjetaTipo = "VISTA", reserva = r, monto = 100, ) p.save() for i in range(0,n): r = Reserva( estacionamiento = e2, inicioReserva = datetime(2015,3,10,3,0), finalReserva = datetime(2015,3,10,5,0) ) r.save() p = Pago( fechaTransaccion = datetime.now(), cedulaTipo = "V", cedula = "1234567", tarjetaTipo = "VISTA", reserva = r, monto = 100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 2 and total == 2*n*100)
def test_estacionamiento_reserva_una_hora_sin_cambio_fecha( self): # Normal TDD n = 1 p = Puestos(particular=n, moto=n, carga=n, discapacitado=n) p.save() e = self.crear_estacionamiento(p) ahora = datetime.now().replace(second=0, microsecond=0) lista_fechas = [(ahora + timedelta(i)).date() for i in range(7)] lista_valores = [0 for i in range(7)] lista_valores[1] = 60 salida = dict(zip(lista_fechas, lista_valores)) fecha_inicio = (ahora + timedelta(1)).replace(hour=15, minute=15) fecha_fin = fecha_inicio.replace(hour=16, minute=15) Reserva(estacionamiento=e, inicioReserva=fecha_inicio, finalReserva=fecha_fin, tipo_puesto='Particular').save() self.assertEqual(tasa_reservaciones(e.id), salida)
def test_dos_estacionamiento_muchos_pagos(self): n = 1000 pro1 = Propietario( nombre = "PepeUn", ci = 'V-12345678', tel = "0412-1234567" ) pro1.save() e1 = Estacionamiento( ci_propietario = pro1, nombre = "nom1", direccion = "dir1", rif = "J-123456789", capacidad = n, apertura = time(0,0), cierre = time(23,59), ) pro2 = Propietario( nombre = "PepeDos", ci = 'V-12345679', tel = "0412-1234568" ) pro2.save() e2 = Estacionamiento( ci_propietario = pro2, nombre = "nom2", direccion = "dir3", rif = "J-123456789", capacidad = n, apertura = time(0,0), cierre = time(23,59), ) e1.save() e2.save() for i in range(0,n): r = Reserva( estacionamiento = e1, inicioReserva = datetime(2015,3,10,3,0), finalReserva = datetime(2015,3,10,5,0) ) r.save() p = Pago( fechaTransaccion = datetime.now(), cedula = "V-1234567", tipoPago = "VISTA", reserva = r, monto = 100, ) p.save() for i in range(0,n): r = Reserva( estacionamiento = e2, inicioReserva = datetime(2015,3,10,3,0), finalReserva = datetime(2015,3,10,5,0) ) r.save() p = Pago( fechaTransaccion = datetime.now(), cedula = "V-1234567", tipoPago = "VISTA", reserva = r, monto = 100, ) p.save() lista, total = consultar_ingresos("J-123456789") self.assertTrue(len(lista) == 2 and total == 2*n*100)
def estacionamiento_pago(request,_id): form = PagoForm() try: estacionamiento = Estacionamiento.objects.get(id = _id) except ObjectDoesNotExist: raise Http404 if (estacionamiento.apertura is None): return HttpResponse(status = 403) # No esta permitido acceder a esta vista aun if request.method == 'POST': form = PagoForm(request.POST) if form.is_valid(): inicioReserva = datetime( year = request.session['anioinicial'], month = request.session['mesinicial'], day = request.session['diainicial'], hour = request.session['inicioReservaHora'], minute = request.session['inicioReservaMinuto'] ) finalReserva = datetime( year = request.session['aniofinal'], month = request.session['mesfinal'], day = request.session['diafinal'], hour = request.session['finalReservaHora'], minute = request.session['finalReservaMinuto'] ) reservaFinal = Reserva( estacionamiento = estacionamiento, inicioReserva = inicioReserva, finalReserva = finalReserva, ) # Se guarda la reserva en la base de datos reservaFinal.save() monto = Decimal(request.session['monto']).quantize(Decimal('1.00')) pago = Pago( fechaTransaccion = datetime.now(), cedula = form.cleaned_data['cedula'], cedulaTipo = form.cleaned_data['cedulaTipo'], monto = monto, tarjetaTipo = form.cleaned_data['tarjetaTipo'], reserva = reservaFinal, ) # Se guarda el recibo de pago en la base de datos pago.save() return render( request, 'pago.html', { "id" : _id , "pago" : pago , "color" : "green" , 'mensaje' : "Se realizo el pago de reserva satisfactoriamente." } ) return render( request, 'pago.html', { 'form' : form } )
def billetera_pagar(request, _id): form = BilleteraElectronicaPagoForm() try: estacionamiento = Estacionamiento.objects.get(id = _id) except ObjectDoesNotExist: raise Http404 if (estacionamiento.apertura is None): return HttpResponse(status = 403) # No esta permitido acceder a esta vista aun if request.method == 'POST': form = BilleteraElectronicaPagoForm(request.POST) if form.is_valid(): try: BE = BilleteraElectronica.objects.get(id = form.cleaned_data['id']) if (BE.PIN != form.cleaned_data['pin']): return render( request, 'billetera_pagar.html', { "form" : form , "color" : "red" ,'mensaje' : "Autenticación denegada." } ) except ObjectDoesNotExist: return render( request, 'billetera_pagar.html', { "form" : form , "color" : "red" ,'mensaje' : "Autenticación denegada." } ) monto = Decimal(request.session['monto']).quantize(Decimal('1.00')) if (monto > BE.saldo): return render( request, 'billetera_pagar.html', { "formIns" : form , "color" : "red" ,'mensaje' : "Saldo es insuficiente." } ) inicioReserva = datetime( year = request.session['anioinicial'], month = request.session['mesinicial'], day = request.session['diainicial'], hour = request.session['inicioReservaHora'], minute = request.session['inicioReservaMinuto'] ) finalReserva = datetime( year = request.session['aniofinal'], month = request.session['mesfinal'], day = request.session['diafinal'], hour = request.session['finalReservaHora'], minute = request.session['finalReservaMinuto'] ) reservaFinal = Reserva( estacionamiento = estacionamiento, inicioReserva = inicioReserva, finalReserva = finalReserva, ) # Se guarda la reserva en la base de datos reservaFinal.save() pago = Pago( fechaTransaccion = datetime.now(), cedula = BE.cedula, cedulaTipo = BE.cedulaTipo, monto = monto, tarjetaTipo = "BE", reserva = reservaFinal, ) # Se guarda el recibo de pago en la base de datos pago.save() return render( request, 'billetera_pagar.html', { "id" : _id , "pago" : pago , "color" : "green" , 'mensaje' : "Se realizo el pago de reserva satisfactoriamente." } ) return render( request, 'billetera_pagar.html', { 'form' : form } )