Esempio n. 1
0
 def test_precio_doble_std(self):
     """Comprueba que tenemos precios correctos para la habitación
     en el caso de la habitación std"""
     # 2 AD 1 día
     consulta = Consulta(
         date.today() + timedelta(days=2),
         1,
         tipo_habitacion=2,  #std
         adultos=2)
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles) == 1, "No hay disponibilidad"
     hotel = dispo.hoteles.get('test')
     assert len(hotel.habitaciones) == 1, "No hay habitaciones"
     habitacion = hotel.habitaciones.get('std-mp')
     assert habitacion.precio == 100, "El precio no concuerda (%s)" % habitacion.precio
     # 2 adultos
     consulta = Consulta(
         date.today() + timedelta(days=2),
         4,
         tipo_habitacion=2,  #std
         adultos=2)
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles) == 1, "No hay disponibilidad"
     hotel = dispo.hoteles.get('test')
     assert len(hotel.habitaciones) == 1, "No hay habitaciones"
     habitacion = hotel.habitaciones.get('std-mp')
     assert habitacion.precio == 400, "El precio no concuerda (%s)" % habitacion.precio
     # 3 adultos
     consulta = Consulta(
         date.today() + timedelta(days=2),
         4,
         tipo_habitacion=2,  #std
         adultos=3)
     #1 adulto
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles) == 1, "No hay disponibilidad"
     hotel = dispo.hoteles.get('test')
     assert len(hotel.habitaciones) == 1, "No hay habitaciones"
     habitacion = hotel.habitaciones.get('std-mp')
     assert habitacion.precio == 480, "El precio no concuerda"
     consulta = Consulta(
         date.today() + timedelta(days=2),
         4,
         tipo_habitacion=2,  #std
         adultos=1)
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles) == 1, "No hay disponibilidad"
     hotel = dispo.hoteles.get('test')
     assert len(hotel.habitaciones) == 1, "No hay habitaciones"
     habitacion = hotel.habitaciones.get('std-mp')
     assert habitacion.precio == 240, "El precio no concuerda"
Esempio n. 2
0
def disponibilidad(request):
    """Buscador de disponibilidad"""
    data = {}
    if request.method == "POST":
        form = BuscarForm(request.POST)
        if form.is_valid():
            # procesamos la dispo
            hotel = form.cleaned_data['hotel']
            noches = form.cleaned_data['fecha_salida'] - form.cleaned_data[
                'fecha_llegada']
            # Eliminamos los bebés de la dispo
            nins = 0
            for x in range(1, form.cleaned_data['nins_d1'] + 1):
                if form.cleaned_data['edad_nin%s_d1' % x] > 2:
                    nins += 1
            consulta = Consulta(inicio=form.cleaned_data['fecha_llegada'],
                                noches=noches.days,
                                adultos=form.cleaned_data['adultos_d1'],
                                ninyos=nins,
                                hotel=hotel)
            dispo = Disponibilidad(consulta)
            dispo.obtener_disponibilidad()
            data['consulta'] = consulta
            data['dispo'] = dispo
            return direct_to_template(request,
                                      template='hotel/disponibilidad.html',
                                      extra_context=data)
    else:
        form = BuscarForm()
    data['form'] = form
    return direct_to_template(request,
                              template='hotel/index.html',
                              extra_context=data)
Esempio n. 3
0
 def test_get_precios(self):
     consulta = Consulta(date.today()+timedelta(days=2) , noches=4)
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles) == 1 , "Debe haber un hotel"
     hotel = dispo.hoteles['test']
     assert len(hotel.suplementos_regimen) > 0, "No hay suplementos de regimen"
Esempio n. 4
0
 def test_disponibilidad_basica(self):
     """Comprueba una disponiblidad básica 2 ad 4 noches"""
     consulta = Consulta(date.today()+timedelta(days=2) , noches=4)
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles) == 1 , "Debe haber un hotel"
     hotel = dispo.hoteles['test']
     assert len(hotel.contratos) == 1, "Hay un contrato"
     assert  len(hotel.habitaciones) == 2
