Пример #1
0
    def test_sos_estado(self):
        # Test para los métodos que preguntan si una tarea está en un determinado estado

        # Creamos un tipo de tarea y una tarifa para la creación de la tarea
        self.tipo_tarea = TipoTarea(nombre="Cambio de disco", rubro=self.rubro)
        self.tipo_tarea.save()
        self.tarifa = Tarifa(tipo_tarea=self.tipo_tarea,
                             tipo_servicio=self.tipo_servicio,
                             precio=300)
        self.tarifa.save()

        # creamos la tarea
        self.tarea = Tarea.crear(tipo_tarea=self.tipo_tarea,
                                 orden=self.orden,
                                 observacion="Guardar el disco viejo")

        tarea_presupuestada = TareaPresupuestada(self.tarea)
        self.assertTrue(self.tarea.estas_presupuestada)

        tarea_pendiente = TareaPendiente(self.tarea)
        self.assertTrue(self.tarea.estas_pendiente)

        tarea_cancelada = TareaCancelada(self.tarea)
        self.assertTrue(self.tarea.estas_cancelada)

        tarea_realizada = TareaRealizada(self.tarea)
        self.assertTrue(self.tarea.estas_realizada)
Пример #2
0
    def test_agregar_tarea(self):
        self.tipo_tarea1 = TipoTarea(nombre="Cambio de disco",
                                     rubro=self.rubro)
        self.tipo_tarea1.save()
        self.tarifa = Tarifa(tipo_tarea=self.tipo_tarea1,
                             tipo_servicio=self.tipo_servicio,
                             precio=300)
        self.tarifa.save()
        self.observacion = "Guardar el disco viejo"

        # Probamos caso de éxito
        self.orden.agregar_tarea(self.tipo_tarea1, self.observacion)
        self.assertEqual(self.orden.tareas.count(), 1)
        self.assertTrue(
            self.orden.tareas.get(
                tipo_tarea=self.tipo_tarea1).estas_presupuestada())

        # Probamos que lance excepción si la tarea no es del rubro de la orden
        rubro = Rubro(nombre="Impresoras Fiscales",
                      descripcion="Reparación de impresoras fiscales")
        rubro.save()
        tipo_tarea = TipoTarea(nombre="Limpieza de cabezales", rubro=rubro)
        tipo_tarea.save()

        try:
            self.orden.agregar_tarea(tipo_tarea, self.observacion)
        except Exception as e:
            self.assertTrue(e)

        self.assertEqual(self.orden.tareas.count(), 1)
Пример #3
0
class TareaTransicionesSinStockTest(TareaTest):
    def setUp(self):
        super().setUp()

        # Creamos un tipo de tarea y una tarifa para la creación de la tarea
        self.tipo_tarea = TipoTarea(nombre="Cambio de disco", rubro=self.rubro)
        self.tipo_tarea.save()
        self.tarifa = Tarifa(tipo_tarea=self.tipo_tarea,
                             tipo_servicio=self.tipo_servicio,
                             precio=300)
        self.tarifa.save()

        # creamos la tarea
        self.tarea = Tarea.crear(tipo_tarea=self.tipo_tarea,
                                 orden=self.orden,
                                 observacion="Guardar el disco viejo")
        self.tarea.save()

    def test_estado_inicial(self):
        # Testeamos que el estado inicial de la tarea sea TareaPresupuestada
        self.assertTrue(isinstance(self.tarea.estado, TareaPresupuestada))

    def test_aceptar(self):
        # Testeamos el caso de éxito del método aceṕtar
        self.tarea.hacer("aceptar")
        self.assertTrue(isinstance(self.tarea.estado, TareaPendiente))

        # Intentamos probar aceptar en el estado TareaPendiente para probar que falla y se mantiene en el mismo estado
        try:
            self.tarea.hacer("aceptar")
        except Exception as e:
            self.assertTrue(e)

        self.assertTrue(isinstance(self.tarea.estado, TareaPendiente))

    def test_finalizar(self):
        # Intentamos finalizar sin haber aceptado
        try:
            self.tarea.hacer("finalizar")
        except Exception as e:
            self.assertTrue(e)

        self.assertFalse(isinstance(self.tarea.estado, TareaRealizada))
        self.assertTrue(isinstance(self.tarea.estado, TareaPresupuestada))

        # Aceptamos la tarea para poder finalizar
        self.tarea.hacer("aceptar")
        self.assertTrue(isinstance(self.tarea.estado, TareaPendiente))

        # Finalizamos la tarea
        self.tarea.hacer("finalizar")
        self.assertTrue(isinstance(self.tarea.estado, TareaRealizada))

    def test_cancelar(self):
        # Testeamos que el método cancelar nos devuelva una tarea en estado Cancelada
        self.tarea.hacer("cancelar")
        self.assertTrue(isinstance(self.tarea.estado, TareaCancelada))
