Exemple #1
0
 def create_voters(self, v):
     for i in range(100):
         u, _ = User.objects.get_or_create(username='******'.format(i))
         u.is_active = True
         u.save()
         c = Census(voter_id=u.id, voting_id=v.id)
         c.save()
    def test_get_voting_per_user(self):

        for i in range(2):
            q = Question(desc='test question')
            q.save()
            for j in range(5):
                opt = QuestionOption(question=q,
                                     option='option {}'.format(j + 1))
                opt.save()
            v = Voting(name='test voting', question=q, tipe='testType')
            v.save()

            a, _ = Auth.objects.get_or_create(url=settings.BASEURL,
                                              defaults={
                                                  'me': True,
                                                  'name': 'test auth'
                                              })
            a.save()
            v.auths.add(a)

        u, _ = User.objects.get_or_create(username='******')
        u.is_active = True
        u.save()

        for v in Voting.objects.all():
            c = Census(voter_id=u.id, voting_id=v.id)
            c.save()

        response = self.client.get('/voting/user/?id={}'.format(u.id))
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.data), 2)
Exemple #3
0
    def test_voting_status(self):
        data = {"voting": 5001, "voter": 1, "vote": {"a": 30, "b": 55}}
        census = Census(voting_id=5001, voter_id=1)
        census.save()
        # not opened
        self.voting.start_date = timezone.now() + datetime.timedelta(days=1)
        self.voting.save()
        user = self.get_or_create_user(1)
        self.login(user=user.username)
        response = self.client.post('/store/', data, format='json')
        self.assertEqual(response.status_code, 401)

        # not closed
        self.voting.start_date = timezone.now() - datetime.timedelta(days=1)
        self.voting.save()
        self.voting.end_date = timezone.now() + datetime.timedelta(days=1)
        self.voting.save()
        response = self.client.post('/store/', data, format='json')
        self.assertEqual(response.status_code, 200)

        # closed
        self.voting.end_date = timezone.now() - datetime.timedelta(days=1)
        self.voting.save()
        response = self.client.post('/store/', data, format='json')
        self.assertEqual(response.status_code, 401)
Exemple #4
0
    def gen_votes(self):
        votings = [random.randint(1, 5000) for i in range(10)]
        users = [random.randint(3, 5002) for i in range(50)]
        for v in votings:
            a = random.randint(2, 500)
            b = random.randint(2, 500)
            self.gen_voting(v)
            random_user = random.choice(users)
            user = self.get_or_create_user(random_user)
            self.login(user=user.username)
            census = Census(voting_id=v, voter_id=random_user)
            census.save()
            data = {
                "voting": v,
                "voter": random_user,
                "vote": {
                    "a": a,
                    "b": b
                }
            }
            response = self.client.post('/store/', data, format='json')
            self.assertEqual(response.status_code, 200)

        self.logout()
        return votings, users
Exemple #5
0
    def test_store_vote(self):
        VOTING_PK = 345
        CTE_A = 96
        CTE_B = 184
        census = Census(voting_id=VOTING_PK, voter_id=1)
        census.save()
        self.gen_voting(VOTING_PK)
        data = {
            "voting": VOTING_PK,
            "voter": 1,
            "vote": {
                "a": CTE_A,
                "b": CTE_B
            }
        }
        user = self.get_or_create_user(1)
        self.login(user=user.username)
        response = self.client.post('/store/', data, format='json')
        self.assertEqual(response.status_code, 200)

        self.assertEqual(Vote.objects.count(), 1)
        self.assertEqual(Vote.objects.first().voting_id, VOTING_PK)
        self.assertEqual(Vote.objects.first().voter_id, 1)
        self.assertEqual(Vote.objects.first().a, CTE_A)
        self.assertEqual(Vote.objects.first().b, CTE_B)
Exemple #6
0
 def create(self, request, *args, **kwargs):
     voting_id = request.data.get('voting_id')
     voters = request.data.get('voters')
     try:
         for voter in voters:
             census = Census(voting_id=voting_id, voter_id=voter)
             census.save()
     except IntegrityError:
         return Response('Error try to create census', status=ST_409)
     return Response('Census created', status=ST_201)
Exemple #7
0
 def test_wrong_question_id_parameter(self):
     data = {"voting": 5001, "voter": 2, "vote": [{"a": '96', "b": '184'}]}
     self.voting.start_date = timezone.now() - datetime.timedelta(days=1)
     self.voting.save()
     census = Census(voting_id=5001, voter_id=2)
     census.save()
     user = self.get_or_create_user(2)
     self.login(user=user.username)
     response = self.client.post('/store/', data, format='json')
     self.assertEqual(response.status_code, 400)