Esempio n. 5
0
 def test_sin_dispo(self):
     """Comprueba que no devuelve disponibilidad si las condiciones
     de ocupación no se cumplen"""
     consulta = Consulta(date.today() + timedelta(days=2),
                         4,
                         adultos=4,
                         ninyos=2)
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles) == 0, "No Debe haber un hotel"
Esempio n. 6
0
 def test_dispo_suite(self):
     """Comprueba que hay disponiblidad para la suite"""
     consulta = Consulta(date.today() + timedelta(days=2),
                         4,
                         tipo_habitacion=3)
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles) == 1, "Debe haber un hotel"
     hotel = dispo.hoteles['test']
     assert len(hotel.habitaciones) == 1
Esempio n. 7
0
 def test_no_suite(self):
     """Comprueba que no hay disponiblidad si selecccionamos una suite"""
     log.debug('Test precio single para Suite')
     consulta = Consulta(date.today()+timedelta(days=2),
                         tipo_habitacion = 3,
                         noches=4,
                         adultos = 1
                        )
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles)==0, "No debería haber disponibilidad"
Esempio n. 8
0
 def test_dispo_str(self):
     "Comprueba que existe representación textual para la dispo"
     consulta = Consulta(date.today()+timedelta(days=2),
                         noches=4)
     fecha = date.today()+timedelta(days=4)
     for inv in Inventario.objects.filter(fecha=fecha, tipo_habitacion__slug='sui'):
         inv.is_paro_ventas = True
         inv.save()
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     log.info(dispo)
     assert len("%s" % dispo) > 0, "Debería haber disponiblidad"
Esempio n. 9
0
def disponibilidad_2ad_1n(request):
    """Ejemplo de disponibilidad de dos adultos y un niño"""
    consulta = Consulta(date.today()+timedelta(days=5),
                            noches=5,
                            adultos = 2,
                            ninyos = 1,
                           )
    dispo = Disponibilidad(consulta)
    dispo.obtener_disponibilidad()
    form = BuscarForm()
    return direct_to_template(request, template='recepcion/disponibilidad.html',
                              extra_context={'dispo': dispo, 'consulta':consulta, 'form':form})
Esempio n. 10
0
 def test_blackout(self):
     """"Comprobamos que no se puede reservar con una
     antelación menor que el blackout"""
     consulta = Consulta(
         date.today() + timedelta(days=2),
         noches=1,
         adultos=2,
         ninyos=2,
     )
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(
         dispo.hoteles) == 0, "Hay blackout de 3 días y no debe haber dispo"
Esempio n. 11
0
 def test_restriccion_ocupacion_ninyos(self):
     """Comprueba que la restricción de ocupación se aplica.
     Se está consultando la ocupación de 2 adultos y dos niños
     """
     assert RestriccionOcupacion.objects.all().count(
     ) > 0, "No hay restricciones de ocupación en el contrato"
     consulta = Consulta(date.today() + timedelta(days=2),
                         tipo_habitacion=2,
                         noches=4,
                         ninyos=1)
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles) == 0, "No Debe haber un hotel"
Esempio n. 12
0
 def test_precio_1N_1AD_3N(self):
     """Un adulto y tres niños. No hay disponiblidad, ya
     que están las habitaciones a un máximo de 2 niños"""
     consulta = Consulta(
         date.today() + timedelta(days=2),
         1,
         tipo_habitacion=2,
         adultos=1,
         ninyos=3,
     )
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles) == 0, "No debiera haber disponibilidad"
Esempio n. 13
0
 def test_suplemento_dia(self):
     "Comprobamos que se aplican los suplementos"
     consulta = Consulta(
         date.today() + timedelta(days=3),
         noches=4,
         adultos=2,
         ninyos=0,
     )
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles) == 1, "Debería salir un hotel"
     hotel = dispo.hoteles.get('test')
     habitacion = hotel.habitaciones.get('std-mp')
     assert habitacion.precio == 500
