コード例 #1
0
ファイル: test_mps.py プロジェクト: ManoSeimas/manoseimas.lt
    def test_jukneviciene(self):
        spider = MpsSpider()
        url = ('http://www.lrs.lt/sip/portal.show?p_r=8801&'
                 'p_k=1&p_a=seimo_narys&p_asm_id=178')
        response = HtmlResponse(url, body=fixture('mp_178.html'))

        items = list(spider.parse_person(response))
        self.assertEqual(len(items), 1)
        item = items[0]
        self.assertEqual(item['_id'], '178p')
        self.assertEqual(item['parliament'], ['2016-2020', '2012-2016', '2008-2012',
                                                '2004-2008', '2000-2004',
                                                '1996-2000','1990-1992'])
        self.assertEqual(item['first_name'], 'Rasa')
        self.assertEqual(item['last_name'], u'Juknevičienė')
        self.assertEqual(item['email'], ['*****@*****.**', '*****@*****.**'])
        self.assertEqual(item['phone'], ['852396711'])
        self.assertEqual(item['constituency'], u'Pagal sąrašą')
        self.assertEqual(item['raised_by'], (u'Tėvynės sąjunga - Lietuvos '
                                              u'krikščionys demokratai'))
        self.assertEqual(item['home_page'], 'http://www.lrs.lt/sip/portal.show?p_r=3034&p_k=1')
        self.assertEqual(
            item['photo'],
            'http://www.lrs.lt/SIPIS/sn_foto/2016/rasa_jukneviciene.jpg'
        )
        self.assertEqual(len(item['groups']), 14)
コード例 #2
0
def parse_mp():
    spider = MpsSpider()
    url = ('http://www3.lrs.lt/pls/inter/w5_show?'
           'p_r=6113&p_k=1&p_a=5&p_asm_id=53911&p_kade_id=6')
    response = HtmlResponse(url, body=fixture('mp_53911.html'))
    items = list(spider.parse_person(response))
    return items[0]
コード例 #3
0
    def test_adomenas(self):
        spider = MpsSpider()
        url = (
            'http://www3.lrs.lt/pls/inter/w5_show?p_r=6113&p_k=1&p_a=5&p_asm_id=48690&p_kade_id=6'
        )
        url = ('http://www3.lrs.lt/pls/inter/w5_show?'
               'p_r=6113&p_k=1&p_a=5&p_asm_id=48690&p_kade_id=6')
        response = HtmlResponse(url, body=fixture('mp_48690.html'))

        items = list(spider.parse_person(response))
        self.assertEqual(len(items), 1)
        item = items[0]
        self.assertEqual(item['_id'], '48690p')
        self.assertEqual(item['parliament'], ['2008-2012'])
        self.assertEqual(item['first_name'], 'Mantas')
        self.assertEqual(item['last_name'], u'Adomėnas')
        self.assertEqual(item['dob'], '1972-10-01')
        self.assertEqual(item['email'], ['*****@*****.**'])
        self.assertEqual(item['phone'], ['2396631'])
        self.assertEqual(item['office_address'],
                         u'Odminių g. 3, 01122 Vilniaus m')
        self.assertEqual(item['constituency'],
                         u'Senamiesčio  (Nr. 2) apygardoje')
        self.assertEqual(item['raised_by'], (u'Tėvynės sąjunga - Lietuvos '
                                             u'krikščionys demokratai'))
        self.assertEqual(item['home_page'], 'http://www.adomenas.lt')
        self.assertEqual(item['candidate_page'],
                         ('http://www.vrk.lt/rinkimai/400_lt/Kandidatai/'
                          'Kandidatas19624/Kandidato19624Anketa.html'))
        self.assertEqual(item['photo'],
                         ('http://www3.lrs.lt/home'
                          '/seimo_nariu_nuotraukos/2008/mantas_adomenas.jpg'))
        self.assertEqual(len(item['groups']), 32)
        self.assertTrue(len(item['biography']) > 0)
コード例 #4
0
ファイル: test_mps.py プロジェクト: ManoSeimas/manoseimas.lt
def parse_mp():
    spider = MpsSpider()
    url = ('http://www.lrs.lt/sip/portal.show?p_r=8801&p_k'
        '=1&p_a=seimo_narys&p_asm_id=7190')
    response = HtmlResponse(url, body=fixture('mp_7190.html'))
    items = list(spider.parse_person(response))
    return items[0]