Exemple #8
0
def createUsers(v):
    users = []
    for i in range(4):
        u, _ = User.objects.get_or_create(username='******'.format(i + 1))
        u.is_active = True
        u.set_password('usuario {}'.format(i + 1))
        u.save()
        users.append(u)
        c = Census(voter_id=u.id, voting_id=v.id)
        c.save()
    return users
Exemple #9
0
    def setUp(self):
        # Create user
        self.client = APIClient()
        mods.mock_query(self.client)
        u = UserProfile(id=1, username='******', sex='M')
        u.set_password('123')
        u.save()
        token= mods.post('authentication', entry_point='/login/', json={'username':'******', 'password': '******'})
        # Add session token
        session = self.client.session
        session['user_token'] = token
        session.save()

        #Create voting

        #Create question 1
        q1 = Question(id=1,desc='Unique option question', option_types=1)
        q1.save()
        for i in range(3):
            opt = QuestionOption(question=q1, option='option {}'.format(i+1))
            opt.save()

        #Create question 2
        q2 = Question(id=2,desc='Multiple option question', option_types=2)
        q2.save()
        for i in range(4):
            opt = QuestionOption(question=q2, option='option {}'.format(i+1))
            opt.save()

        #Create question 3
        q3 = Question(id=3,desc='Rank order scale question', option_types=3)
        q3.save()
        for i in range(5):
            opt = QuestionOption(question=q3, option='option {}'.format(i+1))
            opt.save()

        v = Voting(id=1, name='Single question voting',desc='Single question voting...', points=1, start_date=timezone.now())
        v.save()
        v.question.add(q1), v.question.add(q2), v.question.add(q3)
        a, _ = Auth.objects.get_or_create(url=settings.BASEURL,
                                          defaults={'me': True, 'name': 'base'})
        a.save()
        v.auths.add(a)
        Voting.create_pubkey(v)
        #Add user to census
        census = Census(voting_id=v.id, voter_id=u.id)
        census.save()
Exemple #10
0
    def setUp(self):

        self.client = APIClient()
        mods.mock_query(self.client)

        voter1 = User(username='******', id="2")
        voter1.set_password('voter')
        voter1.save()

        admin = User(username='******', is_staff=True)
        admin.set_password('admin')
        admin.is_superuser = True
        admin.save()

        q = Question(desc='Preferences question', preferences=True)
        q.save()
        for i in range(3):
            optPref = QuestionOption(question=q, option='option {}'.format(i+1))
            optPref.save()

        q1 = Question(desc='Simple question')
        q1.save()
        for i in range(3):
            optPref = QuestionOption(question=q1, option='option {}'.format(i+1))
            optPref.save()

        q2 = Question(desc='yes/no question', si_no=True)
        q2.save()

        v = Voting(name='test voting', id="2")
        v.save()

        v2= Voting(name='test voting yes no', id="3")
        v2.save()

        a, _ = Auth.objects.get_or_create(url=settings.BASEURL, defaults={'me': True, 'name': 'test auth'})
        a.save()

        v.auths.add(a)
        v.question.add(q)
        v2.auths.add(a)
        v2.question.add(q2)
        v.save()
        v2.save()

        census = Census(voting_id=2, voter_id=2)
        census.save()
        census2 = Census(voting_id=3, voter_id=2)
        census2.save()

        options = webdriver.ChromeOptions()
        options.add_argument('--no-sandbox')
        options.headless = True
        self.driver = webdriver.Chrome(options=options)

        super().setUp()
Exemple #11
0
    def test_store_vote(self):
        VOTING_PK = 345
        CTE = [{'a': 96, 'b': 184}, {'a': 33, 'b': 45}]
        census = Census(voting_id=VOTING_PK, voter_id=1)
        census.save()
        self.gen_voting(VOTING_PK)
        data = {"voting": VOTING_PK, "voter": 1, "votes": CTE}
        user = self.get_or_create_user(1)
        self.login(user=user.username)
        response = self.client.post('/store/', data, format='json')
        self.assertEqual(response.status_code, 200)

        self.assertEqual(Vote.objects.count(), 1)
        self.assertEqual(Vote.objects.first().voting_id, VOTING_PK)
        self.assertEqual(Vote.objects.first().voter_id, 1)
        self.assertEqual(Vote.objects.first().ciphers.first().a, CTE[0]['a'])
        self.assertEqual(Vote.objects.first().ciphers.first().b, CTE[0]['b'])
        self.assertEqual(Vote.objects.first().ciphers.last().a, CTE[1]['a'])
        self.assertEqual(Vote.objects.first().ciphers.last().b, CTE[1]['b'])
