Ejemplo n.º 1
0
    def test_encode(self):
        m = Message(alert='test')
        enc = m.encoded
        assert type(enc) == binary_type
        # Raises exception if not utf-8 encoded:
        jsondata = enc.decode('utf-8')

        payload = json.loads(jsondata)
        assert payload == m.payload
Ejemplo n.º 2
0
    def test_payload_with_extras(self):
        message = {
            'subject': 'test',
            'body': 'testing',
        }
        m = Message(alert='test', msg=message)

        assert 'aps' in m.payload
        aps = m.payload['aps']
        assert aps['alert'] == 'test'

        assert 'msg' in m.payload
        msg = m.payload['msg']
        assert msg == message
Ejemplo n.º 3
0
    def test_push_not_successful(self):
        res = Mock()
        res.status = 400
        res.read.return_value = b'{"reason": "BadDeviceToken"}'
        res.headers = {
            'apns-id': [str(uuid.uuid4())],
        }

        con = Mock()
        con.get_response.return_value = res

        c = Client(None)
        c._connection = con

        m = Message(alert='testing')

        try:
            c.push(m, 'token')
            pytest.fail('Did not raise BadDeviceToken')
        except BadDeviceToken as e:
            assert e.token == 'token'
            assert e.code == res.status
Ejemplo n.º 4
0
    def test_push(self):
        id_ = uuid.uuid4()
        res = Mock()
        res.status = 200
        res.headers = {
            'apns-id': [str(id_)],
        }

        con = Mock()
        con.get_response.return_value = res

        c = Client(None)
        c._connection = con

        m = Message(alert='testing')

        apns_id = c.push(m, 'token')
        assert apns_id == id_

        args, kwargs = con.request.call_args
        assert args[0] == 'POST'
        assert args[1] == '/3/device/token'
        assert kwargs['body'] == m.encoded
        assert kwargs['headers'] == m.headers
Ejemplo n.º 5
0
 def test_set_expiration_datetime(self):
     exp = datetime.now().replace(microsecond=0)
     m = Message(expiration=exp)
     assert m.expiration == exp
Ejemplo n.º 6
0
    def test_aps_with_alert(self):
        a = Alert('Test', 'Message')
        m = Message(alert=a)

        assert m.aps['alert'] == a.payload
Ejemplo n.º 7
0
 def test_set_id_with_string(self):
     uid = uuid.uuid4()
     m = Message(id=str(uid))
     assert m.id == uid
Ejemplo n.º 8
0
    def test_payload(self):
        m = Message(alert='test')

        assert 'aps' in m.payload
        aps = m.payload['aps']
        assert aps['alert'] == 'test'
Ejemplo n.º 9
0
 def test_set_expiration_check_value(self):
     with pytest.raises(AssertionError):
         Message(expiration=-1)
Ejemplo n.º 10
0
 def test_set_id_with_uuid(self):
     uid = uuid.uuid4()
     m = Message(id=uid)
     assert m.id == uid
Ejemplo n.º 11
0
 def test_set_expiration_unix_timestamp(self):
     m = Message(expiration=1)
     assert m.expiration == EPOCH + timedelta(seconds=1)
Ejemplo n.º 12
0
 def test_set_expire_immediately(self):
     m = Message(expiration=EXPIRE_IMMEDIATELY)
     assert m.expiration is None
     m = Message(expiration=None)
     assert m.expiration is None
Ejemplo n.º 13
0
 def test_set_invalid_priority(self):
     with pytest.raises(AssertionError):
         Message(priority=11)
Ejemplo n.º 14
0
 def test_aps_omits_empty_keys(self):
     m = Message()
     assert m.aps == {}
Ejemplo n.º 15
0
 def test_set_priority(self, val):
     m = Message(priority=val)
     assert m.priority == val
Ejemplo n.º 16
0
 def test_set_content_available(self, val):
     m = Message(content_available=val)
     assert m.content_available == 1
Ejemplo n.º 17
0
 def test_headers_encodes_expiration(self):
     m = Message(expiration=EXPIRE_IMMEDIATELY)
     assert m.headers['apns-expiration'] == EXPIRE_IMMEDIATELY
     new_millennium = datetime(2001, 1, 1)
     m = Message(expiration=new_millennium)
     assert m.headers['apns-expiration'] == new_millennium - EPOCH
Ejemplo n.º 18
0
 def test_headers_encodes_id(self):
     uid = uuid.uuid4()
     m = Message(id=uid)
     assert m.headers['apns-id'] == str(uid)
Ejemplo n.º 19
0
 def test_headers_omits_empty_keys(self):
     m = Message(id=None)
     assert 'id' not in m.headers