Esempio n. 14
0
 def test_paro_ventas(self):
     """Comprobamos que si entre el rango de fechas hay un paro de ventas para
     esa habitación no sale"""
     consulta = Consulta(date.today()+timedelta(days=2),
                         noches=4)
     fecha = date.today()+timedelta(days=4)
     for inv in Inventario.objects.filter(fecha=fecha, tipo_habitacion__slug='sui'):
         inv.is_paro_ventas = True
         inv.save()
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles) == 1 , "Debe haber un hotel"
     hotel = dispo.hoteles['test']
     assert len(hotel.habitaciones) == 1
Esempio n. 15
0
    def test_estancia_minima(self):
        """"Comprobamos que no se puede reservar con una
        estancia mínima menor que la fijada en contrato"""

        log.info('Comprobamos primero que sin la restriccion tenemos dispo')
        consulta = Consulta(date.today()+timedelta(days=2),
                            noches=5,
                            adultos = 2,
                            ninyos = 0,
                           )
        dispo = Disponibilidad(consulta)
        dispo.obtener_disponibilidad()
        assert len(dispo.hoteles)==1, "Debería salir un hotel"

        log.info('Ahora con la restricción')
        consulta = Consulta(date.today()+timedelta(days=2),
                            noches=2,
                            adultos = 2,
                            ninyos = 0,
                           )
        dispo = Disponibilidad(consulta)
        dispo.obtener_disponibilidad()
        assert len(dispo.hoteles)==0, "No debería haber hotel"
Esempio n. 16
0
 def test_precio_1N_1AD_1N(self):
     "Un adulto y un niño. Implica habitación doble"
     consulta = Consulta(
         date.today() + timedelta(days=2),
         1,
         tipo_habitacion=2,
         adultos=1,
         ninyos=1,
     )
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles) == 1, "No hay disponibilidad"
     hotel = dispo.hoteles.get('test')
     assert hotel.habitaciones.get('std-mp').precio == Decimal("60")
Esempio n. 17
0
 def test_precio_1N_2AD_2N(self):
     "Dos adultos y dos niños"
     consulta = Consulta(
         date.today() + timedelta(days=2),
         noches=1,
         tipo_habitacion=2,
         adultos=2,
         ninyos=2,
     )
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles) == 1, "No hay disponibilidad"
     hotel = dispo.hoteles.get('test')
     assert hotel.habitaciones.get('std-mp').precio ==  Decimal("87.5"), \
             "Da %s"% hotel.habitaciones.get('std-mp').precio
Esempio n. 18
0
 def test_precio_single_noches(self):
     """Comprueba que tenemos precios correctos para la habitación
     en el caso de la consulta individual para más de una noche"""
     # 2 AD 1 día
     log.debug('Test precio single')
     consulta = Consulta(date.today()+timedelta(days=2),
                         noches=4,
                         adultos = 1
                        )
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles)==1, "No hay disponibilidad"
     hotel = dispo.hoteles.get('test')
     assert len(hotel.habitaciones)==2 #tiene que estar la std y ls ind 
     assert hotel.habitaciones.get('ind-mp').precio == 240, "El precio no concuerda %s" %  hotel.habitaciones.get('ind-mp').precio
     assert hotel.habitaciones.get('std-mp').precio == 240, "El precio no concuerda %s" % hotel.habitaciones.get('std-mp').precio
Esempio n. 19
0
 def test_precio_1N_2AD_1N(self):
     """Comprueba que tenemos precios correctos para la habitación
     en el caso de la consulta individual"""
     # 2 AD 1 día
     consulta = Consulta(
         date.today() + timedelta(days=2),
         1,
         tipo_habitacion=2,
         adultos=2,
         ninyos=1,
     )
     dispo = Disponibilidad(consulta)
     dispo.obtener_disponibilidad()
     assert len(dispo.hoteles) == 1, "No hay disponibilidad"
     hotel = dispo.hoteles.get('test')
     assert hotel.habitaciones.get('std-mp').precio == 88