Exemple #1
0
    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({})
Exemple #2
0
    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({})
Exemple #3
0
 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)
Exemple #4
0
    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)
Exemple #5
0
    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)
Exemple #6
0
 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)