Implement thread-id option

This commit is contained in:
Camille Fabreguettes
2017-03-05 14:41:00 +03:00
committed by Sergey Petrov
parent 7fe9d6aa91
commit de18e2990c
2 changed files with 80 additions and 1 deletions
+4 -1
View File
@@ -47,7 +47,7 @@ class PayloadAlert(object):
class Payload(object): class Payload(object):
def __init__(self, alert=None, badge=None, sound=None, def __init__(self, alert=None, badge=None, sound=None,
content_available=False, mutable_content=False, content_available=False, mutable_content=False,
category=None, url_args=None, custom=None): category=None, url_args=None, custom=None, thread_id=None):
self.alert = alert self.alert = alert
self.badge = badge self.badge = badge
self.sound = sound self.sound = sound
@@ -56,6 +56,7 @@ class Payload(object):
self.url_args = url_args self.url_args = url_args
self.custom = custom self.custom = custom
self.mutable_content = mutable_content self.mutable_content = mutable_content
self.thread_id = thread_id
def dict(self): def dict(self):
result = { result = {
@@ -74,6 +75,8 @@ class Payload(object):
result['aps']['content-available'] = 1 result['aps']['content-available'] = 1
if self.mutable_content: if self.mutable_content:
result['aps']['mutable-content'] = 1 result['aps']['mutable-content'] = 1
if self.thread_id is not None:
result['aps']['thread-id'] = self.thread_id
if self.category is not None: if self.category is not None:
result['aps']['category'] = self.category result['aps']['category'] = self.category
if self.url_args is not None: if self.url_args is not None:
+76
View File
@@ -0,0 +1,76 @@
# pylint: disable=protected-access
from unittest import TestCase
from apns2.payload import Payload, PayloadAlert
class PayloadTestCase(TestCase):
def setUp(self):
self.payload_alert = payload_alert = PayloadAlert(
title='title', title_localized_key='loc_k', title_localized_args='loc_a',
body='body', body_localized_key='body_loc_k', body_localized_args='body_loc_a',
action_localized_key='ac_loc_k', action='send',
launch_image='img')
def test_payload(self):
payload = Payload(
alert='my_alert', badge=2, sound='chime',
content_available=1, mutable_content=3,
category='my_category', url_args='args', custom={'extra': 'something'}, thread_id=42)
self.assertEqual(payload.dict(), {
'aps': {
'alert': 'my_alert',
'badge': 2,
'sound': 'chime',
'content-available': 1,
'mutable-content': 1,
'thread-id': 42,
'category': 'my_category',
'url-args': 'args'
},
'extra': 'something'
})
def test_payload_with_payload_alert(self):
payload = Payload(
alert=self.payload_alert, badge=2, sound='chime',
content_available=1, mutable_content=1,
category='my_category', url_args='args', custom={'extra': 'something'}, thread_id=42)
self.assertEqual(payload.dict(), {
'aps': {
'alert': {
'title': 'title',
'title-loc-key': 'loc_k',
'title-loc-args': 'loc_a',
'body': 'body',
'loc-key': 'body_loc_k',
'loc-args': 'body_loc_a',
'action-loc-key': 'ac_loc_k',
'action': 'send',
'launch-image': 'img'
},
'badge': 2,
'sound': 'chime',
'content-available': 1,
'mutable-content': 1,
'thread-id': 42,
'category': 'my_category',
'url-args': 'args',
},
'extra': 'something'
})
def test_payload_alert(self):
self.assertEqual(self.payload_alert.dict(), {
'title': 'title',
'title-loc-key': 'loc_k',
'title-loc-args': 'loc_a',
'body': 'body',
'loc-key': 'body_loc_k',
'loc-args': 'body_loc_a',
'action-loc-key': 'ac_loc_k',
'action': 'send',
'launch-image': 'img'
})