def test_broadcasts(self): self.set_credentials(self.config.get("tests.user", "*****@*****.**"), self.config.get("tests.password", None)) queue_info = self.create_queue() ciphertext = "test_12345" self.send_broadcast( json.dumps( { "body": json.dumps( { "token": queue_info.get("queue_id"), "timestamp": int(time.time()), "ciphertext": ciphertext, "ttl": 1, } ), "HMAC": "", } ) ) backend = get_message_backend(self.config) messages = backend.get_pending_messages(self.username) self.assertEqual(json.loads(messages[0].get("body")).get("ciphertext"), ciphertext) # wait for the message to expire. time.sleep(2) messages = backend.get_pending_messages(self.username) self.assertEqual(len(messages), 0)
def __init__(self, config): self.msg_backend = get_message_backend(config) self.post_urls = { '/1.0/new_queue': self.new_queue, '/1.0/new_subscription': self.new_subscription, '/1.0/remove_subscription': self.remove_subscription, '/1.0/broadcast': self.broadcast, }
def _connect(self, config): self.config = config self.msg_backend = get_message_backend(config) self.msg_queue_name = self.config.get('notifs_queue_name') self.validator = self.config.get('validator', None) if self.validator is not None: self.validator
def _init(self, config, validator = None): self.msg_backend = get_message_backend(config) self.msg_queue_name = config.get('notifs_queue_name') if validator is None: validator = config.get('validator', None) if validator is not None: try: self.validator = _resolve_name(validator) except ImportError: raise KeyError('Validator class not found %s' % validator) else: self.validator = validator
def test_all(self): storage = get_message_backend(self.config) username = self.config.get('tests.user', '*****@*****.**') test_token = 'TEST123' origin = 'example.com' test_message = json.dumps({"body": json.dumps({ "token": test_token, "timestamp": int(time.time()), "ciphertext": "test", "ttl": 100}), "HMAC": "123abc"}) queue_info = storage.create_client_queue(username) subs = storage.create_subscription(username, test_token) #Send a message to the user. storage.send_broadcast(test_message, username, origin = origin, queue = test_token) msgs = storage.get_pending_messages(username) self.assertEqual(json.loads(msgs[0].get('body')).get('token'), test_token) storage._purge(username = username) #Send a message to a user based on their queue id (most common path) storage.publish_message(test_message, queue_info.get('queue_id'), origin = origin) msgs = storage.get_pending_messages(username) self.failUnless(test_token in msgs[0].get('body')) storage._purge(username = username) # Add a message to a subscription queue storage.queue_message(test_message, subs.get('queue_id'), origin = origin) msgs = storage.get_pending_messages(username) # clean all the messages out of the user queue storage._purge(username = username) # drop the subscription. storage.delete_subscription(username, test_token) # Should not be able to add message to a deleted queue self.failIf(storage.queue_message(test_message, subs.get('queue_id'), origin = origin)) # Should not be able to read messages from an empty queue msgs = storage.get_pending_messages(username) self.failIf(len(msgs))
def _init(self, config): self.msg_backend = get_message_backend(config) self.auth = self.app.auth.backend self.auth.__init__(config = config) self.client_agent = ClientAgent(self.app)
def __init__(self, config, validator=None): """Initialize the server.""" self.msg_backend = get_message_backend(config) self.msg_queue_name = config['notifs_queue_name'] self.validator = validator