Exemplo n.º 1
0
class ItemViewSetManageSpeaker(TestCase):
    """
    Tests views of ItemViewSet to manage speakers.
    """
    def setUp(self):
        self.request = MagicMock()
        self.view_instance = ItemViewSet()
        self.view_instance.request = self.request
        self.view_instance.get_object = get_object_mock = MagicMock()
        get_object_mock.return_value = self.mock_item = MagicMock()

    @patch('openslides.agenda.views.Speaker')
    def test_add_oneself_as_speaker(self, mock_speaker):
        self.request.method = 'POST'
        self.request.user.has_perm.return_value = True
        self.request.data = {}
        self.mock_item.speaker_list_closed = False
        self.view_instance.manage_speaker(self.request)
        mock_speaker.objects.add.assert_called_with(self.request.user,
                                                    self.mock_item)

    @patch('openslides.agenda.views.get_user_model')
    @patch('openslides.agenda.views.Speaker')
    def test_add_someone_else_as_speaker(self, mock_speaker,
                                         mock_get_user_model):
        self.request.method = 'POST'
        self.request.user.has_perm.return_value = True
        self.request.data = {
            'user': '******'
        }  # It is assumed that the request user has pk!=2.
        mock_get_user_model.return_value = MockUser = MagicMock()
        MockUser.objects.get.return_value = mock_user = MagicMock()
        self.view_instance.manage_speaker(self.request)
        MockUser.objects.get.assert_called_with(pk=2)
        mock_speaker.objects.add.assert_called_with(mock_user, self.mock_item)

    @patch('openslides.agenda.views.Speaker')
    def test_remove_oneself(self, mock_speaker):
        self.request.method = 'DELETE'
        self.request.data = {}
        self.view_instance.manage_speaker(self.request)
        mock_queryset = mock_speaker.objects.filter.return_value.exclude.return_value
        mock_queryset.get.return_value.delete.assert_called_with()

    @patch('openslides.agenda.views.Speaker')
    def test_remove_someone_else(self, mock_speaker):
        self.request.method = 'DELETE'
        self.request.user.has_perm.return_value = True
        self.request.data = {'speaker': '1'}
        self.view_instance.manage_speaker(self.request)
        mock_speaker.objects.get.assert_called_with(pk=1)
        mock_speaker.objects.get.return_value.delete.assert_called_with()
Exemplo n.º 2
0
class ItemViewSetSpeak(TestCase):
    """
    Tests views of ItemViewSet to begin and end speech.
    """
    def setUp(self):
        self.request = MagicMock()
        self.view_instance = ItemViewSet()
        self.view_instance.request = self.request
        self.view_instance.get_object = get_object_mock = MagicMock()
        get_object_mock.return_value = self.mock_item = MagicMock()

    def test_begin_speech(self):
        self.request.method = 'PUT'
        self.request.user.has_perm.return_value = True
        self.request.data = {}
        self.mock_item.get_next_speaker.return_value = mock_next_speaker = MagicMock()
        self.view_instance.speak(self.request)
        mock_next_speaker.begin_speech.assert_called_with()

    @patch('openslides.agenda.views.Speaker')
    def test_begin_speech_specific_speaker(self, mock_speaker):
        self.request.method = 'PUT'
        self.request.user.has_perm.return_value = True
        self.request.data = {'speaker': '1'}
        mock_speaker.objects.get.return_value = mock_next_speaker = MagicMock()
        self.view_instance.speak(self.request)
        mock_next_speaker.begin_speech.assert_called_with()

    @patch('openslides.agenda.views.Speaker')
    def test_end_speech(self, mock_speaker):
        self.request.method = 'DELETE'
        self.request.user.has_perm.return_value = True
        mock_speaker.objects.filter.return_value.exclude.return_value.get.return_value = mock_speaker = MagicMock()
        self.view_instance.speak(self.request)
        mock_speaker.end_speech.assert_called_with()
Exemplo n.º 3
0
class ItemViewSetSpeak(TestCase):
    """
    Tests views of ItemViewSet to begin and end speech.
    """
    def setUp(self):
        self.request = MagicMock()
        self.view_instance = ItemViewSet()
        self.view_instance.request = self.request
        self.view_instance.get_object = get_object_mock = MagicMock()
        get_object_mock.return_value = self.mock_item = MagicMock()

    def test_begin_speech(self):
        self.request.method = 'PUT'
        self.request.user.has_perm.return_value = True
        self.request.data = {}
        self.mock_item.get_next_speaker.return_value = mock_next_speaker = MagicMock()
        self.view_instance.speak(self.request)
        mock_next_speaker.begin_speech.assert_called_with()

    @patch('openslides.agenda.views.Speaker')
    def test_begin_speech_specific_speaker(self, mock_speaker):
        self.request.method = 'PUT'
        self.request.user.has_perm.return_value = True
        self.request.data = {'speaker': '1'}
        mock_speaker.objects.get.return_value = mock_next_speaker = MagicMock()
        self.view_instance.speak(self.request)
        mock_next_speaker.begin_speech.assert_called_with()

    @patch('openslides.agenda.views.Speaker')
    def test_end_speech(self, mock_speaker):
        self.request.method = 'DELETE'
        self.request.user.has_perm.return_value = True
        mock_speaker.objects.filter.return_value.exclude.return_value.get.return_value = mock_speaker = MagicMock()
        self.view_instance.speak(self.request)
        mock_speaker.end_speech.assert_called_with()