Exemple #12
0
 def test_duplicate_vote(self):
     data = {
         "voting": 5001,
         "voter": 1,
         "question_id": 1,
         "vote": [{
             "a": '30',
             "b": '55'
         }]
     }
     census = Census(voting_id=5001, voter_id=1)
     census.save()
     # first vote
     self.voting.start_date = timezone.now() - datetime.timedelta(days=1)
     self.voting.save()
     user = self.get_or_create_user(1)
     self.login(user=user.username)
     response = self.client.post('/store/', data, format='json')
     self.assertEqual(response.status_code, 200)
     # second vote
     response = self.client.post('/store/', data, format='json')
     self.assertEqual(response.status_code, 403)
Exemple #13
0
    def test_get_votings_success(self):
        VOTING_PK = 1994
        USER_PK = 46

        # Generate user
        user = self.get_or_create_user(46)

        #Generate voting
        voting = self.gen_voting(VOTING_PK)

        #Add user to census
        census = Census(voting_id=VOTING_PK, voter_id=46)
        census.save()

        #Generate vote
        a1 = random.randint(2, 500)
        b1 = random.randint(2, 500)
        vote = Vote(voting_id=VOTING_PK, voter_id=46, a=a1, b=b1)
        vote.save()

        response = self.client.get('/store/voting/voter/{}/'.format(46))

        # assert response
        self.assertEqual(response.status_code, 200)
Exemple #14
0
    def test(self):
        #Create and save question
        q = Question(desc='Question1')
        q.save()

        #Create and save question options
        for i in range(2):
            opt = QuestionOption(question=q, option='option {}'.format(i+1))
            opt.save()

        #Create and save votation with question
        v = Voting(name='Votation1')
        v.save()

        v.questions.add(q)

        #Add auth to votation and save it
        a, _ = Auth.objects.get_or_create(url=settings.BASEURL,
                                          defaults={'me': True, 'name': 'test auth'})
        a.save()
        v.auths.add(a)

        #Create and save multiple voters for votation
        for i in range(2):
            u, _ = User.objects.get_or_create(username='******'.format(i+1))
            u.is_active = True
            u.save()
            c = Census(voter_id=u.id, voting_id=v.id)
            c.save()

        #...
        #Votation created
        #...

        #Start votation
        v.create_pubkey()
        v.start_date = timezone.now()
        v.save()

        #...
        #Votation started
        #...

        #Method copy from voting/test.py
        #Create and add votes
        voters = list(Census.objects.filter(voting_id=v.id))
        voter = voters.pop()
        clear = {}
        for opt in v.questions.first().options.all():
            clear[opt.number] = 0
            for i in range(2):
                a, b = self.encrypt_msg(opt.number, v)
                data = {
                    'voting': v.id,
                    'voter': voter.voter_id,
                    'vote': { 'a': a, 'b': b },
                }
                clear[opt.number] += 1
                user = self.get_or_create_user(voter.voter_id)
                self.login(user=user.username)
                #voter = voters.pop()
                mods.post('store', json=data)


        #Login with admin
        self.login()

        #Tally Done
        v.tally_votes()
        
        #...
        #Votation ended
        #...
        
        #Method for test views's method
        response = self.client.get('/visualizer/{}/'.format(v.pk))
        self.assertEqual(response.status_code, 200)

        #Check 1
        self.assertEqual(response.context['voting_id'], v.pk)

        #Check 2
        self.assertEqual('Votation1' in response.context['voting'].values() , True)

        #Check 3
        varTemp = response.context['voting']
        self.assertEqual('Question1' in varTemp['questions'][0].values() , True)
