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)
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)
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