from django.test.client import Client from openslides.config.api import config from openslides.users.models import User from openslides.utils.test import TestCase class PersonalInfoWidget(TestCase): """ Tests the content of the personal info widget. """ def import_agenda(self): """ Helper function to make the module agenda optional. """ try: from openslides import agenda except ImportError: return False else: return agenda def import_motion(self): """ Helper function to make the module motion optional. """ try: from openslides import motion except ImportError: return False else: return motion def import_assignment(self): """ Helper function to make the module assignment optional. """ try: from openslides import assignment except ImportError: return False else: return assignment def setUp(self): self.user = User.objects.create_user('HansMeiser', 'default') self.client = Client() self.client.login(username='HansMeiser', password='default') def test_widget_appearance(self): response = self.client.get('/dashboard/') self.assertContains(response, 'My personal info', status_code=200) def test_item_list(self): agenda = self.import_agenda() if agenda: item_1 = agenda.models.Item.objects.create(title='My Item Title iw5ohNgee4eiYahb5Eiv') speaker = agenda.models.Speaker.objects.add(item=item_1, user=self.user) response = self.client.get('/dashboard/') self.assertContains(response, 'I am on the list of speakers of the following items:', status_code=200) self.assertContains(response, 'My Item Title iw5ohNgee4eiYahb5Eiv', status_code=200) speaker.begin_speach() response = self.client.get('/dashboard/') self.assertNotContains(response, 'My Item Title iw5ohNgee4eiYahb5Eiv', status_code=200) def test_submitter_list(self): motion = self.import_motion() if motion: motion_1 = motion.models.Motion.objects.create(title='My Motion Title pa8aeNohYai0ahge', text='My Motion Text') motion_2 = motion.models.Motion.objects.create(title='My Motion Title quielohL7vah1weochai', text='My Motion Text') motion.models.MotionSubmitter.objects.create(motion=motion_1, person=self.user) motion.models.MotionSubmitter.objects.create(motion=motion_2, person=self.user) response = self.client.get('/dashboard/') self.assertContains(response, 'I submitted the following motions:', status_code=200) self.assertContains(response, 'My Motion Title pa8aeNohYai0ahge', status_code=200) self.assertContains(response, 'My Motion Title quielohL7vah1weochai', status_code=200) def test_supporter_list(self): motion = self.import_motion() if motion: motion_1 = motion.models.Motion.objects.create(title='My Motion Title jahN9phaiThae5ooKubu', text='My Motion Text') motion_2 = motion.models.Motion.objects.create(title='My Motion Title vech9ash8aeh9eej2Ga2', text='My Motion Text') motion.models.MotionSupporter.objects.create(motion=motion_1, person=self.user) motion.models.MotionSupporter.objects.create(motion=motion_2, person=self.user) config['motion_min_supporters'] = 1 response = self.client.get('/dashboard/') self.assertContains(response, 'I support the following motions:', status_code=200) self.assertContains(response, 'My Motion Title jahN9phaiThae5ooKubu', status_code=200) self.assertContains(response, 'My Motion Title vech9ash8aeh9eej2Ga2', status_code=200) def test_candidate_list(self): assignment = self.import_assignment() if assignment: assignment_1 = assignment.models.Assignment.objects.create(name='Hausmeister ooKoh7roApoo3phe', posts=1) assignment_1.run(candidate=self.user, person=self.user) response = self.client.get('/dashboard/') self.assertContains(response, 'I am candidate for the following elections:', status_code=200) self.assertContains(response, 'Hausmeister ooKoh7roApoo3phe', status_code=200)