コード例 #5
0
    def test_baltraitiene(self):
        spider = MpsSpider()
        url = ('http://www3.lrs.lt/pls/inter/w5_show?'
               'p_a=5&p_asm_id=48114&p_k=1&p_kade_id=6&p_r=6113')
        response = HtmlResponse(url, body=fixture('mp_48114.html'))

        items = list(spider.parse_person(response))
        self.assertEqual(len(items), 1)
        item = items[0]

        self.assertEqual(item['first_name'], u'Virginija')
        self.assertEqual(item['last_name'], u'Baltraitienė')

        self.assertTrue(len(item['biography']) > 0)
コード例 #6
0
    def test_rutkelyte(self):
        spider = MpsSpider()
        url = ('http://www3.lrs.lt/pls/inter/w5_show?'
               'p_a=5&p_asm_id=7259&p_k=1&p_kade_id=6&p_r=6113')
        response = HtmlResponse(url, body=fixture('mp_7259.html'))

        items = list(spider.parse_person(response))
        self.assertEqual(len(items), 1)
        item = items[0]

        self.assertEqual(item['first_name'], u'Rūta')
        self.assertEqual(item['last_name'], u'Rutkelytė')
        self.assertEqual(item['constituency'], u'pagal sąrašą')
        self.assertEqual(item['office_address'], u'')

        self.assertTrue(len(item['biography']) > 0)
コード例 #7
0
    def test_jukneviciene(self):
        spider = MpsSpider()
        url = ('http://www3.lrs.lt/pls/inter/w5_show?'
               'p_r=6113&p_k=1&p_a=5&p_asm_id=178&p_kade_id=6')
        response = HtmlResponse(url, body=fixture('mp_178.html'))

        items = list(spider.parse_person(response))
        self.assertEqual(len(items), 1)
        item = items[0]

        self.assertEqual(item['dob'], '1958-01-26')
        self.assertEqual(
            item['parliament'],
            ['2008-2012', '2004-2008', '2000-2004', '1996-2000', '1990-1992'])
        self.assertEqual(len(item['groups']), 10)
        self.assertTrue(len(item['biography']) > 0)
コード例 #8
0
    def test_abramikiene(self):
        spider = MpsSpider()
        url = ('http://www3.lrs.lt/pls/inter/w5_show?'
               'p_a=5&p_asm_id=7229&p_k=1&p_kade_id=6&p_r=6113')
        response = HtmlResponse(url, body=fixture('mp_7229.html'))

        items = list(spider.parse_person(response))
        self.assertEqual(len(items), 1)
        item = items[0]

        self.assertEqual(item['first_name'], u'Vilija')
        self.assertEqual(item['last_name'], u'Aleknaitė Abramikienė')
        self.assertEqual(item['dob'], '1957-05-04')
        self.assertEqual(len(item['groups']), 21)

        self.assertTrue(len(item['biography']) > 0)
コード例 #9
0
    def test_mp_profile(self):
        crawl(
            Pipeline=ManoSeimasModelPersistPipeline, spider=MpsSpider(),
            param='p_asm_id', method='parse_person', path='mp_%s.html', urls=[
                'http://www3.lrs.lt/pls/inter/w5_show?p_r=6113&p_k=1&p_a=5&p_asm_id=53911&p_kade_id=6',
            ],
        )

        crawl(
            Pipeline=ManoseimasPipeline, spider=SittingsSpider(),
            param='p_svarst_kl_stad_id', method='parse_question', path='questions/%s.html', urls=[
                'http://www3.lrs.lt/pls/inter/w5_sale_new.klaus_stadija?p_svarst_kl_stad_id=-9209',
            ],
        )

        crawl(
            Pipeline=ManoseimasPipeline, spider=SittingsSpider(),
            param='p_bals_id', method='parse_person_votes', path='votings/%s.html', urls=[
                'http://www3.lrs.lt/pls/inter/w5_sale_new.bals?p_bals_id=-10765',
            ],
        )

        crawl(
            Pipeline=ManoSeimasModelPersistPipeline, spider=StenogramSpider(),
            param='p_id', method='parse_stenogram', path='stenogram_%s.html', urls=[
                'http://www3.lrs.lt/pls/inter2/dokpaieska.showdoc_l?p_id=395116',
            ],
        )

        management.call_command('recompute_stats', verbosity=0)

        self.app.get('/mp/parliamentarian/antanas-nedzinskas/')
