def test_elimina_validacion_fecha_hora_ok(self, mock_sincronizacion):
     # Creo una Validacion Fecha Hora que no es destino
     destinos_iniciales = DestinoEntrante.objects.count()
     validacion_fh = ValidacionFechaHoraFactory()
     nodo_validacion = DestinoEntrante.crear_nodo_ruta_entrante(validacion_fh)
     OpcionDestinoFactory(valor='True',
                          destino_anterior=nodo_validacion,
                          destino_siguiente=self.nodo_camp_1)
     OpcionDestinoFactory(valor='False',
                          destino_anterior=nodo_validacion,
                          destino_siguiente=self.nodo_camp_2)
     self.client.login(username=self.admin.username, password=self.PWD)
     url = reverse('eliminar_validacion_fecha_hora', args=[validacion_fh.id])
     response = self.client.post(url, follow=True)
     mock_sincronizacion.assert_called_with(validacion_fh)
     self.assertEqual(response.status_code, 200)
     self.assertContains(response, ValidacionFechaHoraDeleteView.nodo_eliminado)
     self.assertEqual(ValidacionFechaHora.objects.count(), 0)
     self.assertEqual(DestinoEntrante.objects.count(), destinos_iniciales)
     self.assertEqual(OpcionDestino.objects.count(), 0)
 def test_no_elimina_ivr_destino_de_otro_nodo(self, mock_sincronizacion):
     # Creo un IVR y lo pongo como destino de una Validacion Fecha Hora
     ivr = IVRFactory()
     nodo_ivr = DestinoEntrante.crear_nodo_ruta_entrante(ivr)
     validacion_fh = ValidacionFechaHoraFactory()
     nodo_validacion = DestinoEntrante.crear_nodo_ruta_entrante(validacion_fh)
     OpcionDestinoFactory(valor='True',
                          destino_anterior=nodo_validacion,
                          destino_siguiente=nodo_ivr)
     OpcionDestinoFactory(valor='False',
                          destino_anterior=nodo_validacion,
                          destino_siguiente=self.nodo_camp_1)
     destinos_iniciales = DestinoEntrante.objects.count()
     self.client.login(username=self.admin.username, password=self.PWD)
     url = reverse('eliminar_ivr', args=[ivr.id])
     response = self.client.post(url, follow=True)
     self.assertEqual(response.status_code, 200)
     list_url = reverse('lista_ivrs', args=(1,))
     self.assertRedirects(response, list_url)
     self.assertContains(response, IVRDeleteView.imposible_eliminar)
     self.assertEqual(IVR.objects.count(), 1)
     self.assertEqual(DestinoEntrante.objects.count(), destinos_iniciales)