Пример #4
0
    def setUp(self):
        # Creamos una orden de trabajo para probar comportamiento de la reserva de stock 
        # frente a las tareas
        self.persona = Persona(
            nombre="Alguien",
            apellido="Alguien",
            doc="123321123",
            domicilio="cale213",
            email="*****@*****.**"
        )
        self.persona.save()
        self.persona.agregar_rol(Tecnico())
        self.persona.agregar_rol(Cliente())
        self.usuario = Usuario.objects.crear_usuario(username="******", password="******", persona=self.persona)
        self.persona.agregar_rol(Usuario())
        self.persona.save
        self.rubro = Rubro(nombre="Notebooks", descripcion="Reparación de notebooks")
        self.rubro.save()
        self.tipo_servicio = TipoServicio(nombre="Taller", descripcion="Reparación de equipos en taller")
        self.tipo_servicio.save()
        self.descripcion = "Ta destruida la máquina"

        self.orden = Orden(
            cliente=self.persona.como(Cliente), 
            usuario=self.usuario, 
            tecnico=self.persona.como(Tecnico), 
            rubro=self.rubro,
            equipo=None, 
            tipo_servicio=self.tipo_servicio, 
            descripcion=self.descripcion
        )
        self.orden.save()

        # creamos un producto, tarifa y tarea para reservar stock
        self.producto = Producto(
            nombre="SSD", 
            descripcion="Disco de estado sólido",
            marca="kingstong",
            stock_minimo=10,
            stock=20,
            precio=600
        )
        self.producto.save()
        self.tipo_tarea = TipoTarea(nombre="Cambio de disco", rubro=self.rubro)
        self.tipo_tarea.save()  
        self.tarifa = Tarifa(tipo_tarea=self.tipo_tarea, tipo_servicio=self.tipo_servicio, precio=300)
        self.tarifa.save()      
        self.tarea = Tarea.crear(
            tipo_tarea=self.tipo_tarea,
            orden=self.orden,
            observacion="Guardar el disco viejo")
        self.tarea.save()

        # Reserva de 12 unidades del producto el stock mínimo del producto es 10
        self.reserva = ReservaStock(tarea=self.tarea, producto=self.producto, cantidad=12)
        self.reserva.save()
Пример #5
0
    def setUp(self):
        super().setUp()
        # Creamos un tipo de tarea y una tarifa para la creación de la tarea
        self.tipo_tarea = TipoTarea(nombre="Cambio de disco", rubro=self.rubro)
        self.tipo_tarea.save()
        self.tarifa = Tarifa(tipo_tarea=self.tipo_tarea,
                             tipo_servicio=self.tipo_servicio,
                             precio=300)
        self.tarifa.save()

        # creamos la tarea
        self.tarea = Tarea.crear(tipo_tarea=self.tipo_tarea,
                                 orden=self.orden,
                                 observacion="Guardar el disco viejo")
        self.tarea.save()
Пример #6
0
    def test_crear(self):
        # Creamos un tipo de tarea y una tarifa para la creación de la tarea
        self.tipo_tarea = TipoTarea(nombre="Cambio de disco", rubro=self.rubro)
        self.tipo_tarea.save()
        self.tarifa = Tarifa(tipo_tarea=self.tipo_tarea,
                             tipo_servicio=self.tipo_servicio,
                             precio=300)
        self.tarifa.save()

        # creamos la tarea
        self.tarea = Tarea.crear(tipo_tarea=self.tipo_tarea,
                                 orden=self.orden,
                                 observacion="Guardar el disco viejo")

        # Testeamos que el precio de la tarea sea el precio de la tarifa
        self.assertEqual(self.tarifa.precio, self.tarea.precio)
Пример #7
0
    def save(self, *args, **kwargs):

        is_new = self.pk is None

        super(self.__class__, self).save(*args, **kwargs)

        if is_new:
            for ts in TipoServicio.objects.all():
                Tarifa(tipo_tarea=self, tipo_servicio=ts).save()
