def test_delete_user_with_invalid_request(self, LOGGER_error_mock,
                                              resquests_post_mock,
                                              COLAB_APPS_mock):
        resquests_post_mock.side_effect = Exception()

        COLAB_APPS_mock.return_value = {
            'colab_noosfero': {
                'private_token': "TestToken",
                'upstream': "https://testeurl.com/",
                'verify_ssl': True,
            },
        }

        user = Mock(
            email="*****@*****.**",
            username="******",
            get_full_name=lambda: "Full Name Test"
        )

        NoosferoUser.objects.get_or_create(id=1, username="******")

        delete_user(None, user=user)

        error_msg = u'Error trying to delete the user "{}" '
        error_msg += u'on Noosfero. Reason: {}'
        reason = 'Request to API failed ({})'.format(Exception())
        error_msg = error_msg.format(user.username, reason)
        LOGGER_error_mock.assert_called_with(error_msg)
    def test_delete_user_with_invalid_remote_user(self, LOGGER_error_mock,
                                                  resquests_post_mock,
                                                  COLAB_APPS_mock):

        json_resulted = self.return_json
        resquests_post_mock.return_value = Mock(
            status_code=500,
            json=self.return_json
        )

        COLAB_APPS_mock.return_value = {
            'colab_noosfero': {
                'upstream': "https://testeurl.com/",
                'verify_ssl': True,
            },
        }

        user = Mock(
            email="*****@*****.**",
            username="******",
            get_full_name=lambda: "Full Name Test"
        )

        NoosferoUser.objects.get_or_create(id=1, username="******")

        delete_user(None, user=user)

        error_msg = u'Error trying to delete the user "{}" on Noosfero.'
        error_msg += u' Reason: {}. JSON={}'
        error_msg = error_msg.format(user.username, 'Unknown', json_resulted())
        LOGGER_error_mock.assert_called_with(error_msg)
    def test_delete_user_with_valid_remote_user(self, LOGGER_info_mock,
                                                resquests_post_mock,
                                                COLAB_APPS_mock):

        resquests_post_mock.return_value = Mock(
            status_code=200,
            json=lambda: {'message': 'Unauthorized'}
        )

        COLAB_APPS_mock.return_value = {
            'colab_noosfero': {
                'private_token': "TestToken",
                'upstream': "https://testeurl.com/",
                'verify_ssl': True,
            },
        }

        user = Mock(
            email="*****@*****.**",
            username="******",
            get_full_name=lambda: "Full Name Test"
        )

        NoosferoUser.objects.get_or_create(id=1, username="******")

        delete_user(None, user=user)

        msg = 'Noosfero user "{}" deleted'.format(user.username)
        LOGGER_info_mock.assert_called_with(msg)
        self.assertEquals(0, len(NoosferoUser.objects.filter(id=1)))