push_notifications: Add response_listener tests.

This commit is contained in:
Umair Khan
2017-05-11 11:32:11 +05:00
committed by Tim Abbott
parent fc0b9358e7
commit df0d29aaff

View File

@@ -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