def incoming_connection(request): """ Sets up context for incoming connection into call center. """ #TODO: add priority queue try: assert(request.POST['currentSessionID']) assert(request.POST['uniqueIdentifier']) #add to vector queue log.info("currentSessionID: %s | uniqueID: %s " % (request.POST['currentSessionID'],request.POST['uniqueIdentifier'])) publisher_args = {CallMQConfigDev.DEFAULT_ROUTING_KEY_KEY: CallMQConfigDev.DEFAULT_ROUTING_KEY_VALUE, CallMQConfigDev.DEFAULT_DELIVERY_MODE_KEY: CallMQConfigDev.DEFAULT_DELIVERY_MODE, CallMQConfigDev.DEFAULT_EXCHANGE_VALUE_KEY: CallMQConfigDev.DEFAULT_EXCHANGE_VALUE } publisher = CallCenterVectorPublisher(**publisher_args) #setup message msg = simplejson.dumps({'session': request.POST['currentSessionID'] , 'id': request.POST['uniqueIdentifier']}) log.info("message dumped as json") publisher.publish_to_queue(msg) log.info("message pushed to queue") #return next state and hold dialog return HttpResponse("hold.noprompt") except Exception as e: log.error("Module: views.incoming_connection. Error: " + e) return HttpResponse("incoming_connection.error")
def test_publisher_constructor_without_connection(self): self.publisher = CallCenterVectorPublisher(delivery_mode=self.publish_args['delivery_mode'], exchange=self.publish_args['exchange'], routing_key=self.publish_args['routing_key']) assert(self.publisher.channel()) assert(self.publisher.delivery_mode()) assert(self.publisher.connection()) assert(self.publisher.routing_key())
def test_publish_constructor_with_defined_connection(self): #test with connection definied self.publisher = CallCenterVectorPublisher(**self.publish_args) assert(self.publisher.channel()) assert(self.publisher.delivery_mode()) assert(self.publisher.connection()) assert(self.publisher.routing_key())
def test_basic_get(self): #setup publisher and consumer publisher = CallCenterVectorPublisher(delivery_mode=2, exchange=self.consumer_args['exchange'], routing_key=self.consumer_args['routing_key']) self.consumer = CallCenterVectorConsumer(**self.consumer_args) #create random message sent_message = str(random.randrange(20)) #publish publisher.publish_to_queue(sent_message) #delay for good faith time.sleep(2.5) #get message and test for integrity recieved_message = self.consumer.basic_get() self.assertEqual(sent_message,recieved_message,"MESSAGES DO NOT MATCH: %s %s" % (sent_message,recieved_message))
def test_publish(self): self.publisher = CallCenterVectorPublisher(**self.publish_args) self.consumer = CallCenterVectorConsumer(**self.consumer_args) #create random message created_message = str(random.randrange(20)) sent_message = self.publisher.publish_to_queue(created_message) self.assertEqual(created_message,sent_message,"The created message and returned message do not match: %s %s" % (created_message, sent_message)) #delay for good faith time.sleep(2.5) #get message and test for integrity recieved_message = self.consumer.basic_get() self.assertEqual(created_message,recieved_message,"MESSAGES DO NOT MATCH: %s %s" % (created_message,recieved_message))
class TestPublisher(unittest.TestCase): """ Units tests for the call center vector publisher class. """ def setUp(self): self.connection_args = {'host':'localhost' , 'port': '5672', 'userid':'guest', 'password':'******', 'virtual_host':'/', 'insist': False, 'ssl':False} self.conn = CallCenterVectorConnection(**self.connection_args) self.publish_args = {'connection': self.conn, 'routing_key': 'test_key', 'delivery_mode': 2, 'exchange': 'test_exchange' } self.consumer_args = {'queue':'test_queue', 'exchange' : 'test_exchange', 'exchange_type': 'direct', 'routing_key': 'test_key' } self.publisher= None self.consumer = None def tearDown(self): self.conn.close() self.publisher.close() if self.consumer: self.consumer.close() def test_publish_constructor_with_defined_connection(self): #test with connection definied self.publisher = CallCenterVectorPublisher(**self.publish_args) assert(self.publisher.channel()) assert(self.publisher.delivery_mode()) assert(self.publisher.connection()) assert(self.publisher.routing_key()) def test_publisher_constructor_without_connection(self): self.publisher = CallCenterVectorPublisher(delivery_mode=self.publish_args['delivery_mode'], exchange=self.publish_args['exchange'], routing_key=self.publish_args['routing_key']) assert(self.publisher.channel()) assert(self.publisher.delivery_mode()) assert(self.publisher.connection()) assert(self.publisher.routing_key()) def test_publish(self): self.publisher = CallCenterVectorPublisher(**self.publish_args) self.consumer = CallCenterVectorConsumer(**self.consumer_args) #create random message created_message = str(random.randrange(20)) sent_message = self.publisher.publish_to_queue(created_message) self.assertEqual(created_message,sent_message,"The created message and returned message do not match: %s %s" % (created_message, sent_message)) #delay for good faith time.sleep(2.5) #get message and test for integrity recieved_message = self.consumer.basic_get() self.assertEqual(created_message,recieved_message,"MESSAGES DO NOT MATCH: %s %s" % (created_message,recieved_message))