Exemple #15
0
class VisualizerVotesTestCase(BaseTestCase):
    def setUp(self):
        q = Question(desc="Aquí tiene su pregunta: ")
        q.save()

        self.vo1 = Votacion(id=1,
                            titulo="¿Te gusta EGC?",
                            fecha_inicio=datetime.datetime(2020, 7, 6))
        self.vo2 = Votacion(id=2, titulo="¿Te gusta PGPI?")
        self.vo3 = Votacion(id=3,
                            titulo="¿Te gusta AII?",
                            fecha_inicio=datetime.datetime(2020, 10, 6),
                            fecha_fin=datetime.datetime(2021, 7, 6))

        self.vp1 = VotacionPreferencia(id=1,
                                       titulo="¿Te gusta EGC?",
                                       fecha_inicio=datetime.datetime(
                                           2020, 7, 6))
        self.vp2 = VotacionPreferencia(id=2, titulo="¿Te gusta PGPI?")
        self.vp3 = VotacionPreferencia(id=3,
                                       titulo="¿Te gusta AII?",
                                       fecha_inicio=datetime.datetime(
                                           2020, 10, 6),
                                       fecha_fin=datetime.datetime(2021, 7, 6))

        self.vm1 = VotacionMultiple(id=1,
                                    titulo="¿Te gusta EGC?",
                                    fecha_inicio=datetime.datetime(2020, 7, 6))
        self.vm2 = VotacionMultiple(id=2, titulo="¿Te gusta PGPI?")
        self.vm3 = VotacionMultiple(id=3,
                                    titulo="¿Te gusta AII?",
                                    fecha_inicio=datetime.datetime(
                                        2020, 10, 6),
                                    fecha_fin=datetime.datetime(2021, 7, 6))

        self.vb1 = VotacionBinaria(id=1,
                                   titulo="¿Te gusta EGC?",
                                   fecha_inicio=datetime.datetime(2020, 7, 6))
        self.vb2 = VotacionBinaria(id=2, titulo="¿Te gusta PGPI?")
        self.vb3 = VotacionBinaria(id=3,
                                   titulo="¿Te gusta AII?",
                                   fecha_inicio=datetime.datetime(2020, 10, 6),
                                   fecha_fin=datetime.datetime(2021, 7, 6))

        self.v1 = Voting(id=1,
                         name="¿Te gusta EGC?",
                         start_date=datetime.datetime(2020, 7, 6),
                         question=q)
        self.v2 = Voting(id=2, name="¿Te gusta PGPI?", question=q)
        self.v3 = Voting(id=3,
                         name="¿Te gusta AII?",
                         start_date=datetime.datetime(2020, 10, 6),
                         end_date=datetime.datetime(2021, 7, 6),
                         question=q)

        self.vo1.save()
        self.vo2.save()
        self.vo3.save()

        self.vp1.save()
        self.vp2.save()
        self.vp3.save()

        self.vm1.save()
        self.vm2.save()
        self.vm3.save()

        self.vb1.save()
        self.vb2.save()
        self.vb3.save()

        self.v1.save()
        self.v2.save()
        self.v3.save()
        self.c = Census(id=1, voting_id=1, voter_id=1)
        self.c.save()
        super().setUp()

    def tearDown(self):
        super().tearDown()
        self.c = None
        self.user = None

        self.vo1 = None
        self.vo2 = None
        self.vo3 = None

        self.vp1 = None
        self.vp2 = None
        self.vp3 = None

        self.vm1 = None
        self.vm2 = None
        self.vm3 = None

        self.vb1 = None
        self.vb2 = None
        self.vb3 = None

        self.v1 = None
        self.v2 = None
        self.v3 = None

    def test_visualizer_index_page(self):
        self.login()
        response = self.client.get('/visualizer/', follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed('visualizer/index.html')

    def test_visualizer_default(self):
        self.login()
        response = self.client.get('/visualizer/default', follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed('visualizer/listdefault.html')
        response = self.client.get('/visualizer/{}'.format(self.v1.id),
                                   follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed('visualizer/visualizer.html')
        v1 = Voting.objects.get(name="¿Te gusta EGC?")
        self.assertEqual(v1.name, "¿Te gusta EGC?")

    def test_visualizer_normal(self):
        self.login()
        response = self.client.get('/visualizer/normal', follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed('visualizer/list.html')
        response = self.client.get('/visualizer/normal/{}'.format(self.vo1.id),
                                   follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed('visualizer/resultnormal.html')
        vo1 = Votacion.objects.get(titulo="¿Te gusta EGC?")
        self.assertEqual(vo1.titulo, "¿Te gusta EGC?")

    def test_visualizer_preferencia(self):
        self.login()
        response = self.client.get('/visualizer/preferencia', follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed('visualizer/list.html')
        response = self.client.get('/visualizer/preferencia/{}'.format(
            self.vp2.id),
                                   follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed('visualizer/resultpref.html')
        vp2 = Votacion.objects.get(titulo="¿Te gusta PGPI?")
        self.assertEqual(vp2.titulo, "¿Te gusta PGPI?")

    def test_visualizer_multiple(self):
        self.login()
        response = self.client.get('/visualizer/multiple', follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed('visualizer/list.html')
        response = self.client.get('/visualizer/multiple/{}'.format(
            self.vm3.id),
                                   follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed('visualizer/resultmul.html')
        vm3 = Votacion.objects.get(titulo="¿Te gusta AII?")
        self.assertEqual(vm3.titulo, "¿Te gusta AII?")

    def test_visualizer_binaria(self):
        self.login()
        response = self.client.get('/visualizer/binaria', follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed('visualizer/list.html')
        response = self.client.get('/visualizer/binaria/{}'.format(
            self.vb2.id),
                                   follow=True)
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed('visualizer/resultbin.html')
        vb2 = VotacionBinaria.objects.get(titulo="¿Te gusta PGPI?")
        self.assertEqual(vb2.titulo, "¿Te gusta PGPI?")
Exemple #16
0
    def setUp(self):
        q = Question(desc="Aquí tiene su pregunta: ")
        q.save()

        self.vo1 = Votacion(id=1,
                            titulo="¿Te gusta EGC?",
                            fecha_inicio=datetime.datetime(2020, 7, 6))
        self.vo2 = Votacion(id=2, titulo="¿Te gusta PGPI?")
        self.vo3 = Votacion(id=3,
                            titulo="¿Te gusta AII?",
                            fecha_inicio=datetime.datetime(2020, 10, 6),
                            fecha_fin=datetime.datetime(2021, 7, 6))

        self.vp1 = VotacionPreferencia(id=1,
                                       titulo="¿Te gusta EGC?",
                                       fecha_inicio=datetime.datetime(
                                           2020, 7, 6))
        self.vp2 = VotacionPreferencia(id=2, titulo="¿Te gusta PGPI?")
        self.vp3 = VotacionPreferencia(id=3,
                                       titulo="¿Te gusta AII?",
                                       fecha_inicio=datetime.datetime(
                                           2020, 10, 6),
                                       fecha_fin=datetime.datetime(2021, 7, 6))

        self.vm1 = VotacionMultiple(id=1,
                                    titulo="¿Te gusta EGC?",
                                    fecha_inicio=datetime.datetime(2020, 7, 6))
        self.vm2 = VotacionMultiple(id=2, titulo="¿Te gusta PGPI?")
        self.vm3 = VotacionMultiple(id=3,
                                    titulo="¿Te gusta AII?",
                                    fecha_inicio=datetime.datetime(
                                        2020, 10, 6),
                                    fecha_fin=datetime.datetime(2021, 7, 6))

        self.vb1 = VotacionBinaria(id=1,
                                   titulo="¿Te gusta EGC?",
                                   fecha_inicio=datetime.datetime(2020, 7, 6))
        self.vb2 = VotacionBinaria(id=2, titulo="¿Te gusta PGPI?")
        self.vb3 = VotacionBinaria(id=3,
                                   titulo="¿Te gusta AII?",
                                   fecha_inicio=datetime.datetime(2020, 10, 6),
                                   fecha_fin=datetime.datetime(2021, 7, 6))

        self.v1 = Voting(id=1,
                         name="¿Te gusta EGC?",
                         start_date=datetime.datetime(2020, 7, 6),
                         question=q)
        self.v2 = Voting(id=2, name="¿Te gusta PGPI?", question=q)
        self.v3 = Voting(id=3,
                         name="¿Te gusta AII?",
                         start_date=datetime.datetime(2020, 10, 6),
                         end_date=datetime.datetime(2021, 7, 6),
                         question=q)

        self.vo1.save()
        self.vo2.save()
        self.vo3.save()

        self.vp1.save()
        self.vp2.save()
        self.vp3.save()

        self.vm1.save()
        self.vm2.save()
        self.vm3.save()

        self.vb1.save()
        self.vb2.save()
        self.vb3.save()

        self.v1.save()
        self.v2.save()
        self.v3.save()
        self.c = Census(id=1, voting_id=1, voter_id=1)
        self.c.save()
        super().setUp()
Exemple #17
0
    def setUp(self):
        #Create user 1
        self.client = APIClient()
        mods.mock_query(self.client)
        u1 = UserProfile(id=1, username='******', sex='M')
        u1.set_password('123')
        u1.save()
        token1 = mods.post('authentication', entry_point='/login/', json={'username':'******', 'password': '******'})
        #Add session token 1
        session = self.client.session
        session['user_token'] = token1
        session['voter_id'] = u1.id
        session.save()

        #Create voting 1

        #Create question 1
        q1 = Question(id=1,desc='Unique option question', option_types=1)
        q1.save()
        for i in range(3):
            opt = QuestionOption(question=q1, option='option {}'.format(i+1))
            opt.save()

        #Create question 2
        q2 = Question(id=2,desc='Multiple option question', option_types=2)
        q2.save()
        for i in range(4):
            opt = QuestionOption(question=q2, option='option {}'.format(i+1))
            opt.save()

        #Create question 3
        q3 = Question(id=3,desc='Rank order scale question', option_types=3)
        q3.save()
        for i in range(5):
            opt = QuestionOption(question=q3, option='option {}'.format(i+1))
            opt.save()

        v1 = Voting(id=1, name='Single question voting',desc='Single question voting...', points=1, start_date=timezone.now())
        v1.save()
        v1.question.add(q1), v1.question.add(q2), v1.question.add(q3)
        a, _ = Auth.objects.get_or_create(url=settings.BASEURL,
                                          defaults={'me': True, 'name': 'base'})
        a.save()
        v1.auths.add(a)
        Voting.create_pubkey(v1)

        #Create voting 2

        #Create question 4
        q4 = Question(id=4, desc='Unique option question 2', option_types=1)
        q4.save()
        for i in range(3):
            opt = QuestionOption(question=q4, option='option {}'.format(i+1))
            opt.save()

        #Create question 5
        q5 = Question(id=5, desc='Multiple option question 2', option_types=2)
        q5.save()
        for i in range(4):
            opt = QuestionOption(question=q5, option='option {}'.format(i+1))
            opt.save()

        #Create question 6
        q6 = Question(id=6, desc='Rank order scale question 2', option_types=3)
        q6.save()
        for i in range(5):
            opt = QuestionOption(question=q6, option='option {}'.format(i+1))
            opt.save()

        v2 = Voting(id=2, name='Single question voting 2',desc='Single question voting...', points=1, start_date=M_DATE, end_date=E_DATE)
        v2.save()
        v2.question.add(q4), v2.question.add(q5), v2.question.add(q6)
        v2.auths.add(a)
        Voting.create_pubkey(v2)

        #Add user to census
        census1 = Census(voting_id=v1.id, voter_id=u1.id)
        census1.save()
        census2 = Census(voting_id=v2.id, voter_id=u1.id)
        census2.save()

        #Create suggestion 1
        s1 = SuggestingForm(id=1, user_id=u1.id, title="Suggesting title", suggesting_date=S_DATE, content="Suggesting content...", send_date=NOW_DATE, is_approved=True)
        s1.save()
    def setUp(self):
        self.booth = BoothTests()
        self.booth.setUp()

        options = webdriver.ChromeOptions()
        options.headless = True
        self.driver = webdriver.Chrome(options=options)
        u = UserProfile(id=1, username='******', sex='M')
        u.set_password('123')
        u.save()
        token = mods.post('authentication',
                          entry_point='/login/',
                          json={
                              'username': '******',
                              'password': '******'
                          })
        # Add session token
        session = self.client.session
        session['user_token'] = token
        session.save()

        q2 = Question(id=2, desc='Multiple option question', option_types=2)
        q2.save()
        for i in range(4):
            opt = QuestionOption(question=q2, option='option {}'.format(i + 1))
            opt.save()

        q3 = Question(id=3, desc='Rank order scale question', option_types=3)
        q3.save()
        for i in range(5):
            opt = QuestionOption(question=q3, option='option {}'.format(i + 1))
            opt.save()

        a, _ = Auth.objects.get_or_create(url=settings.BASEURL,
                                          defaults={
                                              'me': True,
                                              'name': 'base'
                                          })
        a.save()
        v2 = Voting(id=2,
                    name='Rank question voting',
                    desc='Rank question voting...',
                    points=1,
                    start_date=timezone.now())
        v2.save()
        v2.question.add(q3)
        v3 = Voting(id=3,
                    name='Multiple question voting',
                    desc='Multiple question voting...',
                    points=1,
                    start_date=timezone.now())
        v3.save()
        v3.question.add(q2)

        v2.auths.add(a)
        Voting.create_pubkey(v2)
        #Add user to census
        census = Census(voting_id=v2.id, voter_id=u.id)
        census.save()

        v3.auths.add(a)
        Voting.create_pubkey(v3)
        #Add user to census
        census = Census(voting_id=v3.id, voter_id=u.id)
        census.save()

        super().setUp()