コード例 #1
0
 def test_answers_json_get(self):
     self.assertEqual(ManoSeimasUser.objects.count(), 0)
     test = factories.CompatTestFactory()
     resp = self.app.get(
         reverse('answers_json', kwargs={'test_id': test.id}))
     self.assertEqual(resp.json, {'answers': {}, 'test_id': test.id})
     # lazy user is created
     self.assertEqual(ManoSeimasUser.objects.count(), 1)
     self.assertEqual(UserResult.objects.count(), 0)
コード例 #2
0
 def test_answers_json_post(self):
     answers = {
         '1': 'yes',
         '2': 'no',
     }
     test = factories.CompatTestFactory()
     resp = self.app.post_json(
         reverse('answers_json', kwargs={'test_id': test.id}), answers)
     user = ManoSeimasUser.objects.first()
     self.assertEqual(resp.json, {'answers': answers, 'test_id': test.id})
     # lazy user is created
     self.assertEqual(ManoSeimasUser.objects.count(), 1)
     # answers are saved
     self.assertEqual(UserResult.objects.count(), 1)
     ur = UserResult.objects.first()
     self.assertEqual(ur.user, user)
     self.assertEqual(ur.result, answers)
コード例 #3
0
    def test_topics_all(self):
        test = factories.CompatTestFactory()
        topic = factories.TopicFactory()
        factories.TestGroupFactory(test=test, topics=[topic])
        factories.TopicFactory(name='Darbo kodeksas')

        self.assertEqual(topics_all(test.id), [
            {
                'id': topic.pk,
                'group': 'Socialiniai reikalai',
                'name': 'Aukštojo mokslo reforma',
                'slug': 'aukstojo-mokslo-reforma',
                'description': 'Aukštojo mokslo reforma',
                'arguments': [],
                'votings': [],
                'image': None,
            },
        ])
コード例 #4
0
    def test_results_view_answers(self):
        answers = {
            '1': 'yes',
            '2': 'no',
        }
        topics = factories.TopicFactory.create_batch(
            2,
            name=factory.Iterator(['Socialinis modelis', 'Kariuomenė']),
        )
        test = factories.CompatTestFactory()
        factories.TestGroupFactory(topics=topics, test=test)
        resp = self.app.post(
            reverse('test_results', kwargs={'test_id': test.id}))
        self.assertEqual(resp.json['user_answers'], None)

        ur = factories.UserResultFactory(result=answers)
        self.app.set_user(ur.user)
        resp = self.app.post(
            reverse('test_results', kwargs={'test_id': test.id}))
        self.assertEqual(resp.json['user_answers'], answers)
コード例 #5
0
    def test_results_view(self):
        tp1, tp2 = topics = [
            factories.TopicFactory(name='Socialinis modelis'),
            factories.TopicFactory(name='Kariuomenė'),
        ]

        data = [
            ('1', 'DP', 'Jonas', 'Jonaitis', [1, -0.3]),
            ('2', 'DP', 'Petras', 'Petraitis', [1, 0.5]),
            ('3', 'LLS', 'Jonas', 'Petraitis', [-0.8, 1]),
        ]

        genpos = lambda positions: {
            topic.pk: position
            for topic, position in zip(topics, positions)
        }

        GroupFactory(abbr='DP',
                     name='Darbo partijos frakcija',
                     positions=genpos([1, 0.3]))
        GroupFactory(abbr='LLS',
                     name='Liberalų sąjūdžio frakcija',
                     positions=genpos([0.5, -0.3]))

        mps = []
        for p_asm_id, fraction, first_name, last_name, positions in data:
            group = Group.objects.get(abbr=fraction)
            mp = ParliamentMemberFactory(
                source_id=p_asm_id,
                first_name=first_name,
                last_name=last_name,
                term_of_office='2012-2016',
                positions=genpos(positions),
            )
            GroupMembershipFactory(member=mp, group=group)
            mps.append(mp)

        mp1, mp2, mp3 = mps
        gr1, gr2 = Group.objects.filter(abbr__in=['DP', 'LLS']).order_by('pk')

        test = factories.CompatTestFactory()
        factories.TestGroupFactory(topics=topics, test=test)

        resp = self.app.post(
            reverse('test_results', kwargs={'test_id': test.id}))

        fractions = [{
            'title': x['title'],
            'short_title': x['short_title'],
            'answers': {int(k): v
                        for k, v in x['answers'].items()},
            'members_amount': x['members_amount'],
        } for x in resp.json['fractions']]
        self.assertEqual(fractions, [
            {
                'title': 'Darbo partijos frakcija',
                'short_title': 'DP',
                'answers': {
                    int(tp1.pk): 1,
                    int(tp2.pk): 0.3
                },
                'members_amount': 2,
            },
            {
                'title': 'Liberalų sąjūdžio frakcija',
                'short_title': 'LLS',
                'answers': {
                    int(tp1.pk): 0.5,
                    int(tp2.pk): -0.3
                },
                'members_amount': 1,
            },
        ])

        mps = [{
            'name': x['name'],
            'fraction': x['fraction'],
            'answers': {int(k): v
                        for k, v in x['answers'].items()},
        } for x in resp.json['mps']]
        self.assertEqual(mps, [
            {
                'name': 'Jonas Jonaitis',
                'fraction': 'DP',
                'answers': {
                    int(tp1.pk): 1,
                    int(tp2.pk): -0.3
                }
            },
            {
                'name': 'Petras Petraitis',
                'fraction': 'DP',
                'answers': {
                    int(tp1.pk): 1,
                    int(tp2.pk): 0.5
                }
            },
            {
                'name': 'Jonas Petraitis',
                'fraction': 'LLS',
                'answers': {
                    int(tp1.pk): -0.8,
                    int(tp2.pk): 1
                }
            },
        ])