def test_remove_broken_public_id(self, remove_owner, HTTPCallbackGroup, get_associated_privates): # Setup HTTPCallbackGroup.return_value = MagicMock() on_success_handler = MagicMock() on_failure_handler = MagicMock() self.handler.forward_error = MagicMock() sip_uri = SIP_URI2 # Test numbers.remove_public_id(self.db_sess, sip_uri, on_success_handler, on_failure_handler, False) # Fail the Priv->Pub lookup get_associated_privates.assert_called_once_with(sip_uri, ANY) HTTPCallbackGroup.assert_called_once_with(ANY, ANY) failure_callback = HTTPCallbackGroup.call_args[0][1] error = MagicMock() error.code = 404 failure_callback(error) # Asserts remove_owner.assert_called_once_with(self.db_sess, sip_uri) self.db_sess.commit.assert_called_once() on_success_handler.assert_called_once_with({})
def test_remove_broken_public_id(self, remove_owner, HTTPCallbackGroup, get_associated_privates): # Setup HTTPCallbackGroup.return_value = MagicMock() on_success_handler = MagicMock() on_failure_handler = MagicMock() self.handler.forward_error = MagicMock() sip_uri = SIP_URI2 # Test numbers.remove_public_id(self.db_sess, sip_uri, on_success_handler, on_failure_handler, False) # Fail the Priv->Pub lookup get_associated_privates.assert_called_once_with(sip_uri, ANY) HTTPCallbackGroup.assert_called_once_with(ANY, ANY) failure_callback = HTTPCallbackGroup.call_args[0][1] error = MagicMock() error.code = 404 failure_callback(error) # Asserts remove_owner.assert_called_once_with(self.db_sess, sip_uri) self.db_sess.commit.assert_called_once_with() on_success_handler.assert_called_once_with({})
def _do_delete_work(self): # If there are still numbers to delete, do so. If not, delete the user and return. if len(self._numbers) > 0: api_numbers.remove_public_id(self.db_session(), self._numbers.pop()["number"], self._on_delete_post_success, self._on_delete_post_failure, True) else: _log.debug("Deleting user %s", self._user_id) db_sess = self.db_session() users.delete_user(db_sess, self._user_id) db_sess.commit() self.send_success(httplib.NO_CONTENT)
def remove_public_id(self, last_public_id, original_id, HTTPCallbackGroup, get_associated_privates, get_associated_publics, _delete_number): # Setup HTTPCallbackGroup.return_value = MagicMock() on_success_handler = MagicMock() on_failure_handler = MagicMock() self.handler.forward_error = MagicMock() if original_id: sip_uri = SIP_URI else: sip_uri = SIP_URI2 # Test numbers.remove_public_id(self.db_sess, sip_uri, on_success_handler, on_failure_handler, False) # Asserts get_associated_privates.assert_called_once_with(sip_uri, ANY) HTTPCallbackGroup.assert_called_once_with(ANY, ANY) # Extract inner function and can call it with response on_get_privates_success = HTTPCallbackGroup.call_args[0][0] response = MagicMock() response.body = '{"public_id": "%s", "private_ids": ["%s"]}' % (sip_uri, PRIVATE_ID) on_get_privates_success([response]) # Response should have been parsed now and a new call invoked get_associated_publics.assert_called_once_with(PRIVATE_ID, ANY) on_get_publics_success = HTTPCallbackGroup.call_args[0][0] response = MagicMock() if last_public_id: response.body = '{"associated_public_ids": ["%s"]}' % (sip_uri) else: response.body = '{"associated_public_ids": ["*****@*****.**", "%s"]}' % (sip_uri) on_get_publics_success([response]) if original_id and not last_public_id: # When deleting the originally created public identity we want the request to fail # if other public identities are associated with the private id on_failure_handler.assert_called_once_with(response) else: _delete_number.assert_called_once_with(self.db_sess, sip_uri, PRIVATE_ID, last_public_id, on_success_handler, on_failure_handler, False)