예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
 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)))
예제 #5
0
 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)
예제 #6
0
 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)
예제 #7
0
 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)
예제 #8
0
 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)))
예제 #9
0
 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)
예제 #10
0
 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)
예제 #11
0
def crear_reserva(h_inicio, h_fin, _estacionamiento):
    r = Reserva(
            estacionamiento = _estacionamiento,
            inicioReserva = h_inicio,
            finalReserva = h_fin    
    )
    r.save()
    return r
예제 #12
0
def crear_reserva(h_inicio, h_fin, _estacionamiento):
    r = Reserva(
            estacionamiento = _estacionamiento,
            inicioReserva = h_inicio,
            finalReserva = h_fin    
    )
    r.save()
    return r
예제 #13
0
 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)
예제 #14
0
    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)
예제 #15
0
 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
예제 #16
0
 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
예제 #17
0
	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
예제 #18
0
	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
예제 #19
0
 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)))
예제 #20
0
    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)
예제 #21
0
 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)
예제 #22
0
 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)
예제 #23
0
 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)
예제 #24
0
 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)
예제 #26
0
 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)))
예제 #27
0
 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)
예제 #29
0
 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)))
예제 #30
0
 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)))
예제 #31
0
 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)
예제 #32
0
 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)
예제 #33
0
 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)
예제 #34
0
 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)
예제 #35
0
 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)
예제 #36
0
 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)
예제 #37
0
 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)
예제 #38
0
 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)
예제 #39
0
 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)
예제 #40
0
 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)
예제 #41
0
 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)
예제 #42
0
파일: views.py 프로젝트: Arleyn/Sage-Edwin
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 }
    )
예제 #43
0
파일: views.py 프로젝트: Arleyn/Sage-Edwin
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 }
    )