Пример #8
0
class ProductoTest(TestCase):

    def setUp(self):
        # Creamos una orden de trabajo para probar comportamiento de la reserva de stock 
        # frente a las tareas
        self.persona = Persona(
            nombre="Alguien",
            apellido="Alguien",
            doc="123321123",
            domicilio="cale213",
            email="*****@*****.**"
        )
        self.persona.save()
        self.persona.agregar_rol(Tecnico())
        self.persona.agregar_rol(Cliente())
        self.usuario = Usuario.objects.crear_usuario(username="******", password="******", persona=self.persona)
        self.persona.agregar_rol(Usuario())
        self.persona.save
        self.rubro = Rubro(nombre="Notebooks", descripcion="Reparación de notebooks")
        self.rubro.save()
        self.tipo_servicio = TipoServicio(nombre="Taller", descripcion="Reparación de equipos en taller")
        self.tipo_servicio.save()
        self.descripcion = "Ta destruida la máquina"

        self.orden = Orden(
            cliente=self.persona.como(Cliente), 
            usuario=self.usuario, 
            tecnico=self.persona.como(Tecnico), 
            rubro=self.rubro,
            equipo=None, 
            tipo_servicio=self.tipo_servicio, 
            descripcion=self.descripcion
        )
        self.orden.save()

        # creamos un producto, tarifa y tarea para reservar stock
        self.producto = Producto(
            nombre="SSD", 
            descripcion="Disco de estado sólido",
            marca="kingstong",
            stock_minimo=10,
            stock=20,
            precio=600
        )
        self.producto.save()
        self.tipo_tarea = TipoTarea(nombre="Cambio de disco", rubro=self.rubro)
        self.tipo_tarea.save()  
        self.tarifa = Tarifa(tipo_tarea=self.tipo_tarea, tipo_servicio=self.tipo_servicio, precio=300)
        self.tarifa.save()      
        self.tarea = Tarea.crear(
            tipo_tarea=self.tipo_tarea,
            orden=self.orden,
            observacion="Guardar el disco viejo")
        self.tarea.save()

        # Reserva de 12 unidades del producto el stock mínimo del producto es 10
        self.reserva = ReservaStock(tarea=self.tarea, producto=self.producto, cantidad=12)
        self.reserva.save()

    def test_save(self):
        # testeamos que se hayan formateado las cadenas nombre y marca a formamo title
        self.assertTrue(str.istitle(self.producto.nombre))
        self.assertTrue(str.istitle(self.producto.marca))

        # intentamos crear nuevamente el producto comprobando que lanza excepción
        try:
            producto = Producto(
                nombre="ssd", 
                descripcion="Disco de estado sólido",
                marca="kingstong",
                stock_minimo=10,
                stock=20,
                precio=600
            )
            producto.save()
        except Exception as e:
            #print(str(e))
            pass
        self.assertFalse(producto.id)

    def test_stock_disponible(self):
        # En línea 52 se fijó el stock en 20. En linea 67 se creó una reserva de 12
        self.assertEqual(self.producto.stock_disponible, 8)

    def test_stock_reservado(self):
        self.assertEqual(self.producto.stock_reservado, 12)

    def test_stock_bajo(self):
        # En línea 51 se fijó el stock mínimo requerido en 10. El stock es bajo si
        # stock disponible (8) < sotck mínimo (10)
        self.assertTrue(self.producto.stock_es_bajo)