Exemplo n.º 4
0
class ItemViewSetManageSpeaker(TestCase):
    """
    Tests views of ItemViewSet to manage speakers.
    """
    def setUp(self):
        self.request = MagicMock()
        self.view_instance = ItemViewSet()
        self.view_instance.request = self.request
        self.view_instance.get_object = get_object_mock = MagicMock()
        get_object_mock.return_value = self.mock_item = MagicMock()

    @patch('openslides.agenda.views.Speaker')
    def test_add_oneself_as_speaker(self, mock_speaker):
        self.request.method = 'POST'
        self.request.user.has_perm.return_value = True
        self.request.data = {}
        self.mock_item.speaker_list_closed = False
        self.view_instance.manage_speaker(self.request)
        mock_speaker.objects.add.assert_called_with(self.request.user, self.mock_item)

    @patch('openslides.agenda.views.get_user_model')
    @patch('openslides.agenda.views.Speaker')
    def test_add_someone_else_as_speaker(self, mock_speaker, mock_get_user_model):
        self.request.method = 'POST'
        self.request.user.has_perm.return_value = True
        self.request.data = {'user': '******'}  # It is assumed that the request user has pk!=2.
        mock_get_user_model.return_value = MockUser = MagicMock()
        MockUser.objects.get.return_value = mock_user = MagicMock()
        self.view_instance.manage_speaker(self.request)
        MockUser.objects.get.assert_called_with(pk=2)
        mock_speaker.objects.add.assert_called_with(mock_user, self.mock_item)

    @patch('openslides.agenda.views.Speaker')
    def test_remove_oneself(self, mock_speaker):
        self.request.method = 'DELETE'
        self.request.data = {}
        self.view_instance.manage_speaker(self.request)
        mock_queryset = mock_speaker.objects.filter.return_value.exclude.return_value
        mock_queryset.get.return_value.delete.assert_called_with()

    @patch('openslides.agenda.views.Speaker')
    def test_remove_someone_else(self, mock_speaker):
        self.request.method = 'DELETE'
        self.request.user.has_perm.return_value = True
        self.request.data = {'speaker': '1'}
        self.view_instance.manage_speaker(self.request)
        mock_speaker.objects.get.assert_called_with(pk=1)
        mock_speaker.objects.get.return_value.delete.assert_called_with()
Exemplo n.º 5
0
 def setUp(self):
     self.request = MagicMock()
     self.view_instance = ItemViewSet()
     self.view_instance.request = self.request
     self.view_instance.get_object = get_object_mock = MagicMock()
     get_object_mock.return_value = self.mock_item = MagicMock()
Exemplo n.º 6
0
 def setUp(self):
     self.request = MagicMock()
     self.view_instance = ItemViewSet()
     self.view_instance.request = self.request
     self.view_instance.get_object = get_object_mock = MagicMock()
     get_object_mock.return_value = self.mock_item = MagicMock()
Exemplo n.º 7
0
class ItemViewSetManageSpeaker(TestCase):
    """
    Tests views of ItemViewSet to manage speakers.
    """

    def setUp(self):
        self.request = MagicMock()
        self.view_instance = ItemViewSet()
        self.view_instance.request = self.request
        self.view_instance.get_object = get_object_mock = MagicMock()
        get_object_mock.return_value = self.mock_item = MagicMock()

    @patch("openslides.agenda.views.inform_changed_data")
    @patch("openslides.agenda.views.has_perm")
    @patch("openslides.agenda.views.Speaker")
    def test_add_oneself_as_speaker(self, mock_speaker, mock_has_perm, mock_icd):
        self.request.method = "POST"
        self.request.user = 1
        mock_has_perm.return_value = True
        self.request.data = {}
        self.mock_item.speaker_list_closed = False

        self.view_instance.manage_speaker(self.request)

        mock_speaker.objects.add.assert_called_with(self.request.user, self.mock_item)

    @patch("openslides.agenda.views.inform_changed_data")
    @patch("openslides.agenda.views.has_perm")
    @patch("openslides.agenda.views.get_user_model")
    @patch("openslides.agenda.views.Speaker")
    def test_add_someone_else_as_speaker(
        self, mock_speaker, mock_get_user_model, mock_has_perm, mock_icd
    ):
        self.request.method = "POST"
        self.request.user = 1
        self.request.data = {
            "user": "******"
        }  # It is assumed that the request user has pk!=2.
        mock_get_user_model.return_value = MockUser = MagicMock()
        MockUser.objects.get.return_value = mock_user = MagicMock()
        mock_has_perm.return_value = True

        self.view_instance.manage_speaker(self.request)

        MockUser.objects.get.assert_called_with(pk=2)
        mock_speaker.objects.add.assert_called_with(mock_user, self.mock_item)

    @patch("openslides.agenda.views.Speaker")
    def test_remove_oneself(self, mock_speaker):
        self.request.method = "DELETE"
        self.request.data = {}
        self.view_instance.manage_speaker(self.request)
        mock_queryset = mock_speaker.objects.filter.return_value.exclude.return_value
        mock_queryset.get.return_value.delete.assert_called_with()

    @patch("openslides.agenda.views.inform_changed_data")
    @patch("openslides.agenda.views.has_perm")
    @patch("openslides.agenda.views.Speaker")
    def test_remove_someone_else(
        self, mock_speaker, mock_has_perm, mock_inform_changed_data
    ):
        self.request.method = "DELETE"
        self.request.user = 1
        self.request.data = {"speaker": "1"}
        mock_has_perm.return_value = True

        self.view_instance.manage_speaker(self.request)

        mock_speaker.objects.get.assert_called_with(pk=1)
        mock_speaker.objects.get.return_value.delete.assert_called_with(
            skip_autoupdate=True
        )
        mock_inform_changed_data.assert_called_with(self.mock_item)