def test_estacionamiento_extended_form_esquema_inexistente(self): form_data = { 'horarioin': time( hour = 6, minute = 0), 'horarioout': time(hour = 19, minute = 0), 'esquema': 'TarifaHola' } form = EstacionamientoExtendedForm(data = form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_apertura_00(self): form_data = { 'horarioin': time(hour = 0, minute = 0), 'horarioout': time(hour = 19, minute = 0), 'esquema':'TarifaHora' } form = EstacionamientoExtendedForm(data = form_data) self.assertTrue(form.is_valid())
def test_estacionamiento_extended_form_cierre_menor_apertura(self): form_data = { 'horarioin': time( hour = 20, minute = 0), 'horarioout': time(hour = 8, minute = 0), 'esquema': 'TarifaHora' } form = EstacionamientoExtendedForm(data = form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_cierre_11_59(self): form_data = { 'horarioin': time(hour = 8, minute = 0), 'horarioout': time(hour = 11, minute = 59), 'esquema':'TarifaHora' } form = EstacionamientoExtendedForm(data = form_data) self.assertTrue(form.is_valid())
def test_estacionamiento_extended_form_un_campo(self): form_data = { 'puestosLivianos': 2, 'puestosPesados': 2, 'puestosMotos' : 2, 'horizonte' : 15} form = EstacionamientoExtendedForm(data = form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_cuatro_campo(self): form_data = { 'puestos1': 2, 'puestos2': 2, 'puestos3': 2, 'puestos4': 2} form = EstacionamientoExtendedForm(data = form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_string_hora_cierre(self): form_data = { 'horarioin': time(hour = 19, minute = 0), 'horarioout': 'holaa', 'esquema':'TarifaHora' } form = EstacionamientoExtendedForm(data = form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_puestos_0(self): form_data = { 'puestos': 0, 'horarioin': time(hour = 6, minute = 0), 'horarioout': time(hour = 19, minute = 0), 'tarifa': '12', 'esquema':'TarifaHora'} form = EstacionamientoExtendedForm(data = form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_cinco_campos(self): form_data = { 'puestos1': 2, 'puestos2': 2, 'puestos3': 2, 'puestos4': 2, 'horarioin': time(hour = 6, minute = 0)} form = EstacionamientoExtendedForm(data = form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_dos_campos(self): form_data = { 'puestosLivianos': 2, 'puestosPesados': 2, 'puestosMotos' : 2, 'horarioin': time(hour = 6, minute = 0), 'horizonte' : 15} form = EstacionamientoExtendedForm(data = form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_cuatro_bien(self): form_data = { 'puestos': 2, 'horarioin': time(hour = 6, minute = 0), 'horarioout': time(hour = 19, minute = 0), 'tarifa': '12' } form = EstacionamientoExtendedForm(data = form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_feriados(self): form_data = { 'horarioin': time(hour = 6, minute = 0), 'horarioout': time(hour = 19, minute = 0), 'esquema':'TarifaMinuto', 'aceptaFeriados': True, 'feriados' : '2015-05-01,2015-06-24' } form = EstacionamientoExtendedForm(data = form_data) self.assertTrue(form.is_valid())
def test_estacionamiento_extended_form_hora_inicio_igual_hora_cierre(self): form_data = { 'puestos': 2, 'horarioin': time(hour = 6, minute = 0), 'horarioout': time(hour = 6, minute = 0), 'tarifa': '12', 'esquema':'TarifaHora' } form = EstacionamientoExtendedForm(data = form_data) self.assertTrue(form.is_valid())
def test_estacionamiento_extended_form_cuatro_bien(self): form_data = { "puestos_carros": 2, "horarioin": time(hour=6, minute=0), "horarioout": time(hour=19, minute=0), "tarifa": 12, } form = EstacionamientoExtendedForm(data=form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_todos_campos_bien(self): form_data = { 'puestos': 2, 'horarioin': time(hour = 6, minute = 0), 'horarioout': time(hour = 19, minute = 0), 'tarifa': '12', 'esquema':'TarifaMinuto' } form = EstacionamientoExtendedForm(data = form_data) self.assertTrue(form.is_valid())
def test_estacionamiento_extended_form_hora_inicio_menor(self): form_data = { 'horarioin': time( hour = 8, minute = 0), 'horarioout': time(hour = 19, minute = 0), 'esquema': 'TarifaHora', 'inicioTarifa2': time( hour = 7, minute = 0), 'finTarifa2': time(hour = 12, minute = 0) } form = EstacionamientoExtendedForm(data = form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_horizonte_maximo(self): form_data = { "horizonte_reserva": 15, "horarioin": time(hour=6, minute=0), "horarioout": time(hour=19, minute=0), "esquema2": "TarifaHora", "esquema": "TarifaHorayFraccion", } form = EstacionamientoExtendedForm(data=form_data) self.assertTrue(form.is_valid())
def test_estacionamiento_extended_form_cinco_campos_bien(self): form_data = { "puestos_motos": 2, "horarioin": time(hour=6, minute=0), "horarioout": time(hour=19, minute=0), "tarifa": 12, "esquema": "TarifaMinuto", } form = EstacionamientoExtendedForm(data=form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_siete_bien(self): form_data = { 'puestos1': 2, 'puestos2': 2, 'puestos3': 2, 'puestos4': 2, 'horarioin': time(hour = 6, minute = 0), 'horarioout': time(hour = 19, minute = 0), 'tarifa': 12 } form = EstacionamientoExtendedForm(data = form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_feriados_horarios_iguales(self): form_data = { 'horarioin': time(hour = 8, minute = 0), 'horarioout': time(hour = 20, minute = 50), 'esquema':'TarifaHora', 'aceptaFeriados': True, 'feriados' : '2015-05-01,2015-06-24', 'inicioTarifaFeriados': time( hour = 8, minute = 0), 'finTarifaFeriados': time(hour = 20, minute = 50) } form = EstacionamientoExtendedForm(data = form_data) self.assertTrue(form.is_valid())
def test_estacionamiento_extended_form_unDia_unaHora(self): form_data = { 'puestos': 2, 'horarioin': time( hour = 6, minute = 0), 'horarioout': time(hour = 19, minute = 0), 'tarifa': 1.2, 'esquema':('TarifaHora', 'Por hora'), 'horizonteDias':1, 'horizonteHoras': 1 } form = EstacionamientoExtendedForm(data = form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_none_en_esquema(self): form_data = { 'puestos1': 2, 'puestos2': 2, 'puestos3': 2, 'puestos4': 2, 'horarioin': time( hour = 6, minute = 0), 'horarioout': time(hour = 19, minute = 0), 'tarifa': '12', 'esquema':None } form = EstacionamientoExtendedForm(data = form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_puestos_1(self): form_data = { 'puestos1': 1, 'puestos2': 1, 'puestos3': 1, 'puestos4': 1, 'horarioin': time(hour = 6, minute = 0), 'horarioout': time(hour = 19, minute = 0), 'tarifa': 1.2, 'esquema':'TarifaHora', 'horizonteDias':15, 'horizonteHoras': 0} form = EstacionamientoExtendedForm(data = form_data) self.assertTrue(form.is_valid())
def test_estacionamiento_extended_form_puestos_0(self): form_data = { 'puestosLivianos': 0, 'puestosPesados': 0, 'puestosDiscapacitados': 2, 'puestosMotos' : 0, 'horarioin': time(hour = 6, minute = 0), 'horarioout': time(hour = 19, minute = 0), 'esquema':'TarifaHora', 'esquemaFeriado' : 'TarifaMinuto', 'horizonte' : 15 } form = EstacionamientoExtendedForm(data = form_data) self.assertRaises(Exception,form.is_valid())
def test_estacionamiento_extended_form_puestos_1(self): form_data = { 'puestosLivianos': 2, 'puestosPesados': 2, 'puestosMotos' : 2, 'puestosDiscapacitados': 2, 'horarioin': time(hour = 6, minute = 0), 'horarioout': time(hour = 19, minute = 0), 'esquema':'TarifaHora', 'esquemaFeriado' : 'TarifaMinuto', 'horizonte' : 15, 'fronteraTarifa': 'PrecioTarifaMasCara' } form = EstacionamientoExtendedForm(data = form_data) self.assertTrue(form.is_valid())
def test_estacionamiento_extended_form_none_en_tarifa(self): form_data = { 'puestos1': 2, 'puestos2': 2, 'puestos3': 2, 'puestos4': 2, 'horarioin': time( hour = 6, minute = 0), 'horarioout': time(hour = 19, minute = 0), 'tarifa': None, 'esquema':('TarifaHora', 'Por hora'), 'horizonteDias':15, 'horizonteHoras': 0 } form = EstacionamientoExtendedForm(data = form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_discapacitados_0(self): form_data = { 'puestosLivianos': 2, 'puestosPesados': 2, 'puestosMotos': 2, 'puestosDiscapacitados': 0, 'horarioin': time(hour=6, minute=0), 'horarioout': time(hour=19, minute=0), 'esquema': 'TarifaHora', 'esquemaFeriado': 'TarifaMinuto', 'horizonte': 15, 'fronteraTarifa': 'PrecioTarifaMasCara' } form = EstacionamientoExtendedForm(data=form_data) self.assertTrue(form.is_valid())
def test_estacionamiento_extended_form_hora_inicio_igual_hora_cierre_y_puesto_0( self): form_data = { 'puestos1': 0, 'puestos2': 0, 'puestos3': 0, 'puestos4': 0, 'horarioin': time(hour=6, minute=0), 'horarioout': time(hour=6, minute=0), 'tarifa': 1.2, 'esquema': 'TarifaHora', 'horizonteDias': 15, 'horizonteHoras': 0 } form = EstacionamientoExtendedForm(data=form_data) self.assertTrue(form.is_valid())
def test_estacionamiento_extended_form_todos_los_campos_correctos_por_minuto(self): form_data = { "puestos_motos": 2, "puestos_carros": 2, "puestos_camiones": 2, "puestos_especiales": 2, "horarioin": time(hour=6, minute=0), "horarioout": time(hour=19, minute=0), "tarifa_motos": 12, "tarifa_carros": 12, "tarifa_camiones": 12, "tarifa_especiales": 12, "esquema": "TarifaMinuto", "esquema2": "TarifaMinuto", } form = EstacionamientoExtendedForm(data=form_data) self.assertTrue(form.is_valid())
def test_estacionamiento_extended_form_none_en_tarifa(self): form_data = { "puestos_motos": 2, "puestos_carros": 2, "puestos_camiones": 2, "puestos_especiales": 2, "horarioin": time(hour=6, minute=0), "horarioout": time(hour=19, minute=0), "tarifa_motos": None, "tarifa_carros": None, "tarifa_camiones": None, "tarifa_especiales": None, "esquema2": "TarifaHora", "esquema": "TarifaHorayFraccion", } form = EstacionamientoExtendedForm(data=form_data) self.assertTrue(form.is_valid())
def test_estacionamiento_extended_form_string_hora_inicio(self): form_data = { "puestos_motos": 2, "puestos_carros": 2, "puestos_camiones": 2, "puestos_especiales": 2, "horarioin": "hola", "horarioout": time(hour=19, minute=0), "tarifa_motos": 12, "tarifa_carros": 12, "tarifa_camiones": 12, "tarifa_especiales": 12, "esquema2": "TarifaHora", "esquema": "TarifaHorayFraccion", } form = EstacionamientoExtendedForm(data=form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_string_hora_inicio(self): form_data = { 'puestos_motos': 2, 'puestos_carros': 2, 'puestos_camiones': 2, 'puestos_especiales': 2, 'horarioin': "hola", 'horarioout': time(hour=19, minute=0), 'tarifa_motos': 12, 'tarifa_carros': 12, 'tarifa_camiones': 12, 'tarifa_especiales': 12, 'esquema2': 'TarifaHora', 'esquema': 'TarifaHorayFraccion' } form = EstacionamientoExtendedForm(data=form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_none_en_tarifa(self): form_data = { 'puestos_motos': 2, 'puestos_carros': 2, 'puestos_camiones': 2, 'puestos_especiales': 2, 'horarioin': time(hour=6, minute=0), 'horarioout': time(hour=19, minute=0), 'tarifa_motos': None, 'tarifa_carros': None, 'tarifa_camiones': None, 'tarifa_especiales': None, 'esquema2': 'TarifaHora', 'esquema': 'TarifaHorayFraccion' } form = EstacionamientoExtendedForm(data=form_data) self.assertTrue(form.is_valid())
def test_estacionamiento_extended_form_todos_los_campos_correctos_por_minuto( self): form_data = { 'puestos_motos': 2, 'puestos_carros': 2, 'puestos_camiones': 2, 'puestos_especiales': 2, 'horarioin': time(hour=6, minute=0), 'horarioout': time(hour=19, minute=0), 'tarifa_motos': 12, 'tarifa_carros': 12, 'tarifa_camiones': 12, 'tarifa_especiales': 12, 'esquema': 'TarifaMinuto', 'esquema2': 'TarifaMinuto' } form = EstacionamientoExtendedForm(data=form_data) self.assertTrue(form.is_valid())
def estacionamiento_detail(request, _id): _id = int(_id) # Verificamos que el objeto exista antes de continuar try: estacion = Estacionamiento.objects.get(id=_id) except ObjectDoesNotExist: return render(request, '404.html') global listaReserva listaReserva = [] if request.method == 'POST': # Leemos el formulario form = EstacionamientoExtendedForm(request.POST) # Si el formulario if form.is_valid(): hora_in = form.cleaned_data['horarioin'] hora_out = form.cleaned_data['horarioout'] reserva_in = form.cleaned_data['horario_reserin'] reserva_out = form.cleaned_data['horario_reserout'] m_validado = HorarioEstacionamiento(hora_in, hora_out, reserva_in, reserva_out) if not m_validado[0]: return render(request, 'templateMensaje.html', { 'color': 'red', 'mensaje': m_validado[1] }) estacion.Tarifa = form.cleaned_data['tarifa'] estacion.Apertura = hora_in estacion.Cierre = hora_out estacion.Reservas_Inicio = reserva_in estacion.Reservas_Cierre = reserva_out estacion.NroPuesto = form.cleaned_data['puestos'] estacion.save() else: form = EstacionamientoExtendedForm() return render(request, 'estacionamiento.html', { 'form': form, 'estacionamiento': estacion })
def test_estacionamiento_extended_form_tarifa_especiales_grande(self): form_data = { "puestos_motos": 2, "puestos_carros": 2, "puestos_autobus": 2, "puestos_microbus": 2, "puestos_camiones": 2, "puestos_especiales": 2, "horarioin": time(hour=6, minute=0), "horarioout": time(hour=19, minute=0), "tarifa_motos": 12, "tarifa_carros": 12, "tarifa_autobus": 12, "tarifa_microbus": 12, "tarifa_camiones": 12, "tarifa_especiales": 2 ^ 31 - 1, "esquema2": "TarifaHora", "esquema": "TarifaHorayFraccion", } form = EstacionamientoExtendedForm(data=form_data) self.assertTrue(form.is_valid()) self.assertEqual(form.clean_tarifa("tarifa_especiales"), 2 ^ 31 - 1)
def test_estacionamiento_extended_form_tarifa_especiales_grande(self): form_data = { 'puestos_motos': 2, 'puestos_carros': 2, 'puestos_autobus': 2, 'puestos_microbus': 2, 'puestos_camiones': 2, 'puestos_especiales': 2, 'horarioin': time(hour=6, minute=0), 'horarioout': time(hour=19, minute=0), 'tarifa_motos': 12, 'tarifa_carros': 12, 'tarifa_autobus': 12, 'tarifa_microbus': 12, 'tarifa_camiones': 12, 'tarifa_especiales': 2 ^ 31 - 1, 'esquema2': 'TarifaHora', 'esquema': 'TarifaHorayFraccion' } form = EstacionamientoExtendedForm(data=form_data) self.assertTrue(form.is_valid()) self.assertEqual(form.clean_tarifa('tarifa_especiales'), 2 ^ 31 - 1)
def test_estacionamiento_extended_form_un_campo(self): form_data = {'puestos_motos': 2} form = EstacionamientoExtendedForm(data=form_data) self.assertFalse(form.is_valid())
def estacionamiento_detail(request, _id): _id = int(_id) # Verificamos que el objeto exista antes de continuar try: estacionamiento = Estacionamiento.objects.get(id=_id) except ObjectDoesNotExist: raise Http404 if request.method == 'GET': if estacionamiento.tarifa: form_data = { 'horarioin': estacionamiento.apertura, 'horarioout': estacionamiento.cierre, 'tarifa': estacionamiento.tarifa.tarifa, 'tarifa2': estacionamiento.tarifa.tarifa2, 'inicioTarifa2': estacionamiento.tarifa.inicioEspecial, 'finTarifa2': estacionamiento.tarifa.finEspecial, 'puestos': estacionamiento.capacidad, 'esquema': estacionamiento.tarifa.__class__.__name__ } form = EstacionamientoExtendedForm(data=form_data) else: form = EstacionamientoExtendedForm() elif request.method == 'POST': # Leemos el formulario form = EstacionamientoExtendedForm(request.POST) # Si el formulario if form.is_valid(): horaIn = form.cleaned_data['horarioin'] horaOut = form.cleaned_data['horarioout'] tarifa = form.cleaned_data['tarifa'] tipo = form.cleaned_data['esquema'] inicioTarifa2 = form.cleaned_data['inicioTarifa2'] finTarifa2 = form.cleaned_data['finTarifa2'] tarifa2 = form.cleaned_data['tarifa2'] esquemaTarifa = eval(tipo)(tarifa=tarifa, tarifa2=tarifa2, inicioEspecial=inicioTarifa2, finEspecial=finTarifa2) esquemaTarifa.save() # debería funcionar con excepciones, y el mensaje debe ser mostrado # en el mismo formulario if not HorarioEstacionamiento(horaIn, horaOut): return render( request, 'template-mensaje.html', { 'color': 'red', 'mensaje': 'El horario de apertura debe ser menor al horario de cierre' }) # debería funcionar con excepciones estacionamiento.tarifa = esquemaTarifa estacionamiento.apertura = horaIn estacionamiento.cierre = horaOut estacionamiento.capacidad = form.cleaned_data['puestos'] estacionamiento.save() form = EstacionamientoExtendedForm() return render(request, 'detalle-estacionamiento.html', { 'form': form, 'estacionamiento': estacionamiento })
def estacionamiento_detail(request, _id): _id = int(_id) # Verificamos que el objeto exista antes de continuar try: estacion = Estacionamiento.objects.get(id=_id) esq = Esquema(Estacionamiento=estacion, Tarifa=Decimal(0)) if estacion.Esquema: # Si el estacionamiento ya tiene un esquema, se usa esq = eval(estacion.Esquema + ".objects.get(Estacionamiento=estacion)") except ObjectDoesNotExist: return render(request, '404.html') global listaReserva listaReserva = [] if request.method == 'POST': # Leemos el formulario form = EstacionamientoExtendedForm(request.POST) esquemaform = EsquemaForm(request.POST) # Si el formulario es valido if form.is_valid(): hora_in = form.cleaned_data['horarioin'] hora_out = form.cleaned_data['horarioout'] m_validado = HorarioEstacionamiento(hora_in, hora_out) if not m_validado[0]: return render(request, 'templateMensaje.html', \ {'color':'red', 'mensaje': m_validado[1], 'estacionamiento':estacion}) if esquemaform.is_valid(): tipoEsquema = esquemaform.cleaned_data['esquema'] tarifa = esquemaform.cleaned_data['tarifa'] if estacion.Esquema: eval(tipoEsquema + ".objects.filter(Estacionamiento=estacion).delete()") if tipoEsquema == "DifHora": picoIni = esquemaform.cleaned_data['hora_picoini'] picoFin = esquemaform.cleaned_data['hora_picofin'] tarifaPico = esquemaform.cleaned_data['tarifa_pico'] m_validado = validarPicos(hora_in, hora_out, picoIni, picoFin, tarifa, tarifaPico) if not m_validado[0]: return render(request, 'templateMensaje.html', \ {'color':'red', 'mensaje': m_validado[1], 'estacionamiento':estacion}) esq = eval(tipoEsquema + "(Estacionamiento=estacion,Tarifa=tarifa,\ PicoIni=picoIni,PicoFin=picoFin,TarifaPico=tarifaPico)" ) elif tipoEsquema == "DifFin": tarifaFin = esquemaform.cleaned_data['tarifa_fin'] m_validado = validarFin(tarifa, tarifaFin) if not m_validado[0]: return render(request, 'templateMensaje.html', \ {'color':'red', 'mensaje': m_validado[1]}) esq = eval(tipoEsquema + "(Estacionamiento = estacion, Tarifa = tarifa, \ TarifaFin = tarifaFin)" ) else: esq = eval(tipoEsquema + "(Estacionamiento = estacion, Tarifa = tarifa)") esq.save() estacion.Esquema = esquemaform.cleaned_data['esquema'] estacion.Apertura = hora_in estacion.Cierre = hora_out estacion.NroPuesto = form.cleaned_data['puestos'] estacion.save() else: form = EstacionamientoExtendedForm() esquemaform = EsquemaForm() if (estacion.Apertura != None): hApertura = str(estacion.Apertura.hour) + ':' + str( estacion.Apertura.minute) hCierre = str(estacion.Cierre.hour) + ':' + str(estacion.Cierre.minute) if (estacion.Esquema == 'DifHora'): pIni = str(esq.PicoIni.hour) + ':' + str(esq.PicoIni.minute) pFin = str(esq.PicoFin.hour) + ':' + str(esq.PicoFin.minute) return render( request, 'estacionamiento.html', { 'form': form, 'esquemaform': esquemaform, 'estacionamiento': estacion, 'esquema': esq, 'hApertura': hApertura, 'hCierre': hCierre, "pIni": pIni, "pFin": pFin }) return render( request, 'estacionamiento.html', { 'form': form, 'esquemaform': esquemaform, 'estacionamiento': estacion, 'esquema': esq, 'hApertura': hApertura, 'hCierre': hCierre }) return render( request, 'estacionamiento.html', { 'form': form, 'esquemaform': esquemaform, 'estacionamiento': estacion, 'esquema': esq })
def test_estacionamiento_extended_form_tres_campo(self): form_data = {'puestos1': 2, 'puestos2': 2, 'puestos3': 2} form = EstacionamientoExtendedForm(data=form_data) self.assertFalse(form.is_valid())
def test_estacionamiento_extended_form_un_campo(self): form_data = {'horarioin': time(hour=6, minute=0)} form = EstacionamientoExtendedForm(data=form_data) self.assertFalse(form.is_valid())