mirror of
https://github.com/zulip/zulip.git
synced 2025-11-01 20:44:04 +00:00
push_notifications: Add response_listener tests.
This commit is contained in:
@@ -232,6 +232,21 @@ class PushNotificationTest(ZulipTestCase):
|
||||
user=self.user_profile,
|
||||
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):
|
||||
# type: () -> None
|
||||
for i in [100, 200]:
|
||||
@@ -293,6 +308,40 @@ class ResponseListenerTest(PushNotificationTest):
|
||||
self.assertEqual(PushDeviceToken.objects.filter(
|
||||
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):
|
||||
def test_push_api(self):
|
||||
# type: () -> None
|
||||
|
||||
Reference in New Issue
Block a user