Пример #9
0
class TareaConStockTest(TareaTest):
    def setUp(self):
        super().setUp()
        # Creamos un tipo de tarea y una tarifa para la creación de la tarea
        self.tipo_tarea = TipoTarea(nombre="Cambio de disco", rubro=self.rubro)
        self.tipo_tarea.save()
        self.tarifa = Tarifa(tipo_tarea=self.tipo_tarea,
                             tipo_servicio=self.tipo_servicio,
                             precio=300)
        self.tarifa.save()

        # creamos la tarea
        self.tarea = Tarea.crear(tipo_tarea=self.tipo_tarea,
                                 orden=self.orden,
                                 observacion="Guardar el disco viejo")
        self.tarea.save()

    def test_reservar_stock(self):
        # Creamos una reserva a traves del método reservar_stock y verificamos la cantidad de stock reservado
        self.assertTrue(self.producto.stock_reservado == 0)
        self.tarea.hacer("reservar_stock", self.producto, 12)
        self.assertTrue(self.producto.stock_reservado == 12)

    def test_cancelar_reserva(self):
        # Creamos una reserva para luego probar el método cancelar
        self.tarea.hacer("reservar_stock", self.producto, 12)
        self.assertTrue(self.producto.stock_reservado == 12)

        self.tarea.hacer("cancelar_reserva", self.producto)
        self.assertEqual(self.producto.stock_reservado, 0)

    def test_finalizar_sin_stock(self):
        # Probamos que el método finalizar falle si no hay stock suficiente para realizarla

        # Seteamos el stock del producto en 0
        self.producto.stock = 0
        self.producto.save()

        # Reservamos unidades de stock
        self.tarea.hacer("reservar_stock", self.producto, 12)
        self.assertTrue(self.producto.stock_reservado == 12)

        # Aceptamos la tarea para poder finalizar
        self.tarea.hacer("aceptar")
        self.assertTrue(isinstance(self.tarea.estado, TareaPendiente))

        # Intentamos finalizar la tarea
        try:
            self.tarea.hacer("finalizar")
        except Exception as e:
            self.assertTrue(e)

        # Comprobamos que siga en estado pendiente
        self.assertTrue(isinstance(self.tarea.estado, TareaPendiente))

        # Agregamos stock al producto
        self.producto.stock = 20
        self.producto.save()

        # Intentamos nuevamente finalizar
        try:
            self.tarea.hacer("finalizar")
        except Exception as e:
            self.assertTrue(e)

        # Comprobamos que ahora el estado es TareaRealizada
        self.assertTrue(isinstance(self.tarea.estado, TareaRealizada))

        # TODO: consultar por que carajo no cambia el stock.
        # self.assertEqual(self.producto.stock, 8)

    def test_cancelar_con_stock(self):
        # Testeamos que el método cancelar nos devuelva una tarea en estado Cancelada
        # además si había stock reservado debería "des-reservarse"

        # Creamos una reserva para probar
        self.tarea.hacer("reservar_stock", self.producto, 12)
        self.assertTrue(self.producto.stock_reservado == 12)

        # cancelamos y comprobamos el stock reservado
        self.tarea.hacer("cancelar")
        self.assertTrue(isinstance(self.tarea.estado, TareaCancelada))
        self.assertTrue(self.producto.stock_reservado == 0)
