def test_validate_no_data(self):
        """
        Tests, that the validator raises a ValidationError, if not data is given.
        """
        serializer = UserFullSerializer()
        data = {}

        with self.assertRaises(ValidationError):
            serializer.validate(data)
    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'))
    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")