コード例 #10
0
    def test_alekna(self):
        spider = MpsSpider()
        url = ('http://www3.lrs.lt/pls/inter/w5_show?'
               'p_a=5&p_asm_id=7404&p_k=1&p_kade_id=6&p_r=6113')
        response = HtmlResponse(url, body=fixture('mp_7404.html'))

        items = list(spider.parse_person(response))
        self.assertEqual(len(items), 1)
        item = items[0]

        self.assertEqual(item['first_name'], u'Raimundas')
        self.assertEqual(item['last_name'], u'Alekna')
        self.assertEqual(item['constituency'], u'pagal sąrašą')
        self.assertEqual(item['candidate_page'],
                         ('http://www.vrk.lt/rinkimai/400_lt/Kandidatai/'
                          'Kandidatas19638/Kandidato19638Anketa.html'))
        self.assertEqual(item['parliament'], ['2008-2012', '1996-2000'])
コード例 #11
0
    def test_sysas(self):
        spider = MpsSpider()
        url = 'http://www3.lrs.lt/pls/inter/w5_show?p_a=5&p_asm_id=7252&p_k=1&p_kade_id=7&p_r=8801'
        response = HtmlResponse(url, body=fixture('mp_7252.html'))

        items = list(spider.parse_person(response))
        self.assertEqual(len(items), 1)
        item = items[0]

        self.assertEqual(item['first_name'], u'Algirdas')
        self.assertEqual(item['last_name'], u'Sysas')
        self.assertEqual(item['email'], [u'*****@*****.**', u'*****@*****.**'])
        self.assertEqual(item['home_page'], 'http://www.sysas.eu')
        self.assertEqual(item['phone'], ['(8 5) 2396702'])
        self.assertEqual(item['parliament'], ['2012-2016', ''])

        self.assertTrue(len(item['biography']) > 0)
コード例 #12
0
    def test_jursenas(self):
        spider = MpsSpider()
        url = ('http://www3.lrs.lt/pls/inter/w5_show?'
               'p_r=6113&p_k=1&p_a=5&p_asm_id=110&p_kade_id=6')
        response = HtmlResponse(url, body=fixture('mp_110.html'))

        items = list(spider.parse_person(response))
        self.assertEqual(len(items), 1)
        item = items[0]

        self.assertEqual(item['first_name'], u'Česlovas')
        self.assertEqual(item['last_name'], u'Juršėnas')
        self.assertEqual(item['email'], [u'*****@*****.**',
                                         u'*****@*****.**'])
        self.assertEqual(item['home_page'],
                         'http://www3.lrs.lt/pls/inter/w5_show?p_r=4487&p_k=1')
        self.assertEqual(item['phone'], ['2396025', '2396626'])

        self.assertTrue(len(item['biography']) > 0)
コード例 #13
0
ファイル: test_mps.py プロジェクト: ManoSeimas/manoseimas.lt
    def test_sysas(self):
        spider = MpsSpider()
        url = ('http://www.lrs.lt/sip/portal.show?p_r=8801&p_k=1&'
            'p_a=seimo_narys&p_asm_id=7252')
        response = HtmlResponse(url, body=fixture('mp_7252.html'))

        items = list(spider.parse_person(response))
        self.assertEqual(len(items), 1)
        item = items[0]

        self.assertEqual(item['first_name'], u'Algirdas')
        self.assertEqual(item['last_name'], u'Sysas')
        self.assertEqual(item['email'], [u'*****@*****.**', u'*****@*****.**'])
        self.assertEqual(item['home_page'], 'http://www.sysas.eu')
        self.assertEqual(item['phone'], ['852396702'])
        self.assertEqual(item['parliament'], [
                                            '2016-2020', '2012-2016',
                                            '2008-2012', '2004-2008',
                                            '2000-2004', '1996-2000'
                                            ])
コード例 #14
0
ファイル: test_mps.py プロジェクト: ManoSeimas/manoseimas.lt
    def test_karbauskis(self):
        spider = MpsSpider()
        url = ('http://www.lrs.lt/sip/portal.show?p_r='
            '8801&p_k=1&p_a=seimo_narys&p_asm_id=7190')
        response = HtmlResponse(url, body=fixture('mp_7190.html'))
        items = list(spider.parse_person(response))
        self.assertEqual(len(items), 1)
        item = items[0]
        self.assertEqual(item['_id'], '7190p')
        self.assertEqual(item['parliament'], ['2016-2020', '2000-2004', '1996-2000'])
        self.assertEqual(item['first_name'], u'Ramūnas')
        self.assertEqual(item['last_name'], u'Karbauskis')
        self.assertEqual(item['email'], ['*****@*****.**'])
        self.assertEqual(item['phone'], ['852396102'])
        self.assertEqual(item['constituency'], u'Šilainių (Nr. 14) apygardoje')
        self.assertEqual(item['raised_by'], u'Lietuvos valstiečių ir žaliųjų sąjunga')
        self.assertEqual(
            item['photo'],
            ('http://www.lrs.lt/SIPIS/sn_foto/2016/ramunas_karbauskis.jpg'))

        self.assertEqual(len(item['groups']), 16)