Пример #10
0
class TareaTest(TestCase):
    def setUp(self):
        # creamos una orden de trabajo para agregarle tareas
        self.persona = Persona(nombre="Alguien",
                               apellido="Alguien",
                               doc="123321123",
                               domicilio="cale213",
                               email="*****@*****.**")
        self.persona.save()
        self.persona.agregar_rol(Tecnico())
        self.persona.agregar_rol(Cliente())
        self.usuario = Usuario.objects.crear_usuario(username="******",
                                                     password="******",
                                                     persona=self.persona)
        self.persona.agregar_rol(Usuario())
        self.persona.save
        self.rubro = Rubro(nombre="Notebooks",
                           descripcion="Reparación de notebooks")
        self.rubro.save()
        self.tipo_servicio = TipoServicio(
            nombre="Taller", descripcion="Reparación de equipos en taller")
        self.tipo_servicio.save()
        self.descripcion = "Ta todo completamente hecho mierda"

        self.orden = Orden(cliente=self.persona.como(Cliente),
                           usuario=self.usuario,
                           tecnico=self.persona.como(Tecnico),
                           rubro=self.rubro,
                           equipo=None,
                           tipo_servicio=self.tipo_servicio,
                           descripcion=self.descripcion)
        self.orden.save()
        # creamos un producto para reservar stock
        self.producto = Producto(nombre="SSD",
                                 descripcion="Disco de estado sólido",
                                 marca="Kingtong",
                                 stock_minimo=10,
                                 stock=20,
                                 precio=600)
        self.producto.save()

    def test_crear(self):
        # Creamos un tipo de tarea y una tarifa para la creación de la tarea
        self.tipo_tarea = TipoTarea(nombre="Cambio de disco", rubro=self.rubro)
        self.tipo_tarea.save()
        self.tarifa = Tarifa(tipo_tarea=self.tipo_tarea,
                             tipo_servicio=self.tipo_servicio,
                             precio=300)
        self.tarifa.save()

        # creamos la tarea
        self.tarea = Tarea.crear(tipo_tarea=self.tipo_tarea,
                                 orden=self.orden,
                                 observacion="Guardar el disco viejo")

        # Testeamos que el precio de la tarea sea el precio de la tarifa
        self.assertEqual(self.tarifa.precio, self.tarea.precio)

    def test_crear_sin_tarifa(self):
        # Creamos un tipo de tarea sin tarifa para la creación de la tarea
        self.tipo_tarea = TipoTarea(nombre="crear_sin_tarifa",
                                    rubro=self.rubro)
        self.tipo_tarea.save()

        # Verificamos que el tipo de tarea creado no tiene tareas asociadas
        self.assertEqual(self.tipo_tarea.tareas.all().count(), 0)
        try:
            # creamos la tarea
            self.tarea = Tarea.crear(tipo_tarea=self.tipo_tarea,
                                     orden=self.orden,
                                     observacion="Guardar el disco viejo")
        except Exception as e:
            self.assertTrue(e)

        # Testeamos que el tipo de tarea sigue sin tareas asociadas
        self.assertEqual(self.tipo_tarea.tareas.all().count(), 0)

    def test_sos_estado(self):
        # Test para los métodos que preguntan si una tarea está en un determinado estado

        # Creamos un tipo de tarea y una tarifa para la creación de la tarea
        self.tipo_tarea = TipoTarea(nombre="Cambio de disco", rubro=self.rubro)
        self.tipo_tarea.save()
        self.tarifa = Tarifa(tipo_tarea=self.tipo_tarea,
                             tipo_servicio=self.tipo_servicio,
                             precio=300)
        self.tarifa.save()

        # creamos la tarea
        self.tarea = Tarea.crear(tipo_tarea=self.tipo_tarea,
                                 orden=self.orden,
                                 observacion="Guardar el disco viejo")

        tarea_presupuestada = TareaPresupuestada(self.tarea)
        self.assertTrue(self.tarea.estas_presupuestada)

        tarea_pendiente = TareaPendiente(self.tarea)
        self.assertTrue(self.tarea.estas_pendiente)

        tarea_cancelada = TareaCancelada(self.tarea)
        self.assertTrue(self.tarea.estas_cancelada)

        tarea_realizada = TareaRealizada(self.tarea)
        self.assertTrue(self.tarea.estas_realizada)
Пример #11
0
    def setUp(self):
        super().setUp()
        self.orden2 = Orden(cliente=self.persona.como(Cliente),
                            usuario=self.usuario,
                            tecnico=self.persona.como(Tecnico),
                            rubro=self.rubro,
                            equipo=None,
                            tipo_servicio=self.tipo_servicio,
                            descripcion=self.descripcion)
        self.orden2.save()

        # Creamos un conjunto de tareas para probar las trancisiones
        self.tipo_tarea1 = TipoTarea(nombre="Tarea 1", rubro=self.rubro)
        self.tipo_tarea1.save()
        self.tarifa1 = Tarifa(tipo_tarea=self.tipo_tarea1,
                              tipo_servicio=self.tipo_servicio,
                              precio=300)
        self.tarifa1.save()
        self.observacion1 = "Tarea 1"

        self.tipo_tarea2 = TipoTarea(nombre="Tarea 2", rubro=self.rubro)
        self.tipo_tarea2.save()
        self.tarifa2 = Tarifa(tipo_tarea=self.tipo_tarea2,
                              tipo_servicio=self.tipo_servicio,
                              precio=1000)
        self.tarifa2.save()
        self.observacion2 = "Tarea 2"

        self.tipo_tarea3 = TipoTarea(nombre="Tarea 3", rubro=self.rubro)
        self.tipo_tarea3.save()
        self.tarifa3 = Tarifa(tipo_tarea=self.tipo_tarea3,
                              tipo_servicio=self.tipo_servicio,
                              precio=300)
        self.tarifa3.save()
        self.observacion3 = "Tarea 3"

        self.tipo_tarea4 = TipoTarea(nombre="Tarea 4", rubro=self.rubro)
        self.tipo_tarea4.save()
        self.tarifa4 = Tarifa(tipo_tarea=self.tipo_tarea4,
                              tipo_servicio=self.tipo_servicio,
                              precio=300)
        self.tarifa4.save()
        self.observacion4 = "Tarea 5"

        self.tipo_tarea5 = TipoTarea(nombre="Tarea 5", rubro=self.rubro)
        self.tipo_tarea5.save()
        self.tarifa5 = Tarifa(tipo_tarea=self.tipo_tarea5,
                              tipo_servicio=self.tipo_servicio,
                              precio=300)
        self.tarifa5.save()
        self.observacion5 = "Tarea 5"

        self.tipo_tarea6 = TipoTarea(nombre="Tarea 6", rubro=self.rubro)
        self.tipo_tarea6.save()
        self.tarifa6 = Tarifa(tipo_tarea=self.tipo_tarea6,
                              tipo_servicio=self.tipo_servicio,
                              precio=300)
        self.tarifa6.save()
        self.observacion6 = "Tarea 6"
