cab53f0434
Renamed model to Topic. Added migrations file. Fixed #2402.
65 lines
3.0 KiB
Python
65 lines
3.0 KiB
Python
from openslides.agenda.models import Item, Speaker
|
|
from openslides.topics.models import Topic
|
|
from openslides.users.models import User
|
|
from openslides.utils.exceptions import OpenSlidesError
|
|
from openslides.utils.test import TestCase
|
|
|
|
|
|
class ListOfSpeakerModelTests(TestCase):
|
|
def setUp(self):
|
|
self.item1 = Topic.objects.create(title='item1').agenda_item
|
|
self.item2 = Topic.objects.create(title='item2').agenda_item
|
|
self.speaker1 = User.objects.create(username='user1')
|
|
self.speaker2 = User.objects.create(username='user2')
|
|
|
|
def test_append_speaker(self):
|
|
# Append speaker1 to the list of item1
|
|
speaker1_item1 = Speaker.objects.add(self.speaker1, self.item1)
|
|
self.assertTrue(Speaker.objects.filter(user=self.speaker1, item=self.item1).exists())
|
|
|
|
# Append speaker1 to the list of item2
|
|
speaker1_item2 = Speaker.objects.add(self.speaker1, self.item2)
|
|
self.assertTrue(Speaker.objects.filter(user=self.speaker1, item=self.item2).exists())
|
|
|
|
# Append speaker2 to the list of item1
|
|
speaker2_item1 = Speaker.objects.add(self.speaker2, self.item1)
|
|
self.assertTrue(Speaker.objects.filter(user=self.speaker2, item=self.item1).exists())
|
|
|
|
# Try to append speaker 1 again to the list of item1
|
|
with self.assertRaises(OpenSlidesError):
|
|
Speaker.objects.add(self.speaker1, self.item1)
|
|
|
|
# Check time and weight
|
|
for object in (speaker1_item1, speaker2_item1, speaker1_item2):
|
|
self.assertIsNone(object.begin_time)
|
|
self.assertIsNone(object.end_time)
|
|
self.assertEqual(speaker1_item1.weight, 1)
|
|
self.assertEqual(speaker1_item2.weight, 1)
|
|
self.assertEqual(speaker2_item1.weight, 2)
|
|
|
|
def test_open_close_list_of_speaker(self):
|
|
self.assertFalse(Item.objects.get(pk=self.item1.pk).speaker_list_closed)
|
|
self.item1.speaker_list_closed = True
|
|
self.item1.save()
|
|
self.assertTrue(Item.objects.get(pk=self.item1.pk).speaker_list_closed)
|
|
|
|
def test_speak_and_finish(self):
|
|
speaker1_item1 = Speaker.objects.add(self.speaker1, self.item1)
|
|
self.assertIsNone(speaker1_item1.begin_time)
|
|
self.assertIsNone(speaker1_item1.end_time)
|
|
speaker1_item1.begin_speech()
|
|
self.assertIsNotNone(Speaker.objects.get(pk=speaker1_item1.pk).begin_time)
|
|
self.assertIsNone(Speaker.objects.get(pk=speaker1_item1.pk).weight)
|
|
speaker1_item1.end_speech()
|
|
self.assertIsNotNone(Speaker.objects.get(pk=speaker1_item1.pk).end_time)
|
|
|
|
def test_finish_when_other_speaker_begins(self):
|
|
speaker1_item1 = Speaker.objects.add(self.speaker1, self.item1)
|
|
speaker2_item1 = Speaker.objects.add(self.speaker2, self.item1)
|
|
speaker1_item1.begin_speech()
|
|
self.assertIsNone(speaker1_item1.end_time)
|
|
self.assertIsNone(speaker2_item1.begin_time)
|
|
speaker2_item1.begin_speech()
|
|
self.assertIsNotNone(Speaker.objects.get(user=self.speaker1, item=self.item1).end_time)
|
|
self.assertIsNotNone(speaker2_item1.begin_time)
|