mirror of
https://github.com/zulip/zulip.git
synced 2025-11-13 02:17:19 +00:00
push_notifications: Add response_listener tests.
This commit is contained in:
@@ -232,6 +232,21 @@ class PushNotificationTest(ZulipTestCase):
|
|||||||
user=self.user_profile,
|
user=self.user_profile,
|
||||||
ios_app_id=settings.ZULIP_IOS_APP_ID)
|
ios_app_id=settings.ZULIP_IOS_APP_ID)
|
||||||
|
|
||||||
|
server = RemoteZulipServer.objects.create(
|
||||||
|
uuid='remote-server',
|
||||||
|
api_key="magic_secret_api_key",
|
||||||
|
hostname="demo.example.com",
|
||||||
|
last_updated=now()
|
||||||
|
)
|
||||||
|
self.remote_tokens = [u'cccc']
|
||||||
|
for token in self.remote_tokens:
|
||||||
|
RemotePushDeviceToken.objects.create(
|
||||||
|
kind=RemotePushDeviceToken.APNS,
|
||||||
|
token=apn.hex_to_b64(token),
|
||||||
|
user_id=self.user_profile.id,
|
||||||
|
server=server,
|
||||||
|
)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
# type: () -> None
|
# type: () -> None
|
||||||
for i in [100, 200]:
|
for i in [100, 200]:
|
||||||
@@ -293,6 +308,40 @@ class ResponseListenerTest(PushNotificationTest):
|
|||||||
self.assertEqual(PushDeviceToken.objects.filter(
|
self.assertEqual(PushDeviceToken.objects.filter(
|
||||||
user=self.user_profile, token=b64_token).count(), 0)
|
user=self.user_profile, token=b64_token).count(), 0)
|
||||||
|
|
||||||
|
@mock.patch('logging.warn')
|
||||||
|
def test_error_code_eight_when_token_doesnt_exist(self, mock_warn):
|
||||||
|
# type: (mock.MagicMock) -> None
|
||||||
|
cache_value = self.get_cache_value()
|
||||||
|
cache_value['token'] = 'cccc'
|
||||||
|
self.redis_client.hmset(apn.get_apns_key(100), cache_value)
|
||||||
|
err_rsp = self.get_error_response(identifier=100, status=8)
|
||||||
|
apn.response_listener(err_rsp)
|
||||||
|
self.assertEqual(PushDeviceToken.objects.all().count(), 2)
|
||||||
|
|
||||||
|
@mock.patch('logging.warn')
|
||||||
|
def test_error_code_eight_with_zilencer(self, mock_warn):
|
||||||
|
# type: (mock.MagicMock) -> None
|
||||||
|
cache_value = self.get_cache_value()
|
||||||
|
cache_value['token'] = 'cccc'
|
||||||
|
self.redis_client.hmset(apn.get_apns_key(100), cache_value)
|
||||||
|
err_rsp = self.get_error_response(identifier=100, status=8)
|
||||||
|
self.assertEqual(RemotePushDeviceToken.objects.all().count(), 1)
|
||||||
|
with self.settings(ZILENCER_ENABLED=True):
|
||||||
|
apn.response_listener(err_rsp)
|
||||||
|
self.assertEqual(RemotePushDeviceToken.objects.all().count(), 0)
|
||||||
|
|
||||||
|
@mock.patch('logging.warn')
|
||||||
|
def test_error_code_eight_with_zilencer_when_token_doesnt_exist(self, mock_warn):
|
||||||
|
# type: (mock.MagicMock) -> None
|
||||||
|
cache_value = self.get_cache_value()
|
||||||
|
cache_value['token'] = 'dddd'
|
||||||
|
self.redis_client.hmset(apn.get_apns_key(100), cache_value)
|
||||||
|
err_rsp = self.get_error_response(identifier=100, status=8)
|
||||||
|
self.assertEqual(RemotePushDeviceToken.objects.all().count(), 1)
|
||||||
|
with self.settings(ZILENCER_ENABLED=True):
|
||||||
|
apn.response_listener(err_rsp)
|
||||||
|
self.assertEqual(RemotePushDeviceToken.objects.all().count(), 1)
|
||||||
|
|
||||||
class TestPushApi(ZulipTestCase):
|
class TestPushApi(ZulipTestCase):
|
||||||
def test_push_api(self):
|
def test_push_api(self):
|
||||||
# type: () -> None
|
# type: () -> None
|
||||||
|
|||||||
Reference in New Issue
Block a user