Пример #12
0
class OrdenTareasTest(OrdenTest):
    def setUp(self):
        super().setUp()
        self.orden2 = Orden(cliente=self.persona.como(Cliente),
                            usuario=self.usuario,
                            tecnico=self.persona.como(Tecnico),
                            rubro=self.rubro,
                            equipo=None,
                            tipo_servicio=self.tipo_servicio,
                            descripcion=self.descripcion)
        self.orden2.save()

        # Creamos un conjunto de tareas para probar las trancisiones
        self.tipo_tarea1 = TipoTarea(nombre="Tarea 1", rubro=self.rubro)
        self.tipo_tarea1.save()
        self.tarifa1 = Tarifa(tipo_tarea=self.tipo_tarea1,
                              tipo_servicio=self.tipo_servicio,
                              precio=300)
        self.tarifa1.save()
        self.observacion1 = "Tarea 1"

        self.tipo_tarea2 = TipoTarea(nombre="Tarea 2", rubro=self.rubro)
        self.tipo_tarea2.save()
        self.tarifa2 = Tarifa(tipo_tarea=self.tipo_tarea2,
                              tipo_servicio=self.tipo_servicio,
                              precio=1000)
        self.tarifa2.save()
        self.observacion2 = "Tarea 2"

        self.tipo_tarea3 = TipoTarea(nombre="Tarea 3", rubro=self.rubro)
        self.tipo_tarea3.save()
        self.tarifa3 = Tarifa(tipo_tarea=self.tipo_tarea3,
                              tipo_servicio=self.tipo_servicio,
                              precio=300)
        self.tarifa3.save()
        self.observacion3 = "Tarea 3"

        self.tipo_tarea4 = TipoTarea(nombre="Tarea 4", rubro=self.rubro)
        self.tipo_tarea4.save()
        self.tarifa4 = Tarifa(tipo_tarea=self.tipo_tarea4,
                              tipo_servicio=self.tipo_servicio,
                              precio=300)
        self.tarifa4.save()
        self.observacion4 = "Tarea 5"

        self.tipo_tarea5 = TipoTarea(nombre="Tarea 5", rubro=self.rubro)
        self.tipo_tarea5.save()
        self.tarifa5 = Tarifa(tipo_tarea=self.tipo_tarea5,
                              tipo_servicio=self.tipo_servicio,
                              precio=300)
        self.tarifa5.save()
        self.observacion5 = "Tarea 5"

        self.tipo_tarea6 = TipoTarea(nombre="Tarea 6", rubro=self.rubro)
        self.tipo_tarea6.save()
        self.tarifa6 = Tarifa(tipo_tarea=self.tipo_tarea6,
                              tipo_servicio=self.tipo_servicio,
                              precio=300)
        self.tarifa6.save()
        self.observacion6 = "Tarea 6"

    def test_aceptar_finalizar(self):
        # Agragamos las tareas con sus distintos tipos
        self.orden2.agregar_tarea(self.tipo_tarea1, self.observacion1)
        self.orden2.agregar_tarea(self.tipo_tarea2, self.observacion2)
        self.orden2.agregar_tarea(self.tipo_tarea3, self.observacion3)
        self.orden2.agregar_tarea(self.tipo_tarea4, self.observacion4)
        self.orden2.agregar_tarea(self.tipo_tarea5, self.observacion5)
        self.orden2.agregar_tarea(self.tipo_tarea6, self.observacion6)

        # Testeamos la propiedad tareas_presupuestadas.
        self.assertEqual(len(self.orden2.tareas_presupuestadas), 6)

        ids_tareas = []
        [ids_tareas.append(tarea.id) for tarea in self.orden2.tareas.all()]

        # Testeamos el método aceptar_tareas y la propiedad tareas_aceptadas
        self.orden2.aceptar_tareas(ids_tareas)
        self.assertEqual(len(self.orden2.tareas_presupuestadas), 0)
        self.assertEqual(len(self.orden2.tareas_pendientes), 6)

        # Testeamos el método finalizar_tareas y la propiedad tareas_realizadas
        self.orden2.finalizar_tareas(ids_tareas)
        self.assertEqual(len(self.orden2.tareas_pendientes), 0)
        self.assertEqual(len(self.orden2.tareas_realizadas), 6)

    def test_presupuestada_cancelar(self):

        # Agragamos las tareas con sus distintos tipos
        self.orden2.agregar_tarea(self.tipo_tarea1, self.observacion1)
        self.orden2.agregar_tarea(self.tipo_tarea2, self.observacion2)
        self.orden2.agregar_tarea(self.tipo_tarea3, self.observacion3)
        self.orden2.agregar_tarea(self.tipo_tarea4, self.observacion4)
        self.orden2.agregar_tarea(self.tipo_tarea5, self.observacion5)
        self.orden2.agregar_tarea(self.tipo_tarea6, self.observacion6)

        # Testeamos la propiedad tareas_presupuestadas.
        self.assertEqual(len(self.orden2.tareas_presupuestadas), 6)

        ids_tareas = []
        [ids_tareas.append(tarea.id) for tarea in self.orden2.tareas.all()]

        # Testeamos el método cancelar_tareas y la propiedad tareas_canceladas
        self.orden2.cancelar_tareas(ids_tareas)
        self.assertEqual(len(self.orden2.tareas_presupuestadas), 0)
        self.assertEqual(len(self.orden2.tareas_canceladas), 6)
Пример #13
0
class OrdenTest(TestCase):
    def setUp(self):

        self.persona = Persona(nombre="Alguien",
                               apellido="Alguien",
                               doc="123321123",
                               domicilio="cale213",
                               email="*****@*****.**")
        self.persona.save()
        self.persona.agregar_rol(Tecnico())
        self.persona.agregar_rol(Cliente())
        self.usuario = Usuario.objects.crear_usuario(username="******",
                                                     password="******",
                                                     persona=self.persona)
        self.persona.agregar_rol(Usuario())
        self.persona.save()
        self.rubro = Rubro(nombre="Notebooks",
                           descripcion="Reparación de notebooks")
        self.rubro.save()
        self.tipo_servicio = TipoServicio(
            nombre="Taller", descripcion="Reparación de equipos en taller")
        self.tipo_servicio.save()
        self.descripcion = "Ta todo completamente hecho mierda"
        self.orden = Orden(cliente=self.persona.como(Cliente),
                           usuario=self.usuario,
                           tecnico=self.persona.como(Tecnico),
                           rubro=self.rubro,
                           equipo=None,
                           tipo_servicio=self.tipo_servicio,
                           descripcion=self.descripcion)
        self.orden.save()

    def test_crear(self):
        # Testeamos que haya una orden creada y que sea la nuestra
        self.assertTrue(Orden.objects.all().count(), 1)

    def test_agregar_tarea(self):
        self.tipo_tarea1 = TipoTarea(nombre="Cambio de disco",
                                     rubro=self.rubro)
        self.tipo_tarea1.save()
        self.tarifa = Tarifa(tipo_tarea=self.tipo_tarea1,
                             tipo_servicio=self.tipo_servicio,
                             precio=300)
        self.tarifa.save()
        self.observacion = "Guardar el disco viejo"

        # Probamos caso de éxito
        self.orden.agregar_tarea(self.tipo_tarea1, self.observacion)
        self.assertEqual(self.orden.tareas.count(), 1)
        self.assertTrue(
            self.orden.tareas.get(
                tipo_tarea=self.tipo_tarea1).estas_presupuestada())

        # Probamos que lance excepción si la tarea no es del rubro de la orden
        rubro = Rubro(nombre="Impresoras Fiscales",
                      descripcion="Reparación de impresoras fiscales")
        rubro.save()
        tipo_tarea = TipoTarea(nombre="Limpieza de cabezales", rubro=rubro)
        tipo_tarea.save()

        try:
            self.orden.agregar_tarea(tipo_tarea, self.observacion)
        except Exception as e:
            self.assertTrue(e)

        self.assertEqual(self.orden.tareas.count(), 1)