コード例 #15
0
ファイル: test_mps.py プロジェクト: ManoSeimas/manoseimas.lt
    def test_adomenas(self):
        spider = MpsSpider()
        url = ('http://www.lrs.lt/sip/portal.show?p_r='
                 '8801&p_k=1&p_a=seimo_narys&p_asm_id=48690')
        response = HtmlResponse(url, body=fixture('mp_48690.html'))

        items = list(spider.parse_person(response))
        self.assertEqual(len(items), 1)
        item = items[0]
        self.assertEqual(item['_id'], '48690p')
        self.assertEqual(item['parliament'], ['2016-2020', '2012-2016', '2008-2012'])
        self.assertEqual(item['first_name'], 'Mantas')
        self.assertEqual(item['last_name'], u'Adomėnas')
        self.assertEqual(item['email'], ['*****@*****.**'])
        self.assertEqual(item['phone'], ['852396631'])
        self.assertEqual(item['constituency'], u'Pagal sąrašą')
        self.assertEqual(item['raised_by'], (u'Tėvynės sąjunga - Lietuvos '
                                              u'krikščionys demokratai'))
        self.assertEqual(item['home_page'], 'http://www.adomenas.lt')
        self.assertEqual(
            item['photo'],
            'http://www.lrs.lt/SIPIS/sn_foto/2016/mantas_adomenas.jpg'
        )
        self.assertEqual(len(item['groups']), 22)
コード例 #16
0
 def test_nedzinskas(self):
     spider = MpsSpider()
     url = ('http://www3.lrs.lt/pls/inter/w5_show?'
            'p_r=6113&p_k=1&p_a=5&p_asm_id=53911&p_kade_id=6')
     response = HtmlResponse(url, body=fixture('mp_53911.html'))
     items = list(spider.parse_person(response))
     self.assertEqual(len(items), 1)
     item = items[0]
     self.assertEqual(item['_id'], '53911p')
     self.assertEqual(item['first_name'], 'Antanas')
     self.assertEqual(item['last_name'], 'Nedzinskas')
     self.assertEqual(item['dob'], '1981-03-15')
     self.assertEqual(item['email'], ['*****@*****.**'])
     self.assertEqual(item['phone'], ['2396694'])
     self.assertEqual(item['raised_by'], u'Tautos prisikėlimo partija')
     self.assertEqual(item['candidate_page'],
                      ('http://www.vrk.lt/rinkimai/400_lt/Kandidatai/'
                       'Kandidatas22997/Kandidato22997Anketa.html'))
     self.assertEqual(
         item['photo'],
         ('http://www3.lrs.lt/home'
          '/seimo_nariu_nuotraukos/2008/antanas_nedzinskas.jpg'))
     self.assertEqual(len(item['groups']), 13)
     self.assertTrue(len(item['biography']) > 0)
