예제 #1
0
 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)
예제 #2
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,
     }
예제 #3
0
파일: sse.py 프로젝트: jrconlin/moz_push
    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
예제 #4
0
 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
예제 #5
0
    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))
예제 #6
0
 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)
예제 #7
0
파일: postoffice.py 프로젝트: psawaya/notif
    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