def test_token_credential(self): token_credential = TokenCredential(self.generate_oauth_token()) # Action 1: make sure token works service = QueueService(self.settings.STORAGE_ACCOUNT_NAME, token_credential=token_credential) queues = list(service.list_queues()) self.assertIsNotNone(queues) # Action 2: change token value to make request fail token_credential.token = "YOU SHALL NOT PASS" with self.assertRaises(AzureException): queues = list(service.list_queues()) self.assertIsNone(queues) # Action 3: update token to make it working again token_credential.token = self.generate_oauth_token() queues = list(service.list_queues()) self.assertIsNotNone(queues)
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)
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)