예제 #3
0
    def setUp(self, *args, **kwargs):
        super(TestsRutasEntrantes, self).setUp(*args, **kwargs)

        self.admin = self.crear_administrador()
        self.admin.set_password(self.PWD)

        # Creo un Supervisor Normal
        self.usr_sup = self.crear_user_supervisor()
        self.crear_supervisor_profile(self.usr_sup)

        # Creo un Supervisor Customer
        self.usr_customer = self.crear_user_supervisor()
        self.crear_supervisor_profile(self.usr_customer, is_customer=True)

        self.campana_entrante = CampanaFactory(type=Campana.TYPE_ENTRANTE)
        self.destino_campana_entrante = DestinoEntrante.crear_nodo_ruta_entrante(
            self.campana_entrante)

        self.ivr = IVRFactory()
        self.destino_ivr = DestinoEntrante.crear_nodo_ruta_entrante(self.ivr)

        self.opc_dest_ivr_time_out = OpcionDestinoFactory(
            valor=IVR.VALOR_TIME_OUT,
            destino_anterior=self.destino_ivr,
            destino_siguiente=self.destino_campana_entrante)
        self.opc_dest_ivr_invalid = OpcionDestinoFactory(
            valor=IVR.VALOR_DESTINO_INVALIDO,
            destino_anterior=self.destino_ivr,
            destino_siguiente=self.destino_ivr)
        self.opc_dest_ivr_camp_entrante_1 = OpcionDestinoFactory(
            valor='1',
            destino_anterior=self.destino_ivr,
            destino_siguiente=self.destino_campana_entrante)
        self.opc_dest_ivr_ivr_2 = OpcionDestinoFactory(
            valor='2',
            destino_anterior=self.destino_ivr,
            destino_siguiente=self.destino_ivr)

        self.validacion_tiempo = ValidacionTiempoFactory()
        self.grupo_horario = self.validacion_tiempo.grupo_horario

        self.validacion_fecha_hora = ValidacionFechaHoraFactory(
            grupo_horario=self.grupo_horario)
        self.destino_val_fecha_hora = DestinoEntrante.crear_nodo_ruta_entrante(
            self.validacion_fecha_hora)
        self.opc_dest_val_fecha_hora_true = OpcionDestinoFactory(
            valor=ValidacionFechaHora.DESTINO_MATCH,
            destino_anterior=self.destino_val_fecha_hora,
            destino_siguiente=self.destino_campana_entrante)
        self.opc_dest_val_fecha_hora_false = OpcionDestinoFactory(
            valor=ValidacionFechaHora.DESTINO_NO_MATCH,
            destino_anterior=self.destino_val_fecha_hora,
            destino_siguiente=self.destino_ivr)

        self.archivo_audio = ArchivoDeAudioFactory()

        self.ruta_entrante = RutaEntranteFactory(
            destino=self.destino_campana_entrante)
 def test_no_elimina_validacion_fecha_hora_utilizado_en_ruta_entrante(self, mock_sincronizacion):
     # Creo una validacion fecha hora y la pongo como destino de una Ruta Entrante
     destinos_iniciales = DestinoEntrante.objects.count()
     validacion_fh = ValidacionFechaHoraFactory()
     nodo_validacion = DestinoEntrante.crear_nodo_ruta_entrante(validacion_fh)
     OpcionDestinoFactory(valor='True',
                          destino_anterior=nodo_validacion,
                          destino_siguiente=self.nodo_camp_1)
     OpcionDestinoFactory(valor='False',
                          destino_anterior=nodo_validacion,
                          destino_siguiente=self.nodo_camp_2)
     RutaEntranteFactory(destino=nodo_validacion)
     self.client.login(username=self.admin.username, password=self.PWD)
     url = reverse('eliminar_validacion_fecha_hora', args=[validacion_fh.id])
     response = self.client.post(url, follow=True)
     self.assertEqual(response.status_code, 200)
     list_url = reverse('lista_validaciones_fecha_hora', args=(1,))
     self.assertFalse(mock_sincronizacion.called)
     mock_sincronizacion.assert_not_called()
     self.assertRedirects(response, list_url)
     self.assertContains(response, ValidacionFechaHoraDeleteView.imposible_eliminar)
     self.assertEqual(ValidacionFechaHora.objects.count(), 1)
     self.assertEqual(DestinoEntrante.objects.count(), destinos_iniciales + 1)
 def test_no_elimina_campana_destino_de_otro_nodo(self, mock_sincronizacion):
     # Pongo la campaña entrante 1 como destino de un IVR
     ivr = IVRFactory()
     nodo_ivr = DestinoEntrante.crear_nodo_ruta_entrante(ivr)
     OpcionDestinoFactory(valor='False',
                          destino_anterior=nodo_ivr,
                          destino_siguiente=self.nodo_camp_1)
     destinos_iniciales = DestinoEntrante.objects.count()
     campanas_iniciales = Campana.objects.filter(estado=Campana.ESTADO_ACTIVA).count()
     self.client.login(username=self.admin.username, password=self.PWD)
     url = reverse('campana_elimina', args=[self.camp_1.id])
     response = self.client.post(url, follow=True)
     self.assertEqual(response.status_code, 200)
     list_url = reverse('campana_list')
     self.assertRedirects(response, list_url)
     self.assertContains(response, CampanaDeleteView.imposible_eliminar)
     self.assertEqual(Campana.objects.filter(estado=Campana.ESTADO_ACTIVA).count(),
                      campanas_iniciales)
     self.assertEqual(DestinoEntrante.objects.count(), destinos_iniciales)
예제 #6
0
def crear_relacion_nodos_entrantes(destino_entrante1, destino_entrante2):
    # crea una relacion entre dos nodos de una ruta entrante
    opcion_destino = OpcionDestinoFactory(destino_anterior=destino_entrante1,
                                          destino_siguiente=destino_entrante2)
    return opcion_destino