OpenSlides/tests/person_api/tests.py
Oskar Hahn 4b0c62d29a Fixes #721
Saving the anonymous user into a list of speakers.

Also raises an AttributeError if someone tries to save the anonymous user
into any person field.
2013-06-09 18:57:42 +02:00

48 lines
1.5 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
openslides.person_api.tests
~~~~~~~~~~~~~~~~~~~~~~~
Unit test for the person api.
:copyright: 2011 - 2013 by OpenSlides team, see AUTHORS.
:license: GNU GPL, see LICENSE for more details.
"""
from django.test.client import Client
from django.db.models.query import EmptyQuerySet
from django.contrib.auth.models import AnonymousUser
from openslides.utils.test import TestCase
from .models import TestPerson, TestModel
class ItemTest(TestCase):
def setUp(self):
self.person1 = TestPerson.objects.create(name='test1')
def test_update_of_person_field(self):
self.assertEqual(self.person1.person_id, 'test:1')
# save person field
test_object = TestModel.objects.create(person=self.person1)
self.assertEqual(test_object.person, self.person1)
# update person field
test_object.save()
self.assertEqual(TestModel.objects.get(pk=test_object.pk).person, self.person1)
def test_save_anonymous_user_in_person_field(self):
with self.assertRaisesRegexp(
AttributeError,
'An AnonymousUser can not be saved into the database.'):
TestModel.objects.create(person=AnonymousUser())
def test_save_unsupported_object_in_person_field(self):
with self.assertRaisesRegexp(
AttributeError,
'You can not save \'<type \'int\'>\' into a person field.'):
TestModel.objects.create(person=5)