def test_nunca_se_reservan_contactos_asignados_a_otro_agente(self):
     # Al pedir un contacto nunca se entrega uno asignado a OTRO agente
     AgenteEnContacto.objects.filter(contacto_id=self.contacto_1.id).update(
         agente_id=self.agente_1.id, estado=AgenteEnContacto.ESTADO_ASIGNADO)
     # Al pedir un contacto para otro agente no debe entregar el contacto asignado
     entrega = AgenteEnContacto.entregar_contacto(self.agente_2,
                                                  self.campana_preview.id)
     self.assertEqual(entrega['result'], 'OK')
     self.assertEqual(entrega['code'], 'contacto-entregado')
     self.assertNotEqual(entrega['contacto_id'], self.contacto_1.id)
     # En particular, al ser 2 contactos nada más, solo puede entregar el otro
     self.assertEqual(entrega['contacto_id'], self.contacto_2.id)
예제 #2
0
 def post(self, request, *args, **kwargs):
     campana_id = kwargs.get('pk_campana', False)
     data_entrega = AgenteEnContacto.entregar_contacto(
         self.agente, campana_id)
     # adiciona informacion sobre si este contacto tiene una calificacion pendiente
     # para el agente en cuestión
     redis_connection = redis.Redis(
         host=settings.REDIS_HOSTNAME,
         port=settings.CONSTANCE_REDIS_CONNECTION['port'],
         decode_responses=True)
     calificacion_pendiente_agente = redis_connection.hgetall(
         'OML:CALIFICACION:LLAMADA:{0}'.format(self.agente.pk))
     if calificacion_pendiente_agente != {} and \
        calificacion_pendiente_agente.get('TELEFONO', '') == data_entrega.get(
            'telefono_contacto', False):
         data_entrega['calldata'] = calificacion_pendiente_agente[
             'CALLDATA']
     return JsonResponse(data_entrega)
 def post(self, request, *args, **kwargs):
     campana_id = kwargs.get('pk_campana', False)
     data_entrega = AgenteEnContacto.entregar_contacto(
         self.agente, campana_id)
     return JsonResponse(data_entrega)