コード例 #17
0
    def test_recompute_stats(self):
        crawl(
            Pipeline=ManoSeimasModelPersistPipeline,
            spider=MpsSpider(),
            param='p_asm_id',
            method='parse_person',
            path='mp_%s.html',
            urls=[
                'http://www3.lrs.lt/pls/inter/w5_show?p_r=6113&p_k=1&p_a=5&p_asm_id=53911&p_kade_id=6',
            ],
        )

        crawl(
            Pipeline=ManoseimasPipeline,
            spider=SittingsSpider(),
            param='p_svarst_kl_stad_id',
            method='parse_question',
            path='questions/%s.html',
            urls=[
                'http://www3.lrs.lt/pls/inter/w5_sale_new.klaus_stadija?p_svarst_kl_stad_id=-9209',
            ],
        )

        crawl(
            Pipeline=ManoseimasPipeline,
            spider=SittingsSpider(),
            param='p_bals_id',
            method='parse_person_votes',
            path='votings/%s.html',
            urls=[
                'http://www3.lrs.lt/pls/inter/w5_sale_new.bals?p_bals_id=-10765',
            ],
        )

        crawl(
            Pipeline=ManoSeimasModelPersistPipeline,
            spider=StenogramSpider(),
            param='p_id',
            method='parse_stenogram',
            path='stenogram_%s.html',
            urls=[
                'http://www3.lrs.lt/pls/inter2/dokpaieska.showdoc_l?p_id=395116',
            ],
        )

        management.call_command('recompute_stats', verbosity=0)

        resp = self.app.get('/json/fractions/')
        self.assertEqual(
            resp.json, {
                'items':
                [{
                    'avg_discussion_contribution_percentage': 0.0,
                    'avg_long_statement_count': None,
                    'avg_passed_law_project_ratio': 0.0,
                    'avg_statement_count': None,
                    'avg_vote_percentage': 0.0,
                    'logo_url': '/static/img/fractions/fraction-default.png',
                    'member_count': 1,
                    'name': 'Liberalų ir centro sąjungos frakcija',
                    'slug': 'liberalu-ir-centro-sajungos-frakcija',
                    'type': 'fraction',
                    'url':
                    '/mp/fractions/liberalu-ir-centro-sajungos-frakcija/'
                }]
            })

        def _get_positions(mp):
            mp = ParliamentMember.objects.get(pk=mp.pk)
            return {int(k): float(v) for k, v in mp.positions.items()}

        mp = ParliamentMember.objects.get(source_id='53911p')

        # Check if MP positions where updated
        self.assertEqual(_get_positions(mp), {})

        # Try to update MP positions manually
        term = settings.PARLIAMENT_TERMS['2008-2012']
        topic = TopicFactory(name='Aukštojo mokslo reforma')
        compatibility_test_factory(term, topic, [
            ('53911p', mp.fraction.abbr, mp.first_name, mp.last_name, [1, 2])
        ])
        self.assertEqual(_get_positions(mp), {topic.pk: 1.5})

        # Try to update MP positions via recompute_stats management command
        management.call_command('recompute_stats', verbosity=0)
        self.assertEqual(_get_positions(mp), {topic.pk: 1.5})
コード例 #18
0
    def test_widget(self):
        crawl(
            Pipeline=ManoSeimasModelPersistPipeline,
            spider=MpsSpider(),
            param='p_asm_id',
            method='parse_person',
            path='mp_%s.html',
            urls=[
                'http://www3.lrs.lt/pls/inter/w5_show?p_r=6113&p_k=1&p_a=5&p_asm_id=53911&p_kade_id=6',
            ],
        )

        crawl(
            Pipeline=ManoseimasPipeline,
            spider=SittingsSpider(),
            param='p_svarst_kl_stad_id',
            method='parse_question',
            path='questions/%s.html',
            urls=[
                'http://www3.lrs.lt/pls/inter/w5_sale_new.klaus_stadija?p_svarst_kl_stad_id=-9209',
            ],
        )

        crawl(
            Pipeline=ManoseimasPipeline,
            spider=SittingsSpider(),
            param='p_bals_id',
            method='parse_person_votes',
            path='votings/%s.html',
            urls=[
                'http://www3.lrs.lt/pls/inter/w5_sale_new.bals?p_bals_id=-10765',
            ],
        )

        voting = Voting.objects.order_by('pk').last()

        self.app.get('/widget/?voting_id=%s' % voting.key)
        resp = self.app.get('/widget/data/voting/%s' % voting.key)
        self.assertEqual(
            resp.json['fractions']['JF'], {
                '_id':
                'JF',
                'image':
                None,
                'source':
                None,
                'abbreviation':
                'JF',
                'slug':
                'jungtine-liberalu-ir-centro-sajungos-ir-tautos-prisikelimo-partijos-frakcija',
                'title':
                'Jungtinė (Liberalų ir centro sąjungos ir Tautos prisikėlimo partijos) frakcija',
            })
        self.assertEqual(
            resp.json['mps']['53911p'], {
                '_id': '53911p',
                'first_name': 'Antanas',
                'fraction': 'JF',
                'image': None,
                'last_name': 'Nedzinskas',
                'slug': 'antanas-nedzinskas',
                'source': {
                    'id': '53911p',
                    'name': 'lrslt',
                    'url': None
                },
                'title': 'Antanas Nedzinskas',
            })
        self.assertEqual(resp.json['voting']['_id'], '-10765v')
        self.assertEqual(resp.json['voting']['votes'], {
            'aye': [['53911p', 'JF']],
            'no-vote': [],
            'abstain': [],
            'no': [],
        })