from unittest import TestCase from unittest.mock import MagicMock, patch from openslides.users.serializers import UserFullSerializer from openslides.utils.rest_api import ValidationError class UserCreateUpdateSerializerTest(TestCase): def test_validate_no_data(self): """ Tests, that the validator raises a ValidationError, if not data is given. """ serializer = UserFullSerializer() data: object = {} with self.assertRaises(ValidationError): serializer.validate(data) @patch("openslides.users.serializers.User.objects.generate_username") def test_validate_no_username(self, generate_username): """ Tests, that an empty username is generated. """ generate_username.return_value = "test_value" serializer = UserFullSerializer() data = {"first_name": "TestName"} new_data = serializer.validate(data) self.assertEqual(new_data["username"], "test_value") def test_validate_no_username_in_patch_request(self): """ Tests, that an empty username is not set in a patch request context. """ view = MagicMock(action="partial_update") serializer = UserFullSerializer(context={"view": view}) data = {"first_name": "TestName"} new_data = serializer.validate(data) self.assertIsNone(new_data.get("username"))