class QueueStorageHandlerTest(_TestCase): def setUp(self): self.service = QueueService(ACCOUNT_NAME, ACCOUNT_KEY) # ensure that there's no message on the queue before each test queues = set() for cfg in LOGGING['handlers'].values(): if 'queue' in cfg: queues.add(cfg['queue']) for queue in self.service.list_queues(): if queue.name in queues: self.service.clear_messages(queue.name) def test_logging(self): # get the logger for the test logger_name = 'queue' logger = logging.getLogger(logger_name) handler_name = _get_handler_name(logger_name) # perform logging log_text = 'logging test' logger.info(log_text) # confirm that the massage has correct log text queue = _get_handler_config_value(handler_name, 'queue') messages = iter(self.service.get_messages(queue)) message = next(messages) text_expected = "INFO %s" % log_text if _get_handler_config_value(handler_name, 'base64_encoding'): text_expected = _base64_encode(text_expected) self.assertEqual(message.message_text, text_expected) # confirm that there's no more message in the queue with self.assertRaises(StopIteration): next(messages) def test_message_ttl(self): # get the logger for the test logger_name = 'message_ttl' logger = logging.getLogger(logger_name) handler_name = _get_handler_name(logger_name) # perform logging log_text = 'time-to-live test' logger.info(log_text) # confirm that the new message is visible till the ttl expires queue = _get_handler_config_value(handler_name, 'queue') messages = iter(self.service.get_messages(queue)) message = next(messages) text_expected = 'INFO %s' % log_text if _get_handler_config_value(handler_name, 'base64_encoding'): text_expected = _base64_encode(text_expected) self.assertEqual(message.message_text, text_expected) # confirm that there's no more message in the queue with self.assertRaises(StopIteration): next(messages) # confirm that the new message is invisible after the ttl expires ttl = _get_handler_config_value(handler_name, 'message_ttl') time.sleep(int(ttl) + 5) messages = iter(self.service.get_messages(queue)) with self.assertRaises(StopIteration): next(messages) def test_visibility_timeout(self): # get the logger for the test logger_name = 'visibility_timeout' logger = logging.getLogger(logger_name) handler_name = _get_handler_name(logger_name) # perform logging log_text = 'visibility test' logger.info(log_text) # confirm that the new message is invisible till the timeout expires queue = _get_handler_config_value(handler_name, 'queue') messages = iter(self.service.get_messages(queue)) with self.assertRaises(StopIteration): next(messages) # confirm that the new message is visible after the timeout expires timeout = _get_handler_config_value(handler_name, 'visibility_timeout') time.sleep(int(timeout) + 5) messages = iter(self.service.get_messages(queue)) message = next(messages) text_expected = 'INFO %s' % log_text if _get_handler_config_value(handler_name, 'base64_encoding'): text_expected = _base64_encode(text_expected) self.assertEqual(message.message_text, text_expected) # confirm that there's no more message in the queue with self.assertRaises(StopIteration): next(messages) def test_base64_encoding(self): # get the logger for the test logger_name = 'base64_encoding' logger = logging.getLogger(logger_name) handler_name = _get_handler_name(logger_name) # perform logging log_text = 'Base64 encoding test' logger.info(log_text) # confirm that the log message is encoded in Base64 queue = _get_handler_config_value(handler_name, 'queue') messages = iter(self.service.get_messages(queue)) message = next(messages) text_expected = "INFO %s" % log_text if _get_handler_config_value(handler_name, 'base64_encoding'): text_expected = _base64_encode(text_expected) self.assertEqual(message.message_text, text_expected) # confirm that there's no more message in the queue with self.assertRaises(StopIteration): next(messages)
queues = [ (config.job_status_queue_name, config.job_status_queue_sas_token), (config.logger_queue_name, config.logger_queue_sas), (config.metrics_queue_name, config.metrics_sas_token), (config.results_queue_name, config.results_queue_sas_token), (config.workload_tracker_queue_name, config.workload_tracker_sas_token) ] print "Clearing all queues" for queue in queues: storage_service_queue = QueueService( account_name=config.storage_account_name, sas_token=queue[1]) print "\tClearing " + queue[0] while True: try: storage_service_queue.clear_messages(queue[0], timeout=300) if not storage_service_queue.peek_messages(queue[0]): break except: print "\t Still clearing" pass print "\t" + queue[0] + " cleared." storage_service = BlockBlobService( account_name=config.storage_account_name, sas_token=config.results_container_sas_token) print "Deleting container: " + config.results_container_name storage_service.delete_container(config.results_container_name)
class QueueStorageHandlerTest(_TestCase): def setUp(self): self.service = QueueService(account_name=ACCOUNT_NAME, account_key=ACCOUNT_KEY, is_emulated=_EMULATED) # ensure that there's no message on the queue before each test queues = set() for cfg in LOGGING['handlers'].values(): if 'queue' in cfg: queues.add(cfg['queue']) for queue in self.service.list_queues(): if queue.name in queues: self.service.clear_messages(queue.name) def test_logging(self): # get the logger for the test logger_name = 'queue' logger = logging.getLogger(logger_name) handler_name = _get_handler_name(logger_name) # perform logging log_text = 'logging test' logger.info(log_text) # confirm that the massage has correct log text queue = _get_handler_config_value(handler_name, 'queue') messages = iter(self.service.get_messages(queue)) message = next(messages) text_expected = "INFO %s" % log_text if _get_handler_config_value(handler_name, 'base64_encoding'): text_expected = _base64_encode(text_expected) self.assertEqual(message.content, text_expected) # confirm that there's no more message in the queue with self.assertRaises(StopIteration): next(messages) def test_message_ttl(self): # get the logger for the test logger_name = 'message_ttl' logger = logging.getLogger(logger_name) handler_name = _get_handler_name(logger_name) # perform logging log_text = 'time-to-live test' logger.info(log_text) # confirm that the new message is visible till the ttl expires queue = _get_handler_config_value(handler_name, 'queue') messages = iter(self.service.get_messages(queue)) message = next(messages) text_expected = 'INFO %s' % log_text if _get_handler_config_value(handler_name, 'base64_encoding'): text_expected = _base64_encode(text_expected) self.assertEqual(message.content, text_expected) # confirm that there's no more message in the queue with self.assertRaises(StopIteration): next(messages) # confirm that the new message is invisible after the ttl expires ttl = _get_handler_config_value(handler_name, 'message_ttl') time.sleep(int(ttl)+5) messages = iter(self.service.get_messages(queue)) with self.assertRaises(StopIteration): next(messages) def test_visibility_timeout(self): # get the logger for the test logger_name = 'visibility_timeout' logger = logging.getLogger(logger_name) handler_name = _get_handler_name(logger_name) # perform logging log_text = 'visibility test' logger.info(log_text) # confirm that the new message is invisible till the timeout expires queue = _get_handler_config_value(handler_name, 'queue') messages = iter(self.service.get_messages(queue)) with self.assertRaises(StopIteration): next(messages) # confirm that the new message is visible after the timeout expires timeout = _get_handler_config_value(handler_name, 'visibility_timeout') time.sleep(int(timeout)+5) messages = iter(self.service.get_messages(queue)) message = next(messages) text_expected = 'INFO %s' % log_text if _get_handler_config_value(handler_name, 'base64_encoding'): text_expected = _base64_encode(text_expected) self.assertEqual(message.content, text_expected) # confirm that there's no more message in the queue with self.assertRaises(StopIteration): next(messages) def test_base64_encoding(self): # get the logger for the test logger_name = 'base64_encoding' logger = logging.getLogger(logger_name) handler_name = _get_handler_name(logger_name) # perform logging log_text = 'Base64 encoding test' logger.info(log_text) # confirm that the log message is encoded in Base64 queue = _get_handler_config_value(handler_name, 'queue') messages = iter(self.service.get_messages(queue)) message = next(messages) text_expected = "INFO %s" % log_text if _get_handler_config_value(handler_name, 'base64_encoding'): text_expected = _base64_encode(text_expected) self.assertEqual(message.content, text_expected) # confirm that there's no more message in the queue with self.assertRaises(StopIteration): next(messages)