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)
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)
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))
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 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_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 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()
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)
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)
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)
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"
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)
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)