def test_delete_uaid(self): notif = make_webpush_notification(dummy_uaid.hex, str(dummy_chid)) notif2 = make_webpush_notification(dummy_uaid.hex, str(dummy_chid)) messages = self.db.message messages.store_message(notif) messages.store_message(notif2) self.db.router.drop_user.return_value = True yield self.client.delete( self.url(router_type="simplepush", router_token="test", uaid=dummy_uaid.hex), headers={"Authorization": self.auth}, ) # Note: Router is mocked, so the UAID is never actually # dropped. ok_(self.db.router.drop_user.called) eq_(self.db.router.drop_user.call_args_list[0][0], (dummy_uaid.hex,))
def test_delete_uaid(self): notif = make_webpush_notification(dummy_uaid.hex, str(dummy_chid)) notif2 = make_webpush_notification(dummy_uaid.hex, str(dummy_chid)) messages = self.reg.ap_settings.message chid2 = str(uuid.uuid4()) messages.store_message(notif) messages.store_message(notif2) self.reg.ap_settings.router.drop_user = Mock() self.reg.ap_settings.router.drop_user.return_value = True def handle_finish(value, chid2): # Note: Router is mocked, so the UAID is never actually # dropped. ok_(self.reg.ap_settings.router.drop_user.called) eq_(self.reg.ap_settings.router.drop_user.call_args_list[0][0], (dummy_uaid.hex,)) self.finish_deferred.addCallback(handle_finish, chid2) self.reg.request.headers["Authorization"] = self.auth self.reg.delete(self._make_req("simplepush", "test", dummy_uaid.hex)) return self.finish_deferred
def test_delete_success(self): notif = make_webpush_notification(dummy_uaid.hex, str(dummy_chid)) messages = self.db.message messages.register_channel(dummy_uaid.hex, str(dummy_chid)) messages.store_message(notif) yield self.client.delete( self.url(router_type="test", router_token="test", uaid=dummy_uaid.hex, chid=str(dummy_chid)), headers={"Authorization": self.auth}, )
def test_delete_bad_chid_value(self): notif = make_webpush_notification(dummy_uaid.hex, str(dummy_chid)) messages = self.reg.ap_settings.message messages.register_channel(dummy_uaid.hex, str(dummy_chid)) messages.store_message(notif) self.reg.request.headers["Authorization"] = self.auth def handle_finish(value): self._check_error(410, 106, "") self.finish_deferred.addCallback(handle_finish) self.reg.delete(self._make_req("test", "test", dummy_uaid.hex, "invalid")) return self.finish_deferred
def test_delete_bad_chid_value(self): notif = make_webpush_notification(dummy_uaid.hex, str(dummy_chid)) messages = self.db.message messages.register_channel(dummy_uaid.hex, str(dummy_chid)) messages.store_message(notif) resp = yield self.client.delete( self.url(router_type="test", router_token="test", uaid=dummy_uaid.hex, chid=uuid.uuid4().hex), headers={"Authorization": self.auth}, ) self._check_error(resp, 410, 106, "")
def test_delete_no_such_chid(self): notif = make_webpush_notification(dummy_uaid.hex, str(dummy_chid)) messages = self.db.message messages.register_channel(dummy_uaid.hex, str(dummy_chid)) messages.store_message(notif) # Moto can't handle set operations of this nature so we have # to mock the reply self.patch('autopush.db.Message.unregister_channel', return_value=False) resp = yield self.client.delete(self.url(router_type="test", router_token="test", uaid=dummy_uaid.hex, chid=str(uuid.uuid4())), headers={"Authorization": self.auth}) self._check_error(resp, 410, 106, "")
def test_delete_no_such_chid(self): notif = make_webpush_notification(dummy_uaid.hex, str(dummy_chid)) messages = self.reg.ap_settings.message messages.register_channel(dummy_uaid.hex, str(dummy_chid)) messages.store_message(notif) # Moto can't handle set operations of this nature so we have # to mock the reply unreg = messages.unregister_channel messages.unregister_channel = Mock(return_value=False) self.reg.request.headers["Authorization"] = self.auth def handle_finish(value): self._check_error(410, 106, "") def fixup_messages(result): messages.unregister_channel = unreg self.finish_deferred.addCallback(handle_finish) self.finish_deferred.addBoth(fixup_messages) self.reg.delete(self._make_req("test", "test", dummy_uaid.hex, str(uuid.uuid4()))) return self.finish_deferred