예제 #1
0
파일: test_szr.py 프로젝트: dimov-cz/legal
    def test_courts(self):

        res = self.client.get('/szr/courts')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/szr/courts/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'szr_courts.xhtml')
        self.assertEqual(tuple(res.context['rows']), (
            {
                'id': 'MSPHAAB',
                'name': 'Městský soud Praha'
            },
            {
                'id': 'NSJIMBM',
                'name': 'Nejvyšší soud'
            },
            {
                'id': 'NSS',
                'name': 'Nejvyšší správní soud'
            },
            {
                'id': 'OSPHA02',
                'name': 'Obvodní soud Praha 2'
            },
        ))
        check_html(self, res.content)
예제 #2
0
파일: test_uds.py 프로젝트: tompecina/legal
    def test_mainpage(self):

        res = self.client.get('/uds')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/uds/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'uds_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/uds/',
            {'date_posted_from': '1.1.2015',
             'date_posted_to': '1.7.2016',
             'desc_opt': 'icontains',
             'format': 'html',
             'submit': 'Hledat'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/uds/',
            {'desc': 'rozvrh',
             'desc_opt': 'icontains',
             'format': 'html',
             'submit': 'Hledat'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(res.redirect_chain[0][1], HTTPStatus.FOUND)
        check_html(self, res.content)
        self.assertTrue(link_equal(res.redirect_chain[0][0], '/uds/list/?desc=rozvrh&desc_opt=icontains&start=0'))

        res = self.client.post(
            '/uds/',
            {'date_posted_from': 'XXX',
             'desc_opt': 'icontains',
             'format': 'html',
             'submit': 'Hledat'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_mainpage.xhtml')
        self.assertEqual(res.context['err_message'], 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/uds/',
            {'date_posted_from': '1.1.2015',
             'date_posted_to': '1.7.2014',
             'desc_opt': 'icontains',
             'format': 'html',
             'submit': 'Hledat'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_mainpage.xhtml')
        self.assertEqual(res.context['err_message'], 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)
예제 #3
0
파일: test_dir.py 프로젝트: tompecina/legal
    def test_debtordelall(self):

        models.Debtor.objects.create(uid=self.user, name_opt=0, first_name_opt=0, desc='Test 1')
        models.Debtor.objects.create(uid=self.user, name_opt=0, first_name_opt=0, desc='Test 2')

        self.assertEqual(models.Debtor.objects.count(), 2)

        res = self.client.get('/dir/debtordelall')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/dir/debtordelall/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/dir/debtordelall/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/dir/debtordelall/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtordelall.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtordelall/',
            {'submit_no': 'Ne'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_mainpage.xhtml')

        res = self.client.post(
            '/dir/debtordelall/',
            {'submit_yes': 'Ano'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_mainpage.xhtml')
        self.assertEqual(models.Debtor.objects.count(), 2)

        res = self.client.post(
            '/dir/debtordelall/',
            {'submit_yes': 'Ano',
             'conf': 'ano'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_mainpage.xhtml')
        self.assertEqual(models.Debtor.objects.count(), 2)

        res = self.client.post(
            '/dir/debtordelall/',
            {'submit_yes': 'Ano',
             'conf': 'Ano'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_mainpage.xhtml')
        check_html(self, res.content)
        self.assertFalse(models.Debtor.objects.exists())
예제 #4
0
파일: test_sir.py 프로젝트: tompecina/legal
    def test_courts(self):

        res = self.client.get('/sir/courts')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/sir/courts/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'sir_courts.xhtml')
        self.assertEqual(res.context['rows'], [{'name': 'Krajský soud v Ostravě', 'short': 'KSOS'}])
        check_html(self, res.content)
예제 #5
0
파일: test_sir.py 프로젝트: tompecina/legal
    def test_highlight(self):

        self.client.force_login(User.objects.get(pk=1))
        models.Insolvency.objects.filter(number=577, year=2013).update(notify=True)
        res = self.client.get('/sir/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sir_mainpage.xhtml')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        highlight = soup.find_all('td', 'highlight')
        self.assertEqual(len(highlight), 1)
        self.assertEqual(highlight[0].text, 'Test 577/2013')
예제 #6
0
파일: test_sur.py 프로젝트: dimov-cz/legal
    def test_partydelall(self):

        models.Party.objects.create(uid=self.user, party_opt=0, party='Test 1')

        models.Party.objects.create(uid=self.user, party_opt=0, party='Test 2')

        self.assertEqual(models.Party.objects.count(), 2)

        res = self.client.get('/sur/partydelall')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/sur/partydelall/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/sur/partydelall/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/sur/partydelall/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partydelall.xhtml')
        check_html(self, res.content)

        res = self.client.post('/sur/partydelall/', {'submit_no': 'Ne'},
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')

        res = self.client.post('/sur/partydelall/', {'submit_yes': 'Ano'},
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')
        self.assertEqual(models.Party.objects.count(), 2)

        res = self.client.post('/sur/partydelall/', {
            'submit_yes': 'Ano',
            'conf': 'ano'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')
        self.assertEqual(models.Party.objects.count(), 2)

        res = self.client.post('/sur/partydelall/', {
            'submit_yes': 'Ano',
            'conf': 'Ano'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')
        check_html(self, res.content)
        self.assertFalse(models.Party.objects.exists())
예제 #7
0
파일: test_dir.py 프로젝트: tompecina/legal
    def test_highlight(self):

        self.client.force_login(User.objects.get(pk=1))
        models.Debtor.objects.filter(desc='Test 14').update(notify=True)
        res = self.client.get('/dir/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_mainpage.xhtml')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        highlight = soup.find_all('td', 'highlight')
        self.assertEqual(len(highlight), 1)
        self.assertEqual(highlight[0].text, 'Test 14')
예제 #8
0
파일: test_uds.py 프로젝트: tompecina/legal
    def test_jsonlist(self):

        res1 = '''[{{"posted": "2009-07-29T08:10:00", "publisher": "Okresn\u00ed soud Pelh\u0159imov", "desc": "Roz\
vrh pr\u00e1ce, zm\u011bna \u010d. 1", "ref": "0 SPR 653/2009", "agenda": "Spr\u00e1va soudu", "files": [{{"id": 82\
788, "name": "zm\u011bna_\u010d._1_RP_.pdf", "url": "{}uds/82788/změna_č._1_RP_.pdf"}}]}}]'''.format(REPO_URL)

        res = self.client.get('/uds/jsonlist')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.post('/uds/jsonlist/')
        self.assertEqual(res.status_code, HTTPStatus.METHOD_NOT_ALLOWED)

        res = self.client.get('/uds/jsonlist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], 'application/json; charset=utf-8')

        res = self.client.get('/uds/jsonlist/?senate=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/jsonlist/?number=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/jsonlist/?year=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/jsonlist/?agenda=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/jsonlist/?date_posted_from=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/jsonlist/?date_posted_to=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/jsonlist/?desc_opt=X')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/jsonlist/?register=spr')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertJSONEqual(res.content.decode('utf-8'), res1)

        exlim = views.EXLIM
        views.EXLIM = 0
        res = self.client.get('/uds/jsonlist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'exlim.xhtml')
        check_html(self, res.content)
        views.EXLIM = exlim
예제 #9
0
파일: test_szr.py 프로젝트: tompecina/legal
    def test_courts(self):

        res = self.client.get('/szr/courts')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/szr/courts/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'szr_courts.xhtml')
        self.assertEqual(
            tuple(res.context['rows']),
            ({'id': 'MSPHAAB', 'name': 'Městský soud Praha'},
             {'id': 'NSJIMBM', 'name': 'Nejvyšší soud'},
             {'id': 'NSS', 'name': 'Nejvyšší správní soud'},
             {'id': 'OSPHA02', 'name': 'Obvodní soud Praha 2'},
            ))
        check_html(self, res.content)
예제 #10
0
파일: test_sir.py 프로젝트: tompecina/legal
    def test_insdel(self):

        ins_id = models.Insolvency.objects.create(
            uid=self.user,
            number=1,
            year=2016,
            desc='Test').id

        res = self.client.get('/sir/insdel/{:d}'.format(ins_id))
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/sir/insdel/{:d}/'.format(ins_id))
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/sir/insdel/{:d}/'.format(ins_id), follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/sir/insdel/{:d}/'.format(ins_id))
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sir_insdel.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/sir/insdel/{:d}/'.format(ins_id),
            {'submit_no': 'Ne'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sir_mainpage.xhtml')

        res = self.client.post(
            '/sir/insdel/{:d}/'.format(ins_id),
            {'submit_yes': 'Ano'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sir_insdeleted.xhtml')
        self.assertFalse(models.Insolvency.objects.filter(pk=ins_id).exists())
        check_html(self, res.content)

        res = self.client.post('/sir/insdel/{:d}/'.format(ins_id))
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)
예제 #11
0
파일: test_dir.py 프로젝트: tompecina/legal
    def test_debtordel(self):

        debtor_id = models.Debtor.objects.create(uid=self.user, name_opt=0, first_name_opt=0, desc='Test').id

        res = self.client.get('/dir/debtordel/{:d}'.format(debtor_id))
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/dir/debtordel/{:d}/'.format(debtor_id))
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/dir/debtordel/{:d}/'.format(debtor_id), follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/dir/debtordel/{:d}/'.format(debtor_id))
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtordel.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtordel/{:d}/'.format(debtor_id),
            {'submit_no': 'Ne'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_mainpage.xhtml')

        res = self.client.post(
            '/dir/debtordel/{:d}/'.format(debtor_id),
            {'submit_yes': 'Ano'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtordeleted.xhtml')
        self.assertFalse(models.Debtor.objects.filter(pk=debtor_id).exists())
        check_html(self, res.content)

        res = self.client.post('/dir/debtordel/{:d}/'.format(debtor_id))
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)
예제 #12
0
파일: test_szr.py 프로젝트: tompecina/legal
    def test_procdel(self):

        proc_id = models.Proceedings.objects.create(
            uid=self.user,
            court_id='MSPHAAB',
            senate=52,
            register='C',
            number=1,
            year=2016,
            desc='Test').id

        res = self.client.get('/szr/procdel/{:d}'.format(proc_id))
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/szr/procdel/{:d}/'.format(proc_id))
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/szr/procdel/{:d}/'.format(proc_id), follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/szr/procdel/{:d}/'.format(proc_id))
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procdel.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procdel/{:d}/'.format(proc_id),
            {'submit_no': 'Ne'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procdel/{:d}/'.format(proc_id),
            {'submit_yes': 'Ano'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procdeleted.xhtml')
        self.assertFalse(models.Proceedings.objects.filter(pk=proc_id).exists())
        check_html(self, res.content)

        res = self.client.post('/szr/procdel/{:d}/'.format(proc_id))
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)
예제 #13
0
파일: test_szr.py 프로젝트: dimov-cz/legal
    def test_procdel(self):

        proc_id = models.Proceedings.objects.create(uid=self.user,
                                                    court_id='MSPHAAB',
                                                    senate=52,
                                                    register='C',
                                                    number=1,
                                                    year=2016,
                                                    desc='Test').id

        res = self.client.get('/szr/procdel/{:d}'.format(proc_id))
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/szr/procdel/{:d}/'.format(proc_id))
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/szr/procdel/{:d}/'.format(proc_id),
                              follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/szr/procdel/{:d}/'.format(proc_id))
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procdel.xhtml')
        check_html(self, res.content)

        res = self.client.post('/szr/procdel/{:d}/'.format(proc_id),
                               {'submit_no': 'Ne'},
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post('/szr/procdel/{:d}/'.format(proc_id),
                               {'submit_yes': 'Ano'},
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procdeleted.xhtml')
        self.assertFalse(
            models.Proceedings.objects.filter(pk=proc_id).exists())
        check_html(self, res.content)

        res = self.client.post('/szr/procdel/{:d}/'.format(proc_id))
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)
예제 #14
0
파일: test_sur.py 프로젝트: dimov-cz/legal
    def test_partydel(self):

        party_id = models.Party.objects.create(uid=self.user,
                                               party_opt=0,
                                               party='Test').id

        res = self.client.get('/sur/partydel/{:d}'.format(party_id))
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/sur/partydel/{:d}/'.format(party_id))
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/sur/partydel/{:d}/'.format(party_id),
                              follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')
        check_html(self, res.content)

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/sur/partydel/{:d}/'.format(party_id))
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partydel.xhtml')
        check_html(self, res.content)

        res = self.client.post('/sur/partydel/{:d}/'.format(party_id),
                               {'submit_no': 'Ne'},
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')

        res = self.client.post('/sur/partydel/{:d}/'.format(party_id),
                               {'submit_yes': 'Ano'},
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partydeleted.xhtml')
        self.assertFalse(models.Party.objects.filter(pk=party_id).exists())
        check_html(self, res.content)

        res = self.client.post('/sur/partydel/{:d}/'.format(party_id))
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)
예제 #15
0
    def test_csvlist(self):

        res0 = '''Soud,Jednací síň,Datum,Čas,Spisová značka,Řešitel,Účastníci řízení,Druh jednání,Neveřejné,Zrušeno
'''

        res1 = res0 + '''Obvodní soud Praha 2,č. 101/přízemí - přístavba,01.12.2016,09:00,26 C 181/2015,JUDr. Henzlo\
vá Šárka,ČR - Ministerstvo spravedlnosti ČR;Mgr. Helena Morozová,Jednání,ne,ne
Obvodní soud Praha 2,č. 101/přízemí - přístavba,01.12.2016,12:00,26 C 94/2015,JUDr. Henzlová Šárka,Česká republika -\
 Ministerstvo spravedlnosti;Alois Hlásenský,Jednání,ne,ne
'''

        res2 = res0 + '''Obvodní soud Praha 2,č. 101/přízemí - přístavba,01.12.2016,12:00,26 C 94/2015,JUDr. Henzlov\
á Šárka,Česká republika - Ministerstvo spravedlnosti;Alois Hlásenský,Jednání,ne,ne
'''

        res = self.client.get('/psj/csvlist')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.post('/psj/csvlist/')
        self.assertEqual(res.status_code, HTTPStatus.METHOD_NOT_ALLOWED)

        res = self.client.get('/psj/csvlist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], 'text/csv; charset=utf-8')

        res = self.client.get('/psj/csvlist/?senate=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/csvlist/?senate=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/csvlist/?register=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/csvlist/?register=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/csvlist/?number=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/csvlist/?number=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/csvlist/?year=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/csvlist/?year=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/csvlist/?courtroom=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/csvlist/?courtroom=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/csvlist/?judge=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/csvlist/?judge=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/csvlist/?date_from=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/csvlist/?date_to=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/csvlist/?party_opt=X')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/csvlist/?register=T')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertEqual(
            res.content.decode('utf-8').replace('\r\n', '\n'), res0)

        res = self.client.get('/psj/csvlist/?register=C')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertEqual(
            res.content.decode('utf-8').replace('\r\n', '\n'), res1)

        res = self.client.get('/psj/csvlist/?party=oi&party_opt=icontains')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertEqual(
            res.content.decode('utf-8').replace('\r\n', '\n'), res2)

        exlim = views.EXLIM
        views.EXLIM = 0
        res = self.client.get('/psj/csvlist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'exlim.xhtml')
        check_html(self, res.content)
        views.EXLIM = exlim
예제 #16
0
    def test_htmllist(self):

        res = self.client.get('/psj/list')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.post('/psj/list/')
        self.assertEqual(res.status_code, HTTPStatus.METHOD_NOT_ALLOWED)

        res = self.client.get('/psj/list/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        check_html(self, res.content)

        res = self.client.get('/psj/list/?senate=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/list/?senate=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/list/?register=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/list/?register=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/list/?number=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/list/?number=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/list/?year=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/list/?year=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/list/?courtroom=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/list/?courtroom=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/list/?judge=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/list/?judge=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/list/?date_from=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/list/?date_to=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/list/?party_opt=X')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/list/?start=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get(
            '/psj/list/?date_from=2015-01-01&date_to=2199-07-01&register=C&party_opt=icontains'
        )
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 2)
        check_html(self, res.content)

        res = self.client.get('/psj/list/?start=100')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 2)
        check_html(self, res.content)

        res = self.client.get('/psj/list/?register=T')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 0)
        check_html(self, res.content)

        res = self.client.get('/psj/list/?date_from=2016-12-01')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 2)
        check_html(self, res.content)

        res = self.client.get('/psj/list/?date_from=2016-12-02')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 0)
        check_html(self, res.content)

        res = self.client.get('/psj/list/?date_to=2016-12-01')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 2)
        check_html(self, res.content)

        res = self.client.get('/psj/list/?date_to=2016-11-30')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 0)
        check_html(self, res.content)

        res = self.client.get('/psj/list/?court=OSPHA02')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 2)
        check_html(self, res.content)

        res = self.client.get('/psj/list/?court=OSPHA03')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 0)
        check_html(self, res.content)

        res = self.client.get('/psj/list/?courtroom={:d}'.format(
            models.Courtroom.objects.first().id))
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 2)

        res = self.client.get('/psj/list/?courtroom=9999')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 0)
        check_html(self, res.content)

        res = self.client.get('/psj/list/?judge={:d}'.format(
            models.Hearing.objects.first().judge_id))
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 2)
        check_html(self, res.content)

        res = self.client.get('/psj/list/?judge=9999')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 0)
        check_html(self, res.content)

        res = self.client.get('/psj/list/?party=moroz&party_opt=icontains')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/psj/list/?party=mgr&party_opt=istartswith')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/psj/list/?party=zová&party_opt=iendswith')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get(
            '/psj/list/?party=mgr.+helena+morozová&party_opt=iexact')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        hear = models.Hearing.objects.first().__dict__
        del hear['id'], hear['_state']
        for number in range(200, 437):
            hear['number'] = number
            models.Hearing(**hear).save()

        res = self.client.get('/psj/list/?senate=26')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 3)
        self.assertEqual(links[0]['href'], '#')
        self.assertTrue(
            link_equal(links[1]['href'], '/psj/list/?senate=26&start=50'))
        self.assertTrue(
            link_equal(links[2]['href'], '/psj/list/?senate=26&start=200'))

        res = self.client.get('/psj/list/?senate=26&start=50')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 5)
        self.assertTrue(
            link_equal(links[0]['href'], '/psj/list/?senate=26&start=0'))
        self.assertTrue(
            link_equal(links[1]['href'], '/psj/list/?senate=26&start=0'))
        self.assertEqual(links[2]['href'], '#')
        self.assertTrue(
            link_equal(links[3]['href'], '/psj/list/?senate=26&start=100'))
        self.assertTrue(
            link_equal(links[4]['href'], '/psj/list/?senate=26&start=200'))

        res = self.client.get('/psj/list/?senate=26&start=100')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 5)
        self.assertTrue(
            link_equal(links[0]['href'], '/psj/list/?senate=26&start=0'))
        self.assertTrue(
            link_equal(links[1]['href'], '/psj/list/?senate=26&start=50'))
        self.assertEqual(links[2]['href'], '#')
        self.assertTrue(
            link_equal(links[3]['href'], '/psj/list/?senate=26&start=150'))
        self.assertTrue(
            link_equal(links[4]['href'], '/psj/list/?senate=26&start=200'))

        res = self.client.get('/psj/list/?senate=26&start=200')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(len(res.context['rows']), 39)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 3)
        self.assertTrue(
            link_equal(links[0]['href'], '/psj/list/?senate=26&start=0'))
        self.assertTrue(
            link_equal(links[1]['href'], '/psj/list/?senate=26&start=150'))
        self.assertEqual(links[2]['href'], '#')
예제 #17
0
파일: test_sur.py 프로젝트: tompecina/legal
    def test_partybatchform(self):

        models.Party.objects.create(
            uid=self.user,
            party_opt=0,
            party='Test 01')

        models.Party.objects.create(
            uid=self.user,
            party_opt=0,
            party='Test 05')

        models.Party.objects.create(
            uid=self.user,
            party_opt=0,
            party='Test 05')

        res = self.client.get('/sur/partybatchform')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/sur/partybatchform/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/sur/partybatchform/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/sur/partybatchform/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partybatchform.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/sur/partybatchform/',
            {'submit_load': 'Načíst'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partybatchform.xhtml')
        self.assertContains(res, 'Nejprve zvolte soubor k načtení')
        check_html(self, res.content)

        res = self.client.post(
            '/sur/partybatchform/',
            {'submit_xxx': 'XXX'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partybatchform.xhtml')
        self.assertEqual(res.context['err_message'], 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        with open(join(TEST_DATA_DIR, 'sur_import.csv'), 'rb') as infile:
            res = self.client.post(
                '/sur/partybatchform/',
                {'submit_load': 'Načíst',
                 'load': infile},
                follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partybatchresult.xhtml')
        self.assertEqual(models.Party.objects.count(), 9)
        self.assertEqual(res.context['count'], 6)
        self.assertEqual(
            res.context['errors'],
            [(1, 'Chybná délka řetězce'),
             (3, 'Chybná délka řetězce'),
             (4, 'Chybná zkratka pro posici'),
             (5, 'Řetězci "Test 05" odpovídá více než jeden účastník')])
        check_html(self, res.content)

        res = self.client.get('/sur/partyexport/')
        self.assertEqual(
            res.content.decode('utf-8'),
            '''\
Test 01:*
Test 05:*
Test 05:*
Test 06:*
Test 07:*
Test 08:<
Test 09:>
Test 10:=
{}:*
'''.format('T' * 80).replace('\n', '\r\n'))
예제 #18
0
    def test_main(self):

        cases = (
            ('100000000', 'CZK', '', '', '1', 'none', '1.000.000'),
            ('1000000', 'CZK', '', '', '1', 'epr', '20.000'),
            ('100000000', 'CZK', '', '', '1', 'nmu', '1.000.000'),
            ('5000000', 'CZK', '', '', '1', 'vyz', '10.000'),
            ('10000000', 'CZK', '', '', '1', 'vyk', '50.000'),
            ('5000000', 'CZK', '', '', '1', 'sm', '20.000'),
            ('100000000', 'CZK', '', '', '1', 'inc', '1.000'),
            ('200000000', 'CZK', '', '', '1', 'usch', '1.000.000'),
            ('5690', 'EUR', '', '1.7.2016', '4', 'none', '4.864'),
            ('8000', 'USD', '', '1.7.2016', '4', 'none', '13.734'),
            ('29158900', 'OTH', 'THB', '1.7.2016', '4', 'none', '1.449.635'),
            ('1', 'CZK', '', '', '1', 'none', '600'),
            ('100', 'CZK', '', '', '1', 'none', '600'),
            ('1000', 'CZK', '', '', '1', 'none', '600'),
            ('15099,99', 'CZK', '', '', '1', 'none', '600'),
            ('15100,00', 'CZK', '', '', '1', 'none', '610'),
            ('25000000', 'CZK', '', '', '1', 'none', '1.000.000'),
            ('1', 'CZK', '', '', '1', 'epr', '300'),
            ('100', 'CZK', '', '', '1', 'epr', '300'),
            ('1000', 'CZK', '', '', '1', 'epr', '300'),
            ('15099,99', 'CZK', '', '', '1', 'epr', '300'),
            ('15100,00', 'CZK', '', '', '1', 'epr', '310'),
            ('1', 'CZK', '', '', '1', 'nmu', '600'),
            ('100', 'CZK', '', '', '1', 'nmu', '600'),
            ('1000', 'CZK', '', '', '1', 'nmu', '600'),
            ('15099,99', 'CZK', '', '', '1', 'nmu', '600'),
            ('15100,00', 'CZK', '', '', '1', 'nmu', '610'),
            ('25000000', 'CZK', '', '', '1', 'nmu', '1.000.000'),
            ('1', 'CZK', '', '', '1', 'vyz', '300'),
            ('30000', 'CZK', '', '', '1', 'vyz', '300'),
            ('1000000', 'CZK', '', '', '1', 'vyz', '10.000'),
            ('1', 'CZK', '', '', '1', 'vyk', '300'),
            ('15000', 'CZK', '', '', '1', 'vyk', '300'),
            ('2500000', 'CZK', '', '', '1', 'vyk', '50.000'),
            ('1', 'CZK', '', '', '1', 'sm', '300'),
            ('15000', 'CZK', '', '', '1', 'sm', '300'),
            ('1000000', 'CZK', '', '', '1', 'sm', '20.000'),
            ('1', 'CZK', '', '', '1', 'inc', '1.000'),
            ('1', 'CZK', '', '', '1', 'usch', '200'),
            ('20000', 'CZK', '', '', '1', 'usch', '200'),
            ('100000000', 'CZK', '', '', '1', 'usch', '1.000.000'),
            ('1', 'CZK', '', '', '2', 'none', '1.000'),
            ('100', 'CZK', '', '', '2', 'none', '1.000'),
            ('1000', 'CZK', '', '', '2', 'none', '1.000'),
            ('20099,99', 'CZK', '', '', '2', 'none', '1.000'),
            ('20100,00', 'CZK', '', '', '2', 'none', '1.010'),
            ('40000000', 'CZK', '', '', '2', 'none', '2.000.000'),
            ('40000100', 'CZK', '', '', '2', 'none', '2.000.010'),
            ('250000000', 'CZK', '', '', '2', 'none', '4.100.000'),
            ('1000000000', 'CZK', '', '', '2', 'none', '4.100.000'),
            ('1', 'CZK', '', '', '2', 'epr', '800'),
            ('100', 'CZK', '', '', '2', 'epr', '800'),
            ('1000', 'CZK', '', '', '2', 'epr', '800'),
            ('20099,99', 'CZK', '', '', '2', 'epr', '800'),
            ('20100,00', 'CZK', '', '', '2', 'epr', '810'),
            ('1000000', 'CZK', '', '', '2', 'epr', '40.000'),
            ('1', 'CZK', '', '', '2', 'nmu', '2.000'),
            ('100', 'CZK', '', '', '2', 'nmu', '2.000'),
            ('1000', 'CZK', '', '', '2', 'nmu', '2.000'),
            ('200099,99', 'CZK', '', '', '2', 'nmu', '2.000'),
            ('200100,00', 'CZK', '', '', '2', 'nmu', '2.010'),
            ('200000000', 'CZK', '', '', '2', 'nmu', '2.000.000'),
            ('1000000000', 'CZK', '', '', '2', 'nmu', '2.000.000'),
            ('1', 'CZK', '', '', '2', 'vyz', '500'),
            ('50000', 'CZK', '', '', '2', 'vyz', '500'),
            ('1500000', 'CZK', '', '', '2', 'vyz', '15.000'),
            ('5000000', 'CZK', '', '', '2', 'vyz', '15.000'),
            ('1', 'CZK', '', '', '2', 'vyk', '500'),
            ('25000', 'CZK', '', '', '2', 'vyk', '500'),
            ('3750000', 'CZK', '', '', '2', 'vyk', '75.000'),
            ('10000000', 'CZK', '', '', '2', 'vyk', '75.000'),
            ('1', 'CZK', '', '', '2', 'sm', '500'),
            ('25000', 'CZK', '', '', '2', 'sm', '500'),
            ('1500000', 'CZK', '', '', '2', 'sm', '30.000'),
            ('5000000', 'CZK', '', '', '2', 'sm', '30.000'),
            ('1', 'CZK', '', '', '2', 'inc', '1.000'),
            ('20000', 'CZK', '', '', '2', 'inc', '1.000'),
            ('100000000', 'CZK', '', '', '2', 'inc', '2.000.000'),
            ('500000000', 'CZK', '', '', '2', 'inc', '2.000.000'),
            ('1', 'CZK', '', '', '2', 'usch', '250'),
            ('25000', 'CZK', '', '', '2', 'usch', '250'),
            ('200000000', 'CZK', '', '', '2', 'usch', '2.000.000'),
            ('1000000000', 'CZK', '', '', '2', 'usch', '2.000.000'),
            ('1', 'CZK', '', '', '3', 'none', '1.000'),
            ('100', 'CZK', '', '', '3', 'none', '1.000'),
            ('1000', 'CZK', '', '', '3', 'none', '1.000'),
            ('20099,99', 'CZK', '', '', '3', 'none', '1.000'),
            ('20100,00', 'CZK', '', '', '3', 'none', '1.010'),
            ('40000000', 'CZK', '', '', '3', 'none', '2.000.000'),
            ('40000100', 'CZK', '', '', '3', 'none', '2.000.010'),
            ('250000000', 'CZK', '', '', '3', 'none', '4.100.000'),
            ('1000000000', 'CZK', '', '', '3', 'none', '4.100.000'),
            ('1', 'CZK', '', '', '3', 'epr', '400'),
            ('100', 'CZK', '', '', '3', 'epr', '400'),
            ('1000', 'CZK', '', '', '3', 'epr', '400'),
            ('10000', 'CZK', '', '', '3', 'epr', '400'),
            ('10099,99', 'CZK', '', '', '3', 'epr', '400'),
            ('10100,00', 'CZK', '', '', '3', 'epr', '800'),
            ('20099,99', 'CZK', '', '', '3', 'epr', '800'),
            ('20100,00', 'CZK', '', '', '3', 'epr', '810'),
            ('1000000', 'CZK', '', '', '3', 'epr', '40.000'),
            ('1', 'CZK', '', '', '3', 'nmu', '2.000'),
            ('100', 'CZK', '', '', '3', 'nmu', '2.000'),
            ('1000', 'CZK', '', '', '3', 'nmu', '2.000'),
            ('200099,99', 'CZK', '', '', '3', 'nmu', '2.000'),
            ('200100,00', 'CZK', '', '', '3', 'nmu', '2.010'),
            ('200000000', 'CZK', '', '', '3', 'nmu', '2.000.000'),
            ('1000000000', 'CZK', '', '', '3', 'nmu', '2.000.000'),
            ('1', 'CZK', '', '', '3', 'vyz', '500'),
            ('50000', 'CZK', '', '', '3', 'vyz', '500'),
            ('1500000', 'CZK', '', '', '3', 'vyz', '15.000'),
            ('5000000', 'CZK', '', '', '3', 'vyz', '15.000'),
            ('1', 'CZK', '', '', '3', 'vyk', '1.000'),
            ('20000', 'CZK', '', '', '3', 'vyk', '1.000'),
            ('40000000', 'CZK', '', '', '3', 'vyk', '2.000.000'),
            ('250000000', 'CZK', '', '', '3', 'vyk', '4.100.000'),
            ('1000000000', 'CZK', '', '', '3', 'vyk', '4.100.000'),
            ('1', 'CZK', '', '', '3', 'sm', '500'),
            ('25000', 'CZK', '', '', '3', 'sm', '500'),
            ('1500000', 'CZK', '', '', '3', 'sm', '30.000'),
            ('5000000', 'CZK', '', '', '3', 'sm', '30.000'),
            ('1', 'CZK', '', '', '3', 'inc', '1.000'),
            ('20000', 'CZK', '', '', '3', 'inc', '1.000'),
            ('100000000', 'CZK', '', '', '3', 'inc', '2.000.000'),
            ('500000000', 'CZK', '', '', '3', 'inc', '2.000.000'),
            ('1', 'CZK', '', '', '3', 'usch', '250'),
            ('25000', 'CZK', '', '', '3', 'usch', '250'),
            ('200000000', 'CZK', '', '', '3', 'usch', '2.000.000'),
            ('1000000000', 'CZK', '', '', '3', 'usch', '2.000.000'),
            ('1', 'CZK', '', '', '4', 'none', '1.000'),
            ('100', 'CZK', '', '', '4', 'none', '1.000'),
            ('1000', 'CZK', '', '', '4', 'none', '1.000'),
            ('20099,99', 'CZK', '', '', '4', 'none', '1.005'),
            ('20100,00', 'CZK', '', '', '4', 'none', '1.005'),
            ('1234567', 'CZK', '', '', '4', 'none', '61.728'),
            ('40000000', 'CZK', '', '', '4', 'none', '2.000.000'),
            ('40000100', 'CZK', '', '', '4', 'none', '2.000.001'),
            ('250000000', 'CZK', '', '', '4', 'none', '4.100.000'),
            ('1000000000', 'CZK', '', '', '4', 'none', '4.100.000'),
            ('1', 'CZK', '', '', '4', 'epr', '400'),
            ('100', 'CZK', '', '', '4', 'epr', '400'),
            ('1000', 'CZK', '', '', '4', 'epr', '400'),
            ('10000', 'CZK', '', '', '4', 'epr', '400'),
            ('10000,01', 'CZK', '', '', '4', 'epr', '800'),
            ('10099,99', 'CZK', '', '', '4', 'epr', '800'),
            ('10100,00', 'CZK', '', '', '4', 'epr', '800'),
            ('20099,99', 'CZK', '', '', '4', 'epr', '804'),
            ('20100,00', 'CZK', '', '', '4', 'epr', '804'),
            ('1000000', 'CZK', '', '', '4', 'epr', '40.000'),
            ('1', 'CZK', '', '', '4', 'nmu', '2.000'),
            ('100', 'CZK', '', '', '4', 'nmu', '2.000'),
            ('1000', 'CZK', '', '', '4', 'nmu', '2.000'),
            ('200099,99', 'CZK', '', '', '4', 'nmu', '2.001'),
            ('200100,00', 'CZK', '', '', '4', 'nmu', '2.001'),
            ('200000000', 'CZK', '', '', '4', 'nmu', '2.000.000'),
            ('1000000000', 'CZK', '', '', '4', 'nmu', '2.000.000'),
            ('1', 'CZK', '', '', '4', 'vyz', '500'),
            ('50000', 'CZK', '', '', '4', 'vyz', '500'),
            ('1500000', 'CZK', '', '', '4', 'vyz', '15.000'),
            ('5000000', 'CZK', '', '', '4', 'vyz', '15.000'),
            ('1', 'CZK', '', '', '4', 'vyk', '1.000'),
            ('20000', 'CZK', '', '', '4', 'vyk', '1.000'),
            ('40000000', 'CZK', '', '', '4', 'vyk', '2.000.000'),
            ('250000000', 'CZK', '', '', '4', 'vyk', '4.100.000'),
            ('1000000000', 'CZK', '', '', '4', 'vyk', '4.100.000'),
            ('1', 'CZK', '', '', '4', 'sm', '500'),
            ('25000', 'CZK', '', '', '4', 'sm', '500'),
            ('1500000', 'CZK', '', '', '4', 'sm', '30.000'),
            ('5000000', 'CZK', '', '', '4', 'sm', '30.000'),
            ('1', 'CZK', '', '', '4', 'inc', '1.000'),
            ('20000', 'CZK', '', '', '4', 'inc', '1.000'),
            ('100000000', 'CZK', '', '', '4', 'inc', '2.000.000'),
            ('500000000', 'CZK', '', '', '4', 'inc', '2.000.000'),
            ('1', 'CZK', '', '', '4', 'usch', '250'),
            ('25000', 'CZK', '', '', '4', 'usch', '250'),
            ('200000000', 'CZK', '', '', '4', 'usch', '2.000.000'),
            ('1000000000', 'CZK', '', '', '4', 'usch', '2.000.000'),
        )

        err_cases = (
            ('-100', 'CZK', '', '', '1', 'none'),
            ('0', 'CZK', '', '', '1', 'none'),
            ('0,01', 'CZK', '', '', '1', 'none'),
            ('0,99', 'CZK', '', '', '1', 'none'),
            ('1000000,01', 'CZK', '', '', '1', 'epr'),
            ('5690', 'EUR', '', '', '1', 'none'),
            ('5690', 'XXX', '', '1.7.2016', '1', 'none'),
        )

        res = self.client.get('/sop')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/sop/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'sop_mainpage.xhtml')
        check_html(self, res.content)

        num = 1
        for test in cases:
            res = self.client.post(
                '/sop/',
                {'basis': test[0],
                 'curr_0': test[1],
                 'curr_1': test[2],
                 'fx_date': test[3],
                 'model': test[4],
                 'opt': test[5]})
            self.assertEqual(res.status_code, HTTPStatus.OK)
            self.assertTemplateUsed(res, 'sop_mainpage.xhtml')
            soup = BeautifulSoup(res.content, 'html.parser')
            msg = soup.find('td', 'msg').select('div')
            self.assertGreater(len(msg), 1)
            self.assertEqual(msg[1].text, '{} Kč'.format(test[6]))
            check = num < 12
            check_html(self, res.content, key=num, check_html=check, check_classes=check)
            num += 1

        num = 1
        for test in err_cases:
            res = self.client.post(
                '/sop/',
                {'basis': test[0],
                 'curr_0': test[1],
                 'curr_1': test[2],
                 'fx_date': test[3],
                 'model': test[4],
                 'opt': test[5]})
            self.assertEqual(res.status_code, HTTPStatus.OK)
            self.assertTemplateUsed(res, 'sop_mainpage.xhtml')
            soup = BeautifulSoup(res.content, 'html.parser')
            msg = soup.find('td', 'msg').select('div')
            self.assertEqual(len(msg), 1)
            check_html(self, res.content, key=num)
            num += 1
예제 #19
0
    def test_main(self):

        cases = (
            ('1.7.2016', '1', '', '', '01.07.2017', '01.11.2016', '01.01.2017',
             '01.03.2017'),
            ('1. 7. 2016', '1', '', '', '01.07.2017', '01.11.2016',
             '01.01.2017', '01.03.2017'),
            ('01.07.2016', '1', '', '', '01.07.2017', '01.11.2016',
             '01.01.2017', '01.03.2017'),
            ('12.7.2011', '11', '5', '16', '28.12.2022', '07.05.2015',
             '04.04.2017', '04.03.2019'),
            ('7.7.2011', '', '1', '', '07.08.2011', '17.07.2011', '22.07.2011',
             '27.07.2011'),
        )

        err_cases = (
            ('1.7.2016', '', '', ''),
            ('XXX', '1', '', ''),
            ('1.7.2016', 'XXX', '', ''),
            ('1.7.2016', '', 'XXX', ''),
            ('1.7.2016', '', '', 'XXX'),
            ('1.7.2016', '1', 'XXX', ''),
            ('1.7.2016', '0', '', ''),
            ('1.7.2016', '-1', '', ''),
        )

        res = self.client.get('/dvt')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/dvt/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'dvt_mainpage.xhtml')
        check_html(self, res.content)

        num = 1
        for test in cases:
            res = self.client.post(
                '/dvt/', {
                    'beg_date': test[0],
                    'years': test[1],
                    'months': test[2],
                    'days': test[3]
                })
            self.assertEqual(res.status_code, HTTPStatus.OK)
            self.assertTemplateUsed(res, 'dvt_mainpage.xhtml')
            soup = BeautifulSoup(res.content, 'html.parser')
            msg = soup.find('td', 'msg').select('div')
            self.assertEqual(len(msg), 4)
            self.assertEqual(msg[0].text, 'Trest skončí: {}'.format(test[4]))
            self.assertEqual(msg[1].text, 'Třetina trestu: {}'.format(test[5]))
            self.assertEqual(msg[2].text,
                             'Polovina trestu: {}'.format(test[6]))
            self.assertEqual(msg[3].text,
                             'Dvě třetiny trestu: {}'.format(test[7]))
            check_html(self, res.content, key=num)
            num += 1

        num = 1
        for test in err_cases:
            res = self.client.post(
                '/dvt/', {
                    'beg_date': test[0],
                    'years': test[1],
                    'months': test[2],
                    'days': test[3]
                })
            self.assertEqual(res.status_code, HTTPStatus.OK)
            self.assertTemplateUsed(res, 'dvt_mainpage.xhtml')
            soup = BeautifulSoup(res.content, 'html.parser')
            msg = soup.find('td', 'msg').select('div')
            self.assertEqual(msg[0].text, 'Chybné zadání')
            check_html(self, res.content, key=num)
            num += 1
예제 #20
0
파일: test_szr.py 프로젝트: dimov-cz/legal
    def test_procform(self):

        res = self.client.get('/szr/procform')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/szr/procform/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/szr/procform/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.client.force_login(User.objects.get(pk=1))

        res = self.client.get('/szr/procform/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        title = soup.select('h1')
        self.assertEqual(len(title), 1)
        self.assertEqual(title[0].text, 'Nové řízení')

        res = self.client.post('/szr/procform/', {
            'register': 'C',
            'number': '110',
            'year': '2016',
            'desc': 'Test',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/szr/procform/', {
            'court': 'XXX',
            'register': 'C',
            'number': '110',
            'year': '2016',
            'desc': 'Test',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/szr/procform/', {
            'court': 'MSPHAAB',
            'senate': '-1',
            'register': 'C',
            'number': '110',
            'year': '2016',
            'desc': 'Test',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/szr/procform/', {
            'court': 'MSPHAAB',
            'senate': 'XXX',
            'register': 'C',
            'number': '110',
            'year': '2016',
            'desc': 'Test',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/szr/procform/', {
            'court': 'MSPHAAB',
            'senate': '52',
            'number': '110',
            'year': '2016',
            'desc': 'Test',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/szr/procform/', {
            'court': 'MSPHAAB',
            'senate': '52',
            'register': 'XXX',
            'number': '110',
            'year': '2016',
            'desc': 'Test',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/szr/procform/', {
            'court': 'MSPHAAB',
            'senate': '52',
            'register': 'C',
            'year': '2016',
            'desc': 'Test',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/szr/procform/', {
            'court': 'MSPHAAB',
            'senate': '52',
            'register': 'C',
            'number': '0',
            'year': '2016',
            'desc': 'Test',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/szr/procform/', {
            'court': 'MSPHAAB',
            'senate': '52',
            'register': 'C',
            'number': 'XXX',
            'year': '2016',
            'desc': 'Test',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/szr/procform/', {
            'court': 'MSPHAAB',
            'senate': '52',
            'register': 'C',
            'number': '110',
            'desc': 'Test',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/szr/procform/', {
            'court': 'MSPHAAB',
            'senate': '52',
            'register': 'C',
            'number': '110',
            'year': '1989',
            'desc': 'Test',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/szr/procform/', {
            'court': 'MSPHAAB',
            'senate': '52',
            'register': 'C',
            'number': '110',
            'year': 'XXX',
            'desc': 'Test',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/szr/procform/',
                               {'submit_back': 'Zpět bez uložení'},
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post('/szr/procform/', {
            'court': 'MSPHAAB',
            'senate': '52',
            'register': 'C',
            'number': '110',
            'year': '2016',
            'desc': 'Test 6',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post('/szr/procform/', {
            'court': 'MSPHAAB',
            'senate': '52',
            'register': 'C',
            'number': '110',
            'year': '2016',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post('/szr/procform/', {
            'court': 'MSPHAAB',
            'register': 'C',
            'number': '110',
            'year': '2016',
            'desc': 'Test',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        check_html(self, res.content)

        proc_id = models.Proceedings.objects.create(uid_id=1,
                                                    court_id='MSPHAAB',
                                                    senate=52,
                                                    register='C',
                                                    number=1,
                                                    year=2016,
                                                    desc='Test 2').id

        res = self.client.get('/szr/procform/{:d}/'.format(proc_id))
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        title = soup.select('h1')
        self.assertEqual(len(title), 1)
        self.assertEqual(title[0].text, 'Úprava řízení')

        res = self.client.post('/szr/procform/{:d}/'.format(proc_id), {
            'court': 'MSPHAAB',
            'senate': '52',
            'register': 'C',
            'number': '110',
            'year': '2016',
            'desc': 'Test 8',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        proc = models.Proceedings.objects.get(pk=proc_id)
        self.assertEqual(proc.senate, 52)
        self.assertEqual(proc.register, 'C')
        self.assertEqual(proc.number, 110)
        self.assertEqual(proc.year, 2016)
        self.assertEqual(proc.desc, 'Test 8')
        check_html(self, res.content)

        res = self.client.post('/szr/procform/{:d}/'.format(proc_id), {
            'court': 'MSPHAAB',
            'senate': '52',
            'register': 'C',
            'number': '110',
            'year': '2016',
            'desc': 'Test 9',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        proc = models.Proceedings.objects.get(pk=proc_id)
        self.assertEqual(proc.senate, 52)
        self.assertEqual(proc.register, 'C')
        self.assertEqual(proc.number, 110)
        self.assertEqual(proc.year, 2016)
        self.assertEqual(proc.desc, 'Test 9')
        check_html(self, res.content)
예제 #21
0
파일: test_dir.py 프로젝트: tompecina/legal
    def test_debtorbatchform(self):

        models.Debtor.objects.create(uid=self.user, name='Název 1', name_opt=0, first_name_opt=0, desc='Test 1')
        models.Debtor.objects.create(uid=self.user, name_opt=0, first_name_opt=0, desc='Test 21')
        models.Debtor.objects.create(uid=self.user, name_opt=0, first_name_opt=0, desc='Test 21')

        res = self.client.get('/dir/debtorbatchform')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/dir/debtorbatchform/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/dir/debtorbatchform/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/dir/debtorbatchform/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtorbatchform.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtorbatchform/',
            {'submit_load': 'Načíst'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtorbatchform.xhtml')
        self.assertContains(res, 'Nejprve zvolte soubor k načtení')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtorbatchform/',
            {'submit_xxx': 'XXX'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtorbatchform.xhtml')
        self.assertEqual(res.context['err_message'], 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        with open(join(TEST_DATA_DIR, 'dir_import.csv'), 'rb') as infile:
            res = self.client.post(
                '/dir/debtorbatchform/',
                {'submit_load': 'Načíst',
                 'load': infile},
                follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtorbatchresult.xhtml')
        self.assertEqual(models.Debtor.objects.count(), 9)
        self.assertEqual(res.context['count'], 7)
        self.assertEqual(
            res.context['errors'],
            [(3, 'Prázdný popis'),
             (4, 'Chybný formát'),
             (5, 'Chybná zkratka pro posici v poli <q>název</q>'),
             (6, 'Příliš dlouhé pole <q>název</q>'),
             (7, 'Chybná zkratka pro posici v poli <q>jméno</q>'),
             (8, 'Příliš dlouhé pole <q>jméno</q>'),
             (9, 'Chybná hodnota pro IČO'),
             (10, 'Chybná hodnota pro IČO'),
             (11, 'Chybná hodnota pro DIČ'),
             (12, 'Chybná hodnota pro rodné číslo'),
             (13, 'Chybná hodnota pro datum narození'),
             (14, 'Chybná hodnota pro pole <q>rokNarozeníOd</q>'),
             (15, 'Chybná hodnota pro pole <q>rokNarozeníOd</q>'),
             (16, 'Chybná hodnota pro pole <q>rokNarozeníDo</q>'),
             (17, 'Chybná hodnota pro pole <q>rokNarozeníDo</q>'),
             (18, 'Chybný interval pro rok narození'),
             (19, 'Chybný formát'),
             (20, 'Chybný parametr: "xxx"'),
             (21, 'Popisu "Test 21" odpovídá více než jeden dlužník'),
             (28, 'Příliš dlouhý popis'),
            ])
        check_html(self, res.content)

        res = self.client.get('/dir/debtorexport/')
        self.assertEqual(
            res.content.decode('utf-8'),
            '''Test 1,název=Název 2:*
Test 21
Test 21
Test 22,soud=KSOS,název=Název:*,jméno=Jméno:<,IČO=12345678,DIČ=001-12345678,RČ=700101/1234,datumNarození=01.01.1970,\
rokNarozeníOd=1965,rokNarozeníDo=1966
Test 23,soud=KSOS,název=Název:<,jméno=Jméno:>,IČO=12345678,DIČ=001-12345678,RČ=700101/1234,datumNarození=01.01.1970,\
rokNarozeníOd=1965,rokNarozeníDo=1966
Test 24,soud=KSOS,název=Název:>,jméno=Jméno:=,IČO=12345678,DIČ=001-12345678,RČ=700101/1234,datumNarození=01.01.1970,\
rokNarozeníOd=1965,rokNarozeníDo=1966
Test 25,soud=KSOS,název=Název:=,jméno=Jméno:*,IČO=12345678,DIČ=001-12345678,RČ=700101/1234,datumNarození=01.01.1970,\
rokNarozeníOd=1965,rokNarozeníDo=1966
Test 26,soud=KSOS,název=Název:*,jméno=Jméno:*,IČO=12345678,DIČ=001-12345678,RČ=700101/1234,datumNarození=01.01.1970,\
rokNarozeníOd=1965,rokNarozeníDo=1966
{}
'''.format('T' * 255).replace('\n', '\r\n'))
예제 #22
0
파일: test_szr.py 프로젝트: tompecina/legal
    def test_procform(self):

        res = self.client.get('/szr/procform')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/szr/procform/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/szr/procform/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.client.force_login(User.objects.get(pk=1))

        res = self.client.get('/szr/procform/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        title = soup.select('h1')
        self.assertEqual(len(title), 1)
        self.assertEqual(title[0].text, 'Nové řízení')

        res = self.client.post(
            '/szr/procform/',
            {'register': 'C',
             'number': '110',
             'year': '2016',
             'desc': 'Test',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procform/',
            {'court': 'XXX',
             'register': 'C',
             'number': '110',
             'year': '2016',
             'desc': 'Test',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procform/',
            {'court': 'MSPHAAB',
             'senate': '-1',
             'register': 'C',
             'number': '110',
             'year': '2016',
             'desc': 'Test',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procform/',
            {'court': 'MSPHAAB',
             'senate': 'XXX',
             'register': 'C',
             'number': '110',
             'year': '2016',
             'desc': 'Test',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procform/',
            {'court': 'MSPHAAB',
             'senate': '52',
             'number': '110',
             'year': '2016',
             'desc': 'Test',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procform/',
            {'court': 'MSPHAAB',
             'senate': '52',
             'register': 'XXX',
             'number': '110',
             'year': '2016',
             'desc': 'Test',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procform/',
            {'court': 'MSPHAAB',
             'senate': '52',
             'register': 'C',
             'year': '2016',
             'desc': 'Test',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procform/',
            {'court': 'MSPHAAB',
             'senate': '52',
             'register': 'C',
             'number': '0',
             'year': '2016',
             'desc': 'Test',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procform/',
            {'court': 'MSPHAAB',
             'senate': '52',
             'register': 'C',
             'number': 'XXX',
             'year': '2016',
             'desc': 'Test',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procform/',
            {'court': 'MSPHAAB',
             'senate': '52',
             'register': 'C',
             'number': '110',
             'desc': 'Test',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procform/',
            {'court': 'MSPHAAB',
             'senate': '52',
             'register': 'C',
             'number': '110',
             'year': '1989',
             'desc': 'Test',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procform/',
            {'court': 'MSPHAAB',
             'senate': '52',
             'register': 'C',
             'number': '110',
             'year': 'XXX',
             'desc': 'Test',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procform/',
            {'submit_back': 'Zpět bez uložení'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procform/',
            {'court': 'MSPHAAB',
             'senate': '52',
             'register': 'C',
             'number': '110',
             'year': '2016',
             'desc': 'Test 6',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procform/',
            {'court': 'MSPHAAB',
             'senate': '52',
             'register': 'C',
             'number': '110',
             'year': '2016',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procform/',
            {'court': 'MSPHAAB',
             'register': 'C',
             'number': '110',
             'year': '2016',
             'desc': 'Test',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        check_html(self, res.content)

        proc_id = models.Proceedings.objects.create(
            uid_id=1,
            court_id='MSPHAAB',
            senate=52,
            register='C',
            number=1,
            year=2016,
            desc='Test 2').id

        res = self.client.get('/szr/procform/{:d}/'.format(proc_id))
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'szr_procform.xhtml')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        title = soup.select('h1')
        self.assertEqual(len(title), 1)
        self.assertEqual(title[0].text, 'Úprava řízení')

        res = self.client.post(
            '/szr/procform/{:d}/'.format(proc_id),
            {'court': 'MSPHAAB',
             'senate': '52',
             'register': 'C',
             'number': '110',
             'year': '2016',
             'desc': 'Test 8',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        proc = models.Proceedings.objects.get(pk=proc_id)
        self.assertEqual(proc.senate, 52)
        self.assertEqual(proc.register, 'C')
        self.assertEqual(proc.number, 110)
        self.assertEqual(proc.year, 2016)
        self.assertEqual(proc.desc, 'Test 8')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procform/{:d}/'.format(proc_id),
            {'court': 'MSPHAAB',
             'senate': '52',
             'register': 'C',
             'number': '110',
             'year': '2016',
             'desc': 'Test 9',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        proc = models.Proceedings.objects.get(pk=proc_id)
        self.assertEqual(proc.senate, 52)
        self.assertEqual(proc.register, 'C')
        self.assertEqual(proc.number, 110)
        self.assertEqual(proc.year, 2016)
        self.assertEqual(proc.desc, 'Test 9')
        check_html(self, res.content)
예제 #23
0
파일: test_szr.py 프로젝트: tompecina/legal
    def test_mainpage(self):

        res = self.client.get('/szr')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/szr/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/szr/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/szr/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/',
            {'email': 'xxx',
             'submit': 'Změnit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/',
            {'email': 'alt@' + LOCAL_DOMAIN,
             'submit': 'Změnit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.user = User.objects.get(username='******')
        self.assertEqual(self.user.email, 'alt@' + LOCAL_DOMAIN)
        check_html(self, res.content)

        res = self.client.get('/szr/')
        soup = BeautifulSoup(res.content, 'html.parser')
        self.assertFalse(soup.select('table#list'))
        check_html(self, res.content)

        self.client.force_login(User.objects.get(pk=1))

        res = self.client.get('/szr/')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        self.assertEqual(len(soup.select('table#list tbody tr')), 7)
        models.Proceedings(
            uid_id=1,
            court_id='OSPHA02',
            senate=15,
            register='C',
            number=13287,
            year=2016,
            desc='Test').save()

        res = self.client.get('/szr/')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        self.assertEqual(len(soup.select('table#list tbody tr')), 8)
        for number in range(200, 437):
            models.Proceedings(
                uid_id=1,
                court_id='OSPHA02',
                senate=15,
                register='C',
                number=number,
                year=2016,
                desc='Test {:d}'.format(number)).save()

        res = self.client.get('/szr/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 4)
        self.assertEqual(links[0]['href'], '/szr/procform/')
        self.assertEqual(links[1]['href'], '#')
        self.assertTrue(link_equal(links[2]['href'], '/szr/?start=50'))
        self.assertTrue(link_equal(links[3]['href'], '/szr/?start=200'))

        res = self.client.get('/szr/?start=50')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 6)
        self.assertEqual(links[0]['href'], '/szr/procform/')
        self.assertTrue(link_equal(links[1]['href'], '/szr/?start=0'))
        self.assertTrue(link_equal(links[2]['href'], '/szr/?start=0'))
        self.assertEqual(links[3]['href'], '#')
        self.assertTrue(link_equal(links[4]['href'], '/szr/?start=100'))
        self.assertTrue(link_equal(links[5]['href'], '/szr/?start=200'))

        res = self.client.get('/szr/?start=100')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 6)
        self.assertEqual(links[0]['href'], '/szr/procform/')
        self.assertTrue(link_equal(links[1]['href'], '/szr/?start=0'))
        self.assertTrue(link_equal(links[2]['href'], '/szr/?start=50'))
        self.assertEqual(links[3]['href'], '#')
        self.assertTrue(link_equal(links[4]['href'], '/szr/?start=150'))
        self.assertTrue(link_equal(links[5]['href'], '/szr/?start=200'))

        res = self.client.get('/szr/?start=200')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 45)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 4)
        self.assertEqual(links[0]['href'], '/szr/procform/')
        self.assertTrue(link_equal(links[1]['href'], '/szr/?start=0'))
        self.assertTrue(link_equal(links[2]['href'], '/szr/?start=150'))
        self.assertEqual(links[3]['href'], '#')

        res = self.client.get('/szr/?start=500')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 1)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 4)
        self.assertEqual(links[0]['href'], '/szr/procform/')
        self.assertTrue(link_equal(links[1]['href'], '/szr/?start=0'))
        self.assertTrue(link_equal(links[2]['href'], '/szr/?start=194'))
        self.assertEqual(links[3]['href'], '#')
예제 #24
0
    def test_trans(self):

        res = self.client.get('/hjp/transform')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/hjp/transform/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/hjp/transform/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        today = date.today()

        res = self.client.post(
            '/hjp/transform/',
            {'transaction_type': 'balance',
             'submit_set_date': 'Dnes'})
        self.assertEqual(res.context['form']['date'].value(), today)

        res = self.client.get('/hjp/transform/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'hjp_transform.xhtml')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        title = soup.select('h1')
        self.assertEqual(len(title), 1)
        self.assertEqual(title[0].text, 'Nová transakce')

        res = self.client.post(
            '/hjp/transform/',
            {'date': '5.8.2014',
             'transaction_type': 'debit',
             'amount': '5000',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/hjp/transform/',
            {'date': '25.10.2014',
             'transaction_type': 'credit',
             'amount': '4000',
             'repayment_preference': 'interest',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/hjp/transform/',
            {'date': '25.10.2015',
             'transaction_type': 'balance',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/hjp/transform/',
            {'submit_back': 'Zpět bez uložení'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.get('/hjp/transform/100/')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/hjp/transform/2/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'hjp_transform.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/hjp/transform/3/',
            {'date': '25.10.2015',
             'transaction_type': 'balance',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/hjp/transform/100/',
            {'date': '25.10.2015',
             'transaction_type': 'balance',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.post(
            '/hjp/transform/',
            {'date': 'XXX',
             'transaction_type': 'balance',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_transform.xhtml')
        self.assertEqual(res.context['err_message'], 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.get('/hjp/transdel/3/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_transdel.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/hjp/transdel/3/',
            {'submit_no': 'Ne'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/hjp/transdel/3/',
            {'submit_yes': 'Ano'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_transdeleted.xhtml')
        check_html(self, res.content)

        res = self.client.get('/hjp/transdel/3/')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.post('/hjp/transdel/3/', follow=True)
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)
예제 #25
0
    def test_main(self):

        res = self.client.get('/hjp')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/hjp/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/hjp/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/hjp/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/hjp/',
            {'rounding': '0',
             'model': 'none',
             'submit_update': 'Aktualisovat'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/hjp/',
            {'rounding': '0',
             'model': 'fixed',
             'fixed_amount': 'XXX',
             'submit_update': 'Aktualisovat'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
        self.assertEqual(res.context['err_message'], 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/hjp/',
            {'rounding': '0',
             'model': 'none',
             'submit_empty': 'Vyprázdnit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/hjp/',
            {'rounding': '0',
             'model': 'none',
             'title': 'test',
             'note': 'n',
             'internal_note': 'in',
             'submit_empty': 'Vyprázdnit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        title = soup.select('#id_title')
        self.assertEqual(len(title), 1)
        self.assertNotIn('value', title[0])
        note = soup.select('#id_note')
        self.assertEqual(len(note), 1)
        self.assertEqual(note[0].text, '')
        internal_note = soup.select('#id_internal_note')
        self.assertEqual(len(internal_note), 1)
        self.assertEqual(internal_note[0].text, '')

        for suf in (
                ('xml', 'Uložit', 'text/xml; charset=utf-8'),
                ('pdf', 'Export do PDF', 'application/pdf'),
        ):
            with open(join(TEST_DATA_DIR, 'hjp_debt1.{}'.format(suf[0])), 'rb') as infile:
                res = self.client.post(
                    '/hjp/',
                    {'currency_0': 'EUR',
                     'rounding': '2',
                     'model': 'none',
                     'submit_load': 'Načíst',
                     'load': infile},
                    follow=True)
            self.assertEqual(res.status_code, HTTPStatus.OK)
            self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
            check_html(self, res.content, key=suf[0])
            soup = BeautifulSoup(res.content, 'html.parser')
            title = soup.select('#id_title')
            self.assertEqual(len(title), 1)
            self.assertEqual(title[0]['value'], TEST_STRING)
            note = soup.select('#id_note')
            self.assertEqual(len(note), 1)
            self.assertEqual(note[0].text, 'Poznámka')
            internal_note = soup.select('#id_internal_note')
            self.assertEqual(len(internal_note), 1)
            self.assertEqual(internal_note[0].text, 'Interní poznámka')
            currency_0 = soup.select('#id_currency_0 option[value=CZK]')
            self.assertEqual(len(currency_0), 1)
            self.assertTrue(currency_0[0].has_attr('selected'))
            rounding = soup.select('#id_rounding option[value=0]')
            self.assertEqual(len(rounding), 1)
            self.assertTrue(rounding[0].has_attr('selected'))

            res = self.client.post(
                '/hjp/',
                {'currency_0': 'OTH',
                 'currency_1': 'AUD',
                 'rounding': '2',
                 'model': 'none',
                 'title': TEST_STRING,
                 'note': 'nn',
                 'internal_note': 'in',
                 'submit_' + suf[0]: suf[1]})
            self.assertEqual(res.status_code, HTTPStatus.OK)
            self.assertIn('content-type', res)
            self.assertEqual(res['content-type'], suf[2])
            if suf[0] == 'xml':
                self.assertTrue(validate_xml(res.content, XSD))

            con = BytesIO(res.content)
            con.seek(0)

            res = self.client.post(
                '/hjp/',
                {'submit_load': 'Načíst',
                 'load': con},
                follow=True)
            con.close()
            self.assertEqual(res.status_code, HTTPStatus.OK)
            self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
            check_html(self, res.content)
            soup = BeautifulSoup(res.content, 'html.parser')
            title = soup.select('#id_title')
            self.assertEqual(len(title), 1)
            self.assertEqual(title[0]['value'], TEST_STRING)
            note = soup.select('#id_note')
            self.assertEqual(len(note), 1)
            self.assertEqual(note[0].text, 'nn')
            internal_note = soup.select('#id_internal_note')
            self.assertEqual(len(internal_note), 1)
            self.assertEqual(internal_note[0].text, 'in')
            currency_0 = soup.select('#id_currency_0 option[value=OTH]')
            self.assertEqual(len(currency_0), 1)
            self.assertTrue(currency_0[0].has_attr('selected'))
            currency_1 = soup.select('#id_currency_1')
            self.assertEqual(len(currency_1), 1)
            self.assertEqual(currency_1[0]['value'], 'AUD')
            rounding = soup.select('#id_rounding option[value=2]')
            self.assertEqual(len(rounding), 1)
            self.assertTrue(rounding[0].has_attr('selected'))

        with open(join(TEST_DATA_DIR, 'hjp_debt1.xml'), 'rb') as infile:
            res = self.client.post(
                '/hjp/',
                {'currency_0': 'EUR',
                 'rounding': '2',
                 'model': 'none',
                 'submit_load': 'Načíst',
                 'load': infile},
                follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/hjp/',
            {'currency_0': 'CZK',
             'rounding': '0',
             'model': 'per_annum',
             'pa_rate': '12,6',
             'ydconv': 'ACT/ACT',
             'title': TEST_STRING,
             'note': 'nn',
             'internal_note': 'in',
             'submit_csv': 'Export do CSV'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertIn('content-type', res)
        self.assertEqual(res['content-type'], 'text/csv; charset=utf-8')
        string = res.content.decode('utf-8')
        with open(join(TEST_DATA_DIR, 'hjp_debt1.csv'), 'rb') as infile:
            dat = infile.read().decode('utf-8')
        self.assertEqual(string, dat)

        with open(join(TEST_DATA_DIR, 'hjp_err_debt1.xml'), 'rb') as infile:
            res = self.client.post(
                '/hjp/',
                {'currency_0': 'CZK',
                 'rounding': '0',
                 'model': 'none',
                 'submit_load': 'Načíst',
                 'load': infile},
                follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        button = soup.select('input[name=submit_csv]')
        self.assertEqual(len(button), 1)
        self.assertTrue(button[0].has_attr('disabled'))
        self.assertContains(res, 'Chybné datum, data nejsou k disposici')

        res = self.client.post(
            '/hjp/',
            {'currency_0': 'OTH',
             'currency_1': 'AUD',
             'rounding': '2',
             'model': 'none',
             'title': TEST_STRING,
             'note': 'nn',
             'internal_note': 'in',
             'submit_pdf': 'Export do PDF'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertIn('content-type', res)
        self.assertEqual(res['content-type'], 'application/pdf')

        res = self.client.post(
            '/hjp/',
            {'currency_0': 'EUR',
             'rounding': '2',
             'model': 'none',
             'submit_load': 'Načíst',
             'load': None},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
        self.assertEqual(res.context['err_message'], 'Nejprve zvolte soubor k načtení')
        check_html(self, res.content)

        with open(join(TEST_DATA_DIR, 'hjp_err_debt2.xml'), 'rb') as infile:
            res = self.client.post(
                '/hjp/',
                {'currency_0': 'CZK',
                 'rounding': '0',
                 'model': 'none',
                 'submit_load': 'Načíst',
                 'load': infile},
                follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
        self.assertEqual(res.context['err_message'], 'Chyba při načtení souboru')
        check_html(self, res.content)

        with open(join(TEST_DATA_DIR, 'hjp_err_debt3.xml'), 'rb') as infile:
            res = self.client.post(
                '/hjp/',
                {'currency_0': 'CZK',
                 'rounding': '0',
                 'model': 'none',
                 'submit_load': 'Načíst',
                 'load': infile},
                follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
        self.assertEqual(res.context['err_message'], 'Chyba při načtení souboru')
        check_html(self, res.content)

        res = self.client.post(
            '/hjp/',
            {'currency_0': 'EUR',
             'rounding': '2',
             'model': 'none',
             'next': '/hjp/'})
        self.assertRedirects(res, '/hjp/')

        idx = 1
        while True:
            try:
                infile = open(join(TEST_DATA_DIR, 'hjp_debt{:d}.xml'.format(idx)), 'rb')
            except:
                self.assertGreater(idx, 1)
                break
            res = self.client.post(
                '/hjp/',
                {'currency_0': 'EUR',
                 'rounding': '2',
                 'model': 'none',
                 'submit_load': 'Načíst',
                 'load': infile},
                follow=True)
            infile.close()
            self.assertEqual(res.status_code, HTTPStatus.OK)
            self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
            dct = {'submit_pdf': 'Export do PDF'}
            form = res.context['form']
            for key in form.fields:
                val = form[key].value()
                if val:
                    dct[key] = p2c(str(val))
            soup = BeautifulSoup(res.content, 'html.parser')
            dct['currency_0'] = soup.select('#id_currency_0 option[selected]')[0]['value']
            dct['currency_1'] = dct['currency']

            res = self.client.post('/hjp/', dct)
            self.assertEqual(res.status_code, HTTPStatus.OK)
            self.assertIn('content-type', res)
            self.assertEqual(res['content-type'], 'application/pdf')
            con = BytesIO(res.content)
            con.seek(0)

            res = self.client.post(
                '/hjp/',
                {'submit_load': 'Načíst',
                 'load': con},
                follow=True)
            con.close()
            self.assertEqual(res.status_code, HTTPStatus.OK)
            self.assertTemplateUsed(res, 'hjp_mainpage.xhtml')
            idx += 1
예제 #26
0
파일: test_sur.py 프로젝트: dimov-cz/legal
    def test_partybatchform(self):

        models.Party.objects.create(uid=self.user,
                                    party_opt=0,
                                    party='Test 01')

        models.Party.objects.create(uid=self.user,
                                    party_opt=0,
                                    party='Test 05')

        models.Party.objects.create(uid=self.user,
                                    party_opt=0,
                                    party='Test 05')

        res = self.client.get('/sur/partybatchform')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/sur/partybatchform/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/sur/partybatchform/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/sur/partybatchform/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partybatchform.xhtml')
        check_html(self, res.content)

        res = self.client.post('/sur/partybatchform/',
                               {'submit_load': 'Načíst'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partybatchform.xhtml')
        self.assertContains(res, 'Nejprve zvolte soubor k načtení')
        check_html(self, res.content)

        res = self.client.post('/sur/partybatchform/', {'submit_xxx': 'XXX'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partybatchform.xhtml')
        self.assertEqual(res.context['err_message'],
                         'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        with open(join(TEST_DATA_DIR, 'sur_import.csv'), 'rb') as infile:
            res = self.client.post('/sur/partybatchform/', {
                'submit_load': 'Načíst',
                'load': infile
            },
                                   follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partybatchresult.xhtml')
        self.assertEqual(models.Party.objects.count(), 9)
        self.assertEqual(res.context['count'], 6)
        self.assertEqual(
            res.context['errors'],
            [(1, 'Chybná délka řetězce'), (3, 'Chybná délka řetězce'),
             (4, 'Chybná zkratka pro posici'),
             (5, 'Řetězci "Test 05" odpovídá více než jeden účastník')])
        check_html(self, res.content)

        res = self.client.get('/sur/partyexport/')
        self.assertEqual(
            res.content.decode('utf-8'), '''\
Test 01:*
Test 05:*
Test 05:*
Test 06:*
Test 07:*
Test 08:<
Test 09:>
Test 10:=
{}:*
'''.format('T' * 80).replace('\n', '\r\n'))
예제 #27
0
    def test_main(self):

        button_names = (
            'submit_show_fx',
            'submit_conv_from',
            'submit_conv_to',
            'submit_DISC',
            'submit_LOMB',
            'submit_REPO',
        )

        button_values = (
            'Zobrazit kurs',
            'Převod cizí měna → CZK',
            'Převod CZK → cizí měna',
            'Diskontní sazba',
            'Lombardní sazba',
            '2T repo sazba',
        )

        cases = (
            ('EUR', '', '1.7.2016', '', '', 0,
             ('1 EUR = 17,095 CZK', '(Kurs vyhlášený ke dni: 01.07.2016)')),
            ('USD', '', '1.7.2016', '', '', 0,
             ('1 USD = 34,335 CZK', '(Kurs vyhlášený ke dni: 01.07.2016)')),
            ('OTH', 'THB', '1.7.2016', '', '', 0,
             ('100 THB = 99,430 CZK', '(Kurs vyhlášený ke dni: 01.07.2016)')),
            ('OTH', 'VAL', '1.7.2016', '', '', 0,
             ('Kurs není v kursové tabulce', )),
            ('OTH', '', '1.7.2016', '', '', 0, ('Chybné zadání', )),
            ('EUR', '', '1.17.2016', '', '', 0, ('Chybné zadání', )),
            ('EUR', '', '1.7.2016', '516', '', 1,
             ('516,00 EUR = 8.821,02 CZK', '1 EUR = 17,095 CZK',
              '(Kurs vyhlášený ke dni: 01.07.2016)')),
            ('USD', '', '1.7.2016', '179.500', '', 1,
             ('179.500,00 USD = 6.163.132,50 CZK', '1 USD = 34,335 CZK',
              '(Kurs vyhlášený ke dni: 01.07.2016)')),
            ('USD', '', '1.7.2016', '179 500', '', 1,
             ('179.500,00 USD = 6.163.132,50 CZK', '1 USD = 34,335 CZK',
              '(Kurs vyhlášený ke dni: 01.07.2016)')),
            ('USD', '', '1.7.2016', '179 500,00', '', 1,
             ('179.500,00 USD = 6.163.132,50 CZK', '1 USD = 34,335 CZK',
              '(Kurs vyhlášený ke dni: 01.07.2016)')),
            ('USD', '', '1.7.2016', '0.179 500,00', '', 1,
             ('179.500,00 USD = 6.163.132,50 CZK', '1 USD = 34,335 CZK',
              '(Kurs vyhlášený ke dni: 01.07.2016)')),
            ('OTH', 'THB', '1.7.2016', '116', '', 1,
             ('116,00 THB = 115,34 CZK', '100 THB = 99,430 CZK',
              '(Kurs vyhlášený ke dni: 01.07.2016)')),
            ('OTH', 'VAL', '1.7.2016', '4000', '', 1,
             ('Kurs není v kursové tabulce', )),
            ('OTH', '', '1.7.2016', '515', '', 1, ('Chybné zadání', )),
            ('EUR', '', '1.17.2016', '968,50', '', 1, ('Chybné zadání', )),
            ('OTH', 'USD', '1.7.2016', '0', '', 1, ('Chybné zadání', )),
            ('OTH', 'USD', '1.7.2016', '-515', '', 1, ('Chybné zadání', )),
            ('EUR', '', '1.7.2016', '516', '', 2,
             ('516,00 CZK = 30,18 EUR', '1 EUR = 17,095 CZK',
              '(Kurs vyhlášený ke dni: 01.07.2016)')),
            ('USD', '', '1.7.2016', '179.500', '', 2,
             ('179.500,00 CZK = 5.227,90 USD', '1 USD = 34,335 CZK',
              '(Kurs vyhlášený ke dni: 01.07.2016)')),
            ('OTH', 'THB', '1.7.2016', '116', '', 2,
             ('116,00 CZK = 116,66 THB', '100 THB = 99,430 CZK',
              '(Kurs vyhlášený ke dni: 01.07.2016)')),
            ('OTH', 'VAL', '1.7.2016', '4000', '', 2,
             ('Kurs není v kursové tabulce', )),
            ('OTH', '', '1.7.2016', '515', '', 2, ('Chybné zadání', )),
            ('EUR', '', '1.17.2016', '968,50', '', 2, ('Chybné zadání', )),
            ('OTH', 'USD', '1.7.2016', '0', '', 2, ('Chybné zadání', )),
            ('OTH', 'USD', '1.7.2016', '-515', '', 2, ('Chybné zadání', )),
            ('EUR', '', '', '', '19.11.2014', 3,
             ('Diskontní sazba platná ke dni 19.11.2014:', '0,06 %')),
            ('EUR', '', '', '', '21.6.1996', 4,
             ('Lombardní sazba platná ke dni 21.06.1996:', '4,00 %')),
            ('EUR', '', '', '', '1.5.2008', 5,
             ('Chyba spojení se serverem ČNB', )),
            ('OTH', 'USD', '', '', '29.2.2014', 3, ('Chybné zadání', )),
            ('OTH', 'USD', '', '', '29.2.2014', 4, ('Chybné zadání', )),
            ('OTH', 'USD', '', '', '29.2.2014', 5, ('Chybné zadání', )),
        )

        res = self.client.get('/cnb')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/cnb/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'cnb_mainpage.xhtml')
        check_html(self, res.content)

        today = date.today()

        for button in ('fx_date', 'mpi_date'):
            res = self.client.post('/cnb/', {'submit_set_' + button: True})
            self.assertEqual(res.context['form'][button].value(), today)
            check_html(self, res.content, key=button)

        num = 1
        for test in cases:
            res = self.client.post(
                '/cnb/', {
                    'curr_0': test[0],
                    'curr_1': test[1],
                    'fx_date': test[2],
                    'basis': test[3],
                    'mpi_date': test[4],
                    button_names[test[5]]: button_values[test[5]]
                })
            self.assertEqual(res.status_code, HTTPStatus.OK)
            self.assertTemplateUsed(res, 'cnb_mainpage.xhtml')
            check_html(self, res.content, key=num)
            soup = BeautifulSoup(res.content, 'html.parser')
            msg = soup.find('td', 'msg').select('div')
            length = len(msg)
            self.assertEqual(length, len(test[6]))
            for idx in range(length):
                self.assertEqual(msg[idx].text, test[6][idx])
            num += 1
예제 #28
0
파일: test_dir.py 프로젝트: tompecina/legal
    def test_mainpage(self):

        res = self.client.get('/dir')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/dir/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/dir/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/dir/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'dir_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/',
            {'email': 'xxx',
             'submit': 'Změnit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_mainpage.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/',
            {'email': 'alt@' + LOCAL_DOMAIN,
             'submit': 'Změnit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.user = User.objects.first()
        self.assertEqual(self.user.email, 'alt@' + LOCAL_DOMAIN)
        check_html(self, res.content)

        res = self.client.get('/dir/')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        self.assertFalse(soup.select('table#list'))

        models.Debtor(
            uid=self.user,
            name_opt=0,
            first_name_opt=0,
            desc='Test').save()

        res = self.client.get('/dir/')
        soup = BeautifulSoup(res.content, 'html.parser')
        self.assertEqual(len(soup.select('table#list tbody tr')), 1)
        for number in range(200, 437):
            models.Debtor(uid=self.user, name_opt=0, first_name_opt=0, desc=('Test {:d}'.format(number))).save()

        res = self.client.get('/dir/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 4)
        self.assertEqual(links[0]['href'], '/dir/debtorform/')
        self.assertEqual(links[1]['href'], '#')
        self.assertTrue(link_equal(links[2]['href'], '/dir/?start=50'))
        self.assertTrue(link_equal(links[3]['href'], '/dir/?start=200'))

        res = self.client.get('/dir/?start=50')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 6)
        self.assertEqual(links[0]['href'], '/dir/debtorform/')
        self.assertTrue(link_equal(links[1]['href'], '/dir/?start=0'))
        self.assertTrue(link_equal(links[2]['href'], '/dir/?start=0'))
        self.assertEqual(links[3]['href'], '#')
        self.assertTrue(link_equal(links[4]['href'], '/dir/?start=100'))
        self.assertTrue(link_equal(links[5]['href'], '/dir/?start=200'))

        res = self.client.get('/dir/?start=100')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 6)
        self.assertEqual(links[0]['href'], '/dir/debtorform/')
        self.assertTrue(link_equal(links[1]['href'], '/dir/?start=0'))
        self.assertTrue(link_equal(links[2]['href'], '/dir/?start=50'))
        self.assertEqual(links[3]['href'], '#')
        self.assertTrue(link_equal(links[4]['href'], '/dir/?start=150'))
        self.assertTrue(link_equal(links[5]['href'], '/dir/?start=200'))

        res = self.client.get('/dir/?start=200')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 38)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 4)
        self.assertEqual(links[0]['href'], '/dir/debtorform/')
        self.assertTrue(link_equal(links[1]['href'], '/dir/?start=0'))
        self.assertTrue(link_equal(links[2]['href'], '/dir/?start=150'))
        self.assertEqual(links[3]['href'], '#')

        res = self.client.get('/dir/?start=500')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 1)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 4)
        self.assertEqual(links[0]['href'], '/dir/debtorform/')
        self.assertTrue(link_equal(links[1]['href'], '/dir/?start=0'))
        self.assertTrue(link_equal(links[2]['href'], '/dir/?start=187'))
        self.assertEqual(links[3]['href'], '#')
예제 #29
0
파일: test_uds.py 프로젝트: tompecina/legal
    def test_xmllist(self):

        res0 = '''<?xml version="1.0" encoding="utf-8"?>
<documents application="uds" created="2017-08-31T10:17:35" version="1.0" xmlns="http://{0}" xmlns:xsi="http://www.w\
3.org/2001/XMLSchema-instance" xsi:schemaLocation="{0} {1}/static/uds-1.0.xsd"><document id="82464"><publisher id="\
203040">Okresní soud Pelhřimov</publisher><ref>0 SPR 653/2009</ref><description>Rozvrh práce, změna č. 1</descripti\
on><agenda>Správa soudu</agenda><posted>2009-07-29T08:10:00</posted><files><file id="82788"><name>změna_č._1_RP_.pd\
f</name><url>{2}uds/82788/změna_č._1_RP_.pdf</url></file></files></document></documents>
'''.format(LOCAL_SUBDOMAIN, LOCAL_URL, REPO_URL)

        res = self.client.get('/uds/xmllist')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.post('/uds/xmllist/')
        self.assertEqual(res.status_code, HTTPStatus.METHOD_NOT_ALLOWED)

        res = self.client.get('/uds/xmllist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], 'text/xml; charset=utf-8')
        self.assertTrue(validate_xml(res.content, XSD))

        res = self.client.get('/uds/xmllist/?senate=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/xmllist/?senate=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/xmllist/?number=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/xmllist/?number=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/xmllist/?year=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/xmllist/?year=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/xmllist/?agenda=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/xmllist/?agenda=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/xmllist/?date_posted_from=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/xmllist/?date_posted_to=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/xmllist/?desc_opt=X')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/xmllist/?register=spr')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertXMLEqual(strip_xml(res.content), strip_xml(res0.encode('utf-8')))
        self.assertTrue(validate_xml(res.content, XSD))

        exlim = views.EXLIM
        views.EXLIM = 0
        res = self.client.get('/uds/xmllist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'exlim.xhtml')
        check_html(self, res.content)
        views.EXLIM = exlim
예제 #30
0
파일: test_sur.py 프로젝트: dimov-cz/legal
    def test_partyform(self):

        res = self.client.get('/sur/partyform')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/sur/partyform/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/sur/partyform/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/sur/partyform/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'sur_partyform.xhtml')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        title = soup.select('h1')
        self.assertEqual(len(title), 1)
        self.assertEqual(title[0].text, 'Nový účastník')

        res = self.client.post('/sur/partyform/', {
            'party_opt': 'icontains',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partyform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/sur/partyform/', {
            'party': 'XXX',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partyform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/sur/partyform/', {
            'party': 'Test',
            'party_opt': 'XXX',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partyform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/sur/partyform/',
                               {'submit_back': 'Zpět bez uložení'},
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post('/sur/partyform/', {
            'party': 'Test',
            'party_opt': 'icontains',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')

        party_id = models.Party.objects.create(uid=self.user,
                                               party_opt=0,
                                               party='Test 2').id

        res = self.client.get('/sur/partyform/{:d}/'.format(party_id))
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'sur_partyform.xhtml')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        title = soup.select('h1')
        self.assertEqual(len(title), 1)
        self.assertEqual(title[0].text, 'Úprava účastníka')

        res = self.client.post('/sur/partyform/{:d}/'.format(party_id), {
            'party': 'Test 8',
            'party_opt': 'icontains',
            'submit': 'Uložit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')
        party = models.Party.objects.get(pk=party_id)
        self.assertEqual(party.party, 'Test 8')
예제 #31
0
파일: test_sur.py 프로젝트: dimov-cz/legal
    def test_mainpage(self):

        res = self.client.get('/sur')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/sur/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/sur/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/sur/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post('/sur/', {
            'email': 'xxx',
            'submit': 'Změnit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/sur/', {
            'email': 'alt@' + LOCAL_DOMAIN,
            'submit': 'Změnit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.user = User.objects.first()
        self.assertEqual(self.user.email, 'alt@' + LOCAL_DOMAIN)
        check_html(self, res.content)

        res = self.client.get('/sur/')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        self.assertFalse(soup.select('table#list'))
        models.Party(uid=self.user, party_opt=0, party='Test').save()

        res = self.client.get('/sur/')
        soup = BeautifulSoup(res.content, 'html.parser')
        self.assertEqual(len(soup.select('table#list tbody tr')), 1)
        for number in range(200, 437):
            models.Party(uid=self.user,
                         party_opt=0,
                         party='Test {:d}'.format(number)).save()

        res = self.client.get('/sur/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 4)
        self.assertEqual(links[0]['href'], '/sur/partyform/')
        self.assertEqual(links[1]['href'], '#')
        self.assertTrue(link_equal(links[2]['href'], '/sur/?start=50'))
        self.assertTrue(link_equal(links[3]['href'], '/sur/?start=200'))

        res = self.client.get('/sur/?start=50')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 6)
        self.assertEqual(links[0]['href'], '/sur/partyform/')
        self.assertTrue(link_equal(links[1]['href'], '/sur/?start=0'))
        self.assertTrue(link_equal(links[2]['href'], '/sur/?start=0'))
        self.assertEqual(links[3]['href'], '#')
        self.assertTrue(link_equal(links[4]['href'], '/sur/?start=100'))
        self.assertTrue(link_equal(links[5]['href'], '/sur/?start=200'))

        res = self.client.get('/sur/?start=100')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 6)
        self.assertEqual(links[0]['href'], '/sur/partyform/')
        self.assertTrue(link_equal(links[1]['href'], '/sur/?start=0'))
        self.assertTrue(link_equal(links[2]['href'], '/sur/?start=50'))
        self.assertEqual(links[3]['href'], '#')
        self.assertTrue(link_equal(links[4]['href'], '/sur/?start=150'))
        self.assertTrue(link_equal(links[5]['href'], '/sur/?start=200'))

        res = self.client.get('/sur/?start=200')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 38)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 4)
        self.assertEqual(links[0]['href'], '/sur/partyform/')
        self.assertTrue(link_equal(links[1]['href'], '/sur/?start=0'))
        self.assertTrue(link_equal(links[2]['href'], '/sur/?start=150'))
        self.assertEqual(links[3]['href'], '#')

        res = self.client.get('/sur/?start=500')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 1)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 4)
        self.assertEqual(links[0]['href'], '/sur/partyform/')
        self.assertTrue(link_equal(links[1]['href'], '/sur/?start=0'))
        self.assertTrue(link_equal(links[2]['href'], '/sur/?start=187'))
        self.assertEqual(links[3]['href'], '#')
예제 #32
0
파일: test_szr.py 프로젝트: tompecina/legal
    def test_procdelall(self):

        models.Proceedings.objects.create(
            uid=self.user,
            court_id='MSPHAAB',
            senate=52,
            register='C',
            number=1,
            year=2016,
            desc='Test 1')

        models.Proceedings.objects.create(
            uid=self.user,
            court_id='MSPHAAB',
            senate=52,
            register='C',
            number=2,
            year=2016,
            desc='Test 2')

        self.assertEqual(models.Proceedings.objects.filter(uid=self.user).count(), 2)

        res = self.client.get('/szr/procdelall')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/szr/procdelall/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/szr/procdelall/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/szr/procdelall/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procdelall.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procdelall/',
            {'submit_no': 'Ne'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procdelall/',
            {'submit_yes': 'Ano'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertEqual(models.Proceedings.objects.filter(uid=self.user).count(), 2)
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procdelall/',
            {'submit_yes': 'Ano',
             'conf': 'ano'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertEqual(models.Proceedings.objects.filter(uid=self.user).count(), 2)
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procdelall/',
            {'submit_yes': 'Ano',
             'conf': 'Ano'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertFalse(models.Proceedings.objects.filter(uid=self.user).exists())
        check_html(self, res.content)
예제 #33
0
파일: test_uds.py 프로젝트: tompecina/legal
    def test_csvlist(self):

        res0 = '''Datum vyvěšení,Soud/státní zastupitelství,Popis dokumentu,Spisová značka/číslo jednací,Agenda,\
Soubory
'''

        res1 = '''{}29.07.2009 08:10:00,Okresní soud Pelhřimov,"Rozvrh práce, změna č. 1",0 SPR 653/2009,Správa \
soudu,{}uds/82788/změna_č._1_RP_.pdf
'''.format(res0, REPO_URL)

        res = self.client.get('/uds/csvlist')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.post('/uds/csvlist/')
        self.assertEqual(res.status_code, HTTPStatus.METHOD_NOT_ALLOWED)

        res = self.client.get('/uds/csvlist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], 'text/csv; charset=utf-8')

        res = self.client.get('/uds/csvlist/?senate=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/csvlist/?senate=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/csvlist/?number=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/csvlist/?number=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/csvlist/?year=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/csvlist/?year=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/csvlist/?agenda=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/csvlist/?agenda=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/csvlist/?date_posted_from=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/csvlist/?date_posted_to=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/csvlist/?desc_opt=X')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/csvlist/?register=spr')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertEqual(res.content.decode('utf-8').replace('\r\n', '\n'), res1)

        exlim = views.EXLIM
        views.EXLIM = 0
        res = self.client.get('/uds/csvlist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'exlim.xhtml')
        check_html(self, res.content)
        views.EXLIM = exlim
예제 #34
0
파일: test_szr.py 프로젝트: tompecina/legal
    def test_procbatchform(self):

        models.Proceedings.objects.create(
            uid=self.user,
            court_id='MSPHAAB',
            senate=52,
            register='C',
            number=1,
            year=2016,
            desc='Test 01')

        models.Proceedings.objects.create(
            uid=self.user,
            court_id='MSPHAAB',
            senate=52,
            register='C',
            number=4,
            year=2011,
            desc='Test 13')

        models.Proceedings.objects.create(
            uid=self.user,
            court_id='MSPHAAB',
            senate=52,
            register='C',
            number=5,
            year=2012,
            desc='Test 13')

        res = self.client.get('/szr/procbatchform')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/szr/procbatchform/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/szr/procbatchform/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/szr/procbatchform/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procbatchform.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/szr/procbatchform/',
            {'submit_load': 'Načíst'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procbatchform.xhtml')
        self.assertContains(res, 'Nejprve zvolte soubor k načtení')
        check_html(self, res.content)

        with open(join(TEST_DATA_DIR, 'szr_import.csv'), 'rb') as infile:
            res = self.client.post(
                '/szr/procbatchform/',
                {'submit_load': 'Načíst',
                 'load': infile},
                follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procbatchresult.xhtml')
        self.assertEqual(models.Proceedings.objects.count(), 13)
        self.assertEqual(res.context['count'], 4)
        self.assertEqual(
            res.context['errors'],
            [(3, 'Chybná zkratka soudu'),
             (4, 'Chybná zkratka soudu'),
             (5, 'Chybný formát'),
             (8, 'Chybná spisová značka'),
             (9, 'Chybná spisová značka'),
             (10, 'Chybná spisová značka'),
             (11, 'Chybná spisová značka'),
             (12, 'Chybná spisová značka'),
             (13, 'Popisu "Test 13" odpovídá více než jedno řízení'),
             (14, 'Prázdný popis'),
             (16, 'Příliš dlouhý popis')])
        check_html(self, res.content)

        res = self.client.get('/szr/procexport/')
        self.assertEqual(
            res.content.decode('utf-8'),
            '''\
Test 01,MSPHAAB,45 A 27/2014
Test 06,MSPHAAB,Nc 1070/2016
Test 07,MSPHAAB,Nc 1071/2016
Test 13,MSPHAAB,52 C 4/2011
Test 13,MSPHAAB,52 C 5/2012
{},MSPHAAB,45 A 27/2014
'''.format('T' * 255).replace('\n', '\r\n'))
예제 #35
0
파일: test_dvt.py 프로젝트: tompecina/legal
    def test_main(self):

        cases = (
            ('1.7.2016', '1', '', '', '01.07.2017', '01.11.2016', '01.01.2017', '01.03.2017'),
            ('1. 7. 2016', '1', '', '', '01.07.2017', '01.11.2016', '01.01.2017', '01.03.2017'),
            ('01.07.2016', '1', '', '', '01.07.2017', '01.11.2016', '01.01.2017', '01.03.2017'),
            ('12.7.2011', '11', '5', '16', '28.12.2022', '07.05.2015', '04.04.2017', '04.03.2019'),
            ('7.7.2011', '', '1', '', '07.08.2011', '17.07.2011', '22.07.2011', '27.07.2011'),
        )

        err_cases = (
            ('1.7.2016', '', '', ''),
            ('XXX', '1', '', ''),
            ('1.7.2016', 'XXX', '', ''),
            ('1.7.2016', '', 'XXX', ''),
            ('1.7.2016', '', '', 'XXX'),
            ('1.7.2016', '1', 'XXX', ''),
            ('1.7.2016', '0', '', ''),
            ('1.7.2016', '-1', '', ''),
        )

        res = self.client.get('/dvt')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/dvt/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'dvt_mainpage.xhtml')
        check_html(self, res.content)

        num = 1
        for test in cases:
            res = self.client.post(
                '/dvt/',
                {'beg_date': test[0],
                 'years': test[1],
                 'months': test[2],
                 'days': test[3]})
            self.assertEqual(res.status_code, HTTPStatus.OK)
            self.assertTemplateUsed(res, 'dvt_mainpage.xhtml')
            soup = BeautifulSoup(res.content, 'html.parser')
            msg = soup.find('td', 'msg').select('div')
            self.assertEqual(len(msg), 4)
            self.assertEqual(msg[0].text, 'Trest skončí: {}'.format(test[4]))
            self.assertEqual(msg[1].text, 'Třetina trestu: {}'.format(test[5]))
            self.assertEqual(msg[2].text, 'Polovina trestu: {}'.format(test[6]))
            self.assertEqual(msg[3].text, 'Dvě třetiny trestu: {}'.format(test[7]))
            check_html(self, res.content, key=num)
            num += 1

        num = 1
        for test in err_cases:
            res = self.client.post(
                '/dvt/',
                {'beg_date': test[0],
                 'years': test[1],
                 'months': test[2],
                 'days': test[3]})
            self.assertEqual(res.status_code, HTTPStatus.OK)
            self.assertTemplateUsed(res, 'dvt_mainpage.xhtml')
            soup = BeautifulSoup(res.content, 'html.parser')
            msg = soup.find('td', 'msg').select('div')
            self.assertEqual(msg[0].text, 'Chybné zadání')
            check_html(self, res.content, key=num)
            num += 1
예제 #36
0
파일: test_szr.py 프로젝트: dimov-cz/legal
    def test_procbatchform(self):

        models.Proceedings.objects.create(uid=self.user,
                                          court_id='MSPHAAB',
                                          senate=52,
                                          register='C',
                                          number=1,
                                          year=2016,
                                          desc='Test 01')

        models.Proceedings.objects.create(uid=self.user,
                                          court_id='MSPHAAB',
                                          senate=52,
                                          register='C',
                                          number=4,
                                          year=2011,
                                          desc='Test 13')

        models.Proceedings.objects.create(uid=self.user,
                                          court_id='MSPHAAB',
                                          senate=52,
                                          register='C',
                                          number=5,
                                          year=2012,
                                          desc='Test 13')

        res = self.client.get('/szr/procbatchform')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/szr/procbatchform/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/szr/procbatchform/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/szr/procbatchform/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procbatchform.xhtml')
        check_html(self, res.content)

        res = self.client.post('/szr/procbatchform/',
                               {'submit_load': 'Načíst'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procbatchform.xhtml')
        self.assertContains(res, 'Nejprve zvolte soubor k načtení')
        check_html(self, res.content)

        with open(join(TEST_DATA_DIR, 'szr_import.csv'), 'rb') as infile:
            res = self.client.post('/szr/procbatchform/', {
                'submit_load': 'Načíst',
                'load': infile
            },
                                   follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procbatchresult.xhtml')
        self.assertEqual(models.Proceedings.objects.count(), 13)
        self.assertEqual(res.context['count'], 4)
        self.assertEqual(
            res.context['errors'],
            [(3, 'Chybná zkratka soudu'), (4, 'Chybná zkratka soudu'),
             (5, 'Chybný formát'), (8, 'Chybná spisová značka'),
             (9, 'Chybná spisová značka'), (10, 'Chybná spisová značka'),
             (11, 'Chybná spisová značka'), (12, 'Chybná spisová značka'),
             (13, 'Popisu "Test 13" odpovídá více než jedno řízení'),
             (14, 'Prázdný popis'), (16, 'Příliš dlouhý popis')])
        check_html(self, res.content)

        res = self.client.get('/szr/procexport/')
        self.assertEqual(
            res.content.decode('utf-8'), '''\
Test 01,MSPHAAB,45 A 27/2014
Test 06,MSPHAAB,Nc 1070/2016
Test 07,MSPHAAB,Nc 1071/2016
Test 13,MSPHAAB,52 C 4/2011
Test 13,MSPHAAB,52 C 5/2012
{},MSPHAAB,45 A 27/2014
'''.format('T' * 255).replace('\n', '\r\n'))
예제 #37
0
    def test_main(self):

        cases = (
            ('1.7.2016', 'd3', '', 'd', ('Po 04.07.2016',)),
            ('1.7.2016', 'd8', '', 'd', ('09.07.2016 není pracovní den', 'Po 11.07.2016')),
            ('1.7.2016', 'none', '-100', 'y', ('So 01.07.1916', MSG3)),
            ('01.01.1583', 'none', '-1', 'd', (MSG1,)),
            ('1. 7. 2016', 'd3', '', 'd', ('Po 04.07.2016',)),
            ('01.07.2016', 'd3', '', 'd', ('Po 04.07.2016',)),
            ('1.7.2016', 'w1', '', 'd', ('Pá 08.07.2016',)),
            ('1.7.2016', 'w2', '', 'd', ('Pá 15.07.2016',)),
            ('1.7.2016', 'd15', '', 'd', ('16.07.2016 není pracovní den', 'Po 18.07.2016')),
            ('1.7.2016', 'd30', '', 'd', ('31.07.2016 není pracovní den', 'Po 01.08.2016')),
            ('1.7.2016', 'm1', '', 'd', ('Po 01.08.2016',)),
            ('1.7.2016', 'd60', '', 'd', ('Út 30.08.2016',)),
            ('1.7.2016', 'm2', '', 'd', ('Čt 01.09.2016',)),
            ('1.7.2016', 'm3', '', 'd', ('01.10.2016 není pracovní den', 'Po 03.10.2016')),
            ('1.7.2016', 'm6', '', 'd', ('01.01.2017 není pracovní den', 'Po 02.01.2017')),
            ('1.7.2016', 'y1', '', 'd', ('01.07.2017 není pracovní den', 'Po 03.07.2017')),
            ('1.7.2016', 'none', '1', 'd', ('02.07.2016 není pracovní den', 'Po 04.07.2016')),
            ('1.7.2016', 'none', '5', 'd', ('06.07.2016 není pracovní den', 'Čt 07.07.2016')),
            ('1.7.2016', 'none', '365', 'd', ('01.07.2017 není pracovní den', 'Po 03.07.2017')),
            ('1.7.2016', 'none', '-1', 'd', ('Čt 30.06.2016',)),
            ('1.7.2016', 'none', '-6', 'd', ('25.06.2016 není pracovní den', 'Pá 24.06.2016')),
            ('1.7.2016', 'none', '-5', 'd', ('26.06.2016 není pracovní den', 'Pá 24.06.2016')),
            ('1.7.2016', 'none', '-366', 'd', ('St 01.07.2015',)),
            ('1.7.2016', 'none', '1', 'w', ('Pá 08.07.2016',)),
            ('1.7.2016', 'none', '100', 'w', ('Pá 01.06.2018',)),
            ('1.7.2016', 'none', '-1', 'w', ('Pá 24.06.2016',)),
            ('1.7.2016', 'none', '-100', 'w', ('Pá 01.08.2014',)),
            ('1.7.2016', 'none', '1', 'm', ('Po 01.08.2016',)),
            ('1.7.2016', 'none', '100', 'm', ('Pá 01.11.2024',)),
            ('1.7.2016', 'none', '-1', 'm', ('St 01.06.2016',)),
            ('1.7.2016', 'none', '-100', 'm', ('01.03.2008 není pracovní den', 'Pá 29.02.2008')),
            ('1.7.2016', 'none', '1', 'y', ('01.07.2017 není pracovní den', 'Po 03.07.2017')),
            ('1.7.2016', 'none', '100', 'y', ('St 01.07.2116',)),
            ('1.7.2016', 'none', '-1', 'y', ('St 01.07.2015',)),
            ('1.7.2016', 'none', '1', 'b', ('Po 04.07.2016',)),
            ('1.7.2016', 'none', '2', 'b', ('Čt 07.07.2016',)),
            ('1.7.2016', 'none', '100', 'b', ('Pá 25.11.2016',)),
            ('1.7.2016', 'none', '-1', 'b', ('Čt 30.06.2016',)),
            ('1.7.2016', 'none', '-5', 'b', ('Pá 24.06.2016',)),
            ('1.7.2016', 'none', '-100', 'b', ('St 10.02.2016',)),
            ('31.5.2016', 'm1', '', 'd', ('Čt 30.06.2016',)),
            ('14.4.1925', 'none', '1', 'd', ('St 15.04.1925',)),
            ('14.4.1925', 'none', '1', 'b', ('St 15.04.1925', MSG3)),
            ('16.04.1925', 'none', '-2', 'd', ('Út 14.04.1925', MSG3)),
            ('02.01.1583', 'none', '-1', 'd', (MSG1,)),
            ('03.01.1583', 'none', '-1', 'd', (MSG1,)),
            ('04.01.1583', 'none', '-1', 'd', ('Po 03.01.1583', MSG3)),
            ('31.12.2999', 'none', '1', 'd', (MSG1,)),
            ('30.12.2999', 'none', '1', 'd', ('Út 31.12.2999',)),
            ('2.7.2016', 'none', '0', 'd', ('02.07.2016 není pracovní den', 'Po 04.07.2016')),
            ('2.7.2016', 'none', '0', 'b', ('Po 04.07.2016',)),
            ('1.7.2016', 'none', '0', 'd', ('Pá 01.07.2016',)),
            ('1.7.2016', 'none', '0', 'b', ('Pá 01.07.2016',)),
        )

        err_cases = (
            ('', 'd3', '', 'd'),
            ('xxx', 'd3', '', 'd'),
            ('1.7.2016', 'none', 'xxx', 'd'),
            ('1.7.2016', 'none', '', 'd'),
            ('31.12.1582', 'none', '5', 'b'),
            ('1.1.3000', 'none', '5', 'b'),
            ('1.7.2016', 'none', '1000', 'd'),
            ('1.7.2016', 'none', '-1000', 'd'),
        )

        res = self.client.get('/lht')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/lht/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'lht_mainpage.xhtml')
        check_html(self, res.content)

        num = 1
        for test in cases:
            res = self.client.post(
                '/lht/',
                {'beg_date': test[0],
                 'preset': test[1],
                 'dur': test[2],
                 'unit': test[3]})
            self.assertEqual(res.status_code, HTTPStatus.OK)
            self.assertTemplateUsed(res, 'lht_mainpage.xhtml')
            soup = BeautifulSoup(res.content, 'html.parser')
            msg = soup.find('td', 'msg').select('div')
            length = len(msg)
            self.assertEqual(length, len(test[4]))
            for idx in range(length):
                self.assertEqual(msg[idx].text, test[4][idx])
            check = num < 5
            check_html(self, res.content, key=num, check_html=check, check_classes=check)
            num += 1

        num = 1
        for test in err_cases:
            res = self.client.post(
                '/lht/',
                {'beg_date': test[0],
                 'preset': test[1],
                 'dur': test[2],
                 'unit': test[3]})
            self.assertEqual(res.status_code, HTTPStatus.OK)
            self.assertTemplateUsed(res, 'lht_mainpage.xhtml')
            soup = BeautifulSoup(res.content, 'html.parser')
            msg = soup.find('td', 'msg').select('div')
            self.assertTrue(msg[0].text)
            check_html(self, res.content, key=num)
            num += 1

        res = self.client.post(
            '/lht/',
            {'submit_set_beg_date': 'Dnes'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertEqual(res.context['form']['beg_date'].value(), date.today())
        check_html(self, res.content)
예제 #38
0
파일: test_kos.py 프로젝트: tompecina/legal
    def test_mainpage(self):

        cases = (
            ('0', '0',
             False,
             '0', '0',
             '0',
             '0',
             '0', '0',
             '0', '0',
             False,
             '0,0',
             False,
             '0', '0',
             '0', '0', '0', '0', '0',
             '0'),
            ('0', '0',
             False,
             '0', '0',
             '0',
             '0',
             '0', '0',
             '0', '0',
             False,
             '0,0',
             True,
             '0', '0', '0',
             '0', '0', '0', '0', '0',
             '0'),
            ('10000', '0',
             False,
             '0', '0',
             '0',
             '0',
             '0', '0',
             '0', '0',
             False,
             '0,0',
             False,
             '0', '0',
             '10.000', '0', '0', '10.000', '600.000',
             '2.000.000'),
            ('10000', '10000',
             False,
             '0', '0',
             '0',
             '0',
             '0', '0',
             '0', '0',
             False,
             '0,0',
             True,
             '0', '0', '0',
             '20.000', '0', '0', '20.000', '1.200.000',
             '4.000.000'),
            ('10000', '0',
             False,
             '0', '0',
             '3410',
             '5858',
             '750', '1125',
             '150', '225',
             False,
             '21,0',
             False,
             '6.179', '6.179',
             '2.546', '7.454', '900', '1.646', '98.760',
             '329.200'),
            ('10000', '0',
             False,
             '0', '0',
             '3410',
             '5858',
             '750', '1125',
             '150', '225',
             True,
             '21,0',
             False,
             '6.179', '6.179',
             '2.546', '7.454', '1.089', '1.457', '87.420',
             '291.400'),
            ('10000', '12000',
             False,
             '0', '0',
             '3410',
             '5858',
             '750', '1125',
             '150', '225',
             False,
             '21,0',
             True,
             '6.179', '7.724', '7.724',
             '4.366', '17.634', '1.350', '3.016', '180.960',
             '603.200'),
            ('10000', '12000',
             True,
             '0', '0',
             '3410',
             '5858',
             '750', '1125',
             '150', '225',
             False,
             '21,0',
             True,
             '6.179', '7.724', '7.724',
             '4.366', '17.634', '1.350', '3.016', '180.960',
             '603.200'),
            ('10000', '12000',
             False,
             '0', '0',
             '3410',
             '5858',
             '750', '1125',
             '150', '225',
             True,
             '21,0',
             True,
             '6.179', '7.724', '7.724',
             '4.366', '17.634', '1.634', '2.732', '163.950',
             '546.500'),
            ('17000', '0',
             True,
             '0', '0',
             '3410',
             '5858',
             '750', '1125',
             '150', '225',
             True,
             '21,0',
             False,
             '6.179', '7.724',
             '6.186', '10.814', '1.089', '5.097', '305.820',
             '1.019.400'),
            ('17000', '0',
             False,
             '1', '0',
             '3410',
             '5858',
             '750', '1125',
             '150', '225',
             True,
             '21,0',
             False,
             '6.179', '7.724',
             '6.186', '10.814', '1.089', '5.097', '305.820',
             '1.019.400'),
            ('17000', '23000',
             False,
             '2', '5',
             '3410',
             '5858',
             '750', '1125',
             '150', '225',
             True,
             '21,0',
             True,
             '6.179', '10.813', '15.447',
             '9.158', '30.842', '1.634', '7.524', '451.470',
             '1.504.900'),
        )

        res = self.client.get('/kos')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/kos/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'kos_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post('/kos/', {'submit_single': 'Vypočítat'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'kos_mainpage.xhtml')
        self.assertEqual(res.context['messages'], [('Chybné zadání', None)])
        check_html(self, res.content)

        num = 1
        for test in cases:
            query = {
                'netincome': test[0],
                'netincome2': test[1],
                'deps': test[3],
                'deps2': test[4],
                'subs': test[5],
                'apt': test[6],
                'fee': test[7],
                'fee2': test[8],
                'exp': test[9],
                'exp2': test[10],
                'vatrate': test[12],
            }
            if test[2]:
                query['partner'] = 'on'
            if test[11]:
                query['vat'] = 'on'
            query['submit_{}'.format('dual' if test[13] else 'single')] = 'Vypočítat'
            res = self.client.post('/kos/', query)
            con = res.context['messages']
            self.assertEqual(
                con[0][0],
                'Kalkulace pro společný návrh manželů' if test[13] else 'Kalkulace pro samostatného dlužníka')
            lines = 8 if test[13] else 7
            for idx in range(lines):
                self.assertEqual(con[idx + 1][0].split()[-2], test[idx + 14])
            self.assertEqual(con[-1][0].split()[-2], test[-1])
            check_html(self, res.content, key=num)
            num += 1
예제 #39
0
파일: test_sur.py 프로젝트: tompecina/legal
    def test_partyform(self):

        res = self.client.get('/sur/partyform')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/sur/partyform/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/sur/partyform/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/sur/partyform/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'sur_partyform.xhtml')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        title = soup.select('h1')
        self.assertEqual(len(title), 1)
        self.assertEqual(title[0].text, 'Nový účastník')

        res = self.client.post(
            '/sur/partyform/',
            {'party_opt': 'icontains',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partyform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/sur/partyform/',
            {'party': 'XXX',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partyform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/sur/partyform/',
            {'party': 'Test',
             'party_opt': 'XXX',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_partyform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/sur/partyform/',
            {'submit_back': 'Zpět bez uložení'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/sur/partyform/',
            {'party': 'Test',
             'party_opt': 'icontains',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')

        party_id = models.Party.objects.create(
            uid=self.user,
            party_opt=0,
            party='Test 2').id

        res = self.client.get('/sur/partyform/{:d}/'.format(party_id))
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'sur_partyform.xhtml')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        title = soup.select('h1')
        self.assertEqual(len(title), 1)
        self.assertEqual(title[0].text, 'Úprava účastníka')

        res = self.client.post(
            '/sur/partyform/{:d}/'.format(party_id),
            {'party': 'Test 8',
             'party_opt': 'icontains',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'sur_mainpage.xhtml')
        party = models.Party.objects.get(pk=party_id)
        self.assertEqual(party.party, 'Test 8')
예제 #40
0
    def test_xmllist(self):

        res0 = '''<?xml version="1.0" encoding="utf-8"?>
<decisions application="udn" created="2016-08-04T00:20:47" version="1.1" xmlns="http://{0}" xmlns:xsi="http://www.w3\
.org/2001/XMLSchema-instance" xsi:schemaLocation="http://{0} {1}/static/udn-1.0.xsd"></decisions>
'''.format(LOCAL_SUBDOMAIN, LOCAL_URL)

        res1 = '''<?xml version="1.0" encoding="utf-8"?>
<decisions application="udn" created="2016-08-04T00:20:47" version="1.1" xmlns="http://{0}" xmlns:xsi="http://www.w3\
.org/2001/XMLSchema-instance" xsi:schemaLocation="http://{0} {1}/static/udn-1.0.xsd"><decision><court id="NSS">Nejvy\
šší správní soud</court><date>2199-07-01</date><ref><senate>8</senate><register>As</register><number>158</number><ye\
ar>2015</year><page>33</page></ref><agenda>Ochrana hospodářské soutěže a veřejné zakázky</agenda><parties><party>Úřa\
d pro ochranu hospodářské soutěže</party><party>BUREAU VERITAS CZECH REPUBLIC, spol. s r.o.</party><party>Zlínský kr\
aj</party></parties><files><file type="abridged">{2}udn/0158_8As__1500033S.pdf</file></files></decision></decisions>
'''.format(LOCAL_SUBDOMAIN, LOCAL_URL, REPO_URL)

        res2 = '''<?xml version="1.0" encoding="utf-8"?>
<decisions application="udn" created="2016-08-04T00:20:47" version="1.1" xmlns="http://{0}" xmlns:xsi="http://www.w3\
.org/2001/XMLSchema-instance" xsi:schemaLocation="http://{0} {1}/static/udn-1.0.xsd"><decision><court id="NSS">Nejvy\
šší správní soud</court><date>2199-07-01</date><ref><senate>8</senate><register>As</register><number>158</number><ye\
ar>2015</year><page>33</page></ref><agenda>Ochrana hospodářské soutěže a veřejné zakázky</agenda><parties><party>Úřa\
d pro ochranu hospodářské soutěže</party><party>BUREAU VERITAS CZECH REPUBLIC, spol. s r.o.</party><party>Zlínský kr\
aj</party></parties><files><file type="abridged">{2}udn/0158_8As__1500033S.pdf</file><file type="anonymized">{2}udn/\
0067_5As__1500054_20151119130217_prevedeno.pdf</file></files></decision></decisions>
'''.format(LOCAL_SUBDOMAIN, LOCAL_URL, REPO_URL)

        res = self.client.get('/udn/xmllist')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.post('/udn/xmllist/')
        self.assertEqual(res.status_code, HTTPStatus.METHOD_NOT_ALLOWED)

        res = self.client.get('/udn/xmllist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], 'text/xml; charset=utf-8')
        self.assertTrue(validate_xml(res.content, XSD))

        res = self.client.get('/udn/xmllist/?senate=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?senate=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?register=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?register=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?number=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?number=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?year=1989')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?year=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?page=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?page=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?agenda=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?agenda=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?date_from=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?date_to=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?party_opt=X')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?register=Ads')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertXMLEqual(strip_xml(res.content),
                            strip_xml(res0.encode('utf-8')))
        self.assertTrue(validate_xml(res.content, XSD))

        res = self.client.get(
            '/udn/xmllist/?date_from=2015-01-01&date_to=2199-07-01&'
            'register=As&agenda=1&party_opt=icontains')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertXMLEqual(strip_xml(res.content),
                            strip_xml(res1.encode('utf-8')))
        self.assertTrue(validate_xml(res.content, XSD))

        models.Decision.objects.update(
            anonfilename='0067_5As__1500054_20151119130217_prevedeno.pdf')

        res = self.client.get(
            '/udn/xmllist/?date_from=2015-01-01&date_to=2199-07-01&register=As&agenda=1&party_opt=icontains'
        )
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertXMLEqual(strip_xml(res.content),
                            strip_xml(res2.encode('utf-8')))
        self.assertTrue(validate_xml(res.content, XSD))

        exlim = views.EXLIM
        views.EXLIM = 0
        res = self.client.get('/udn/xmllist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'exlim.xhtml')
        check_html(self, res.content)
        views.EXLIM = exlim
예제 #41
0
    def test_mainpage(self):

        res = self.client.get('/psj')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/psj/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'psj_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post('/psj/', {
            'date_from': '1.1.2015',
            'date_to': '1.7.2016',
            'register': 'C',
            'party_opt': 'icontains',
            'format': 'html',
            'submit': 'Hledat'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        check_html(self, res.content)

        res = self.client.post('/psj/', {
            'party': 'Ing',
            'party_opt': 'icontains',
            'format': 'html',
            'submit': 'Hledat'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_list.xhtml')
        self.assertEqual(res.redirect_chain[0][1], HTTPStatus.FOUND)
        check_html(self, res.content)
        self.assertTrue(
            link_equal(res.redirect_chain[0][0],
                       '/psj/list/?party=Ing&party_opt=icontains&start=0'))

        res = self.client.post(
            '/psj/', {
                'date_from': 'XXX',
                'party_opt': 'icontains',
                'format': 'html',
                'submit': 'Hledat'
            })
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_mainpage.xhtml')
        self.assertEqual(res.context['err_message'],
                         'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/psj/', {
                'date_from': '1.1.2015',
                'date_to': '1.7.2014',
                'register': 'C',
                'party_opt': 'icontains',
                'format': 'html',
                'submit': 'Hledat'
            })
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'psj_mainpage.xhtml')
        self.assertEqual(res.context['err_message'],
                         'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)
예제 #42
0
파일: test_udn.py 프로젝트: tompecina/legal
    def test_xmllist(self):

        res0 = '''<?xml version="1.0" encoding="utf-8"?>
<decisions application="udn" created="2016-08-04T00:20:47" version="1.1" xmlns="http://{0}" xmlns:xsi="http://www.w3\
.org/2001/XMLSchema-instance" xsi:schemaLocation="http://{0} {1}/static/udn-1.0.xsd"></decisions>
'''.format(LOCAL_SUBDOMAIN, LOCAL_URL)

        res1 = '''<?xml version="1.0" encoding="utf-8"?>
<decisions application="udn" created="2016-08-04T00:20:47" version="1.1" xmlns="http://{0}" xmlns:xsi="http://www.w3\
.org/2001/XMLSchema-instance" xsi:schemaLocation="http://{0} {1}/static/udn-1.0.xsd"><decision><court id="NSS">Nejvy\
šší správní soud</court><date>2199-07-01</date><ref><senate>8</senate><register>As</register><number>158</number><ye\
ar>2015</year><page>33</page></ref><agenda>Ochrana hospodářské soutěže a veřejné zakázky</agenda><parties><party>Úřa\
d pro ochranu hospodářské soutěže</party><party>BUREAU VERITAS CZECH REPUBLIC, spol. s r.o.</party><party>Zlínský kr\
aj</party></parties><files><file type="abridged">{2}udn/0158_8As__1500033S.pdf</file></files></decision></decisions>
'''.format(LOCAL_SUBDOMAIN, LOCAL_URL, REPO_URL)

        res2 = '''<?xml version="1.0" encoding="utf-8"?>
<decisions application="udn" created="2016-08-04T00:20:47" version="1.1" xmlns="http://{0}" xmlns:xsi="http://www.w3\
.org/2001/XMLSchema-instance" xsi:schemaLocation="http://{0} {1}/static/udn-1.0.xsd"><decision><court id="NSS">Nejvy\
šší správní soud</court><date>2199-07-01</date><ref><senate>8</senate><register>As</register><number>158</number><ye\
ar>2015</year><page>33</page></ref><agenda>Ochrana hospodářské soutěže a veřejné zakázky</agenda><parties><party>Úřa\
d pro ochranu hospodářské soutěže</party><party>BUREAU VERITAS CZECH REPUBLIC, spol. s r.o.</party><party>Zlínský kr\
aj</party></parties><files><file type="abridged">{2}udn/0158_8As__1500033S.pdf</file><file type="anonymized">{2}udn/\
0067_5As__1500054_20151119130217_prevedeno.pdf</file></files></decision></decisions>
'''.format(LOCAL_SUBDOMAIN, LOCAL_URL, REPO_URL)

        res = self.client.get('/udn/xmllist')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.post('/udn/xmllist/')
        self.assertEqual(res.status_code, HTTPStatus.METHOD_NOT_ALLOWED)

        res = self.client.get('/udn/xmllist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], 'text/xml; charset=utf-8')
        self.assertTrue(validate_xml(res.content, XSD))

        res = self.client.get('/udn/xmllist/?senate=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?senate=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?register=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?register=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?number=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?number=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?year=1989')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?year=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?page=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?page=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?agenda=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?agenda=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?date_from=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?date_to=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?party_opt=X')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/xmllist/?register=Ads')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertXMLEqual(strip_xml(res.content), strip_xml(res0.encode('utf-8')))
        self.assertTrue(validate_xml(res.content, XSD))

        res = self.client.get(
            '/udn/xmllist/?date_from=2015-01-01&date_to=2199-07-01&'
            'register=As&agenda=1&party_opt=icontains')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertXMLEqual(strip_xml(res.content), strip_xml(res1.encode('utf-8')))
        self.assertTrue(validate_xml(res.content, XSD))

        models.Decision.objects.update(
            anonfilename='0067_5As__1500054_20151119130217_prevedeno.pdf')

        res = self.client.get(
            '/udn/xmllist/?date_from=2015-01-01&date_to=2199-07-01&register=As&agenda=1&party_opt=icontains')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertXMLEqual(
            strip_xml(res.content),
            strip_xml(res2.encode('utf-8')))
        self.assertTrue(validate_xml(res.content, XSD))

        exlim = views.EXLIM
        views.EXLIM = 0
        res = self.client.get('/udn/xmllist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'exlim.xhtml')
        check_html(self, res.content)
        views.EXLIM = exlim
예제 #43
0
    def test_xmllist(self):

        res0 = '''<?xml version="1.0" encoding="utf-8"?>
<hearings application="psj" created="2016-11-18T15:43:27" version="1.1" xmlns="http://legal.pecina.cz" xmlns:xsi="ht\
tp://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://legal.pecina.cz https://legal.pecina.cz/static/p\
sj-1.1.xsd"><hearing><court id="OSPHA02">Obvodní soud Praha 2</court><courtroom>č. 101/přízemí - přístavba</courtroo\
m><time>2016-12-01T09:00:00</time><ref><senate>26</senate><register>C</register><number>181</number><year>2015</year\
></ref><judge>JUDr. Henzlová Šárka</judge><parties><party>ČR - Ministerstvo spravedlnosti ČR</party><party>Mgr. Hele\
na Morozová</party></parties><form>Jednání</form><closed>false</closed><cancelled>false</cancelled></hearing><hearin\
g><court id="OSPHA02">Obvodní soud Praha 2</court><courtroom>č. 101/přízemí - přístavba</courtroom><time>2016-12-01T\
12:00:00</time><ref><senate>26</senate><register>C</register><number>94</number><year>2015</year></ref><judge>JUDr. \
Henzlová Šárka</judge><parties><party>Česká republika - Ministerstvo spravedlnosti</party><party>Alois Hlásenský</pa\
rty></parties><form>Jednání</form><closed>false</closed><cancelled>false</cancelled></hearing></hearings>
'''

        res1 = '''<?xml version="1.0" encoding="utf-8"?>
<hearings application="psj" created="2016-11-18T16:00:01" version="1.1" xmlns="http://legal.pecina.cz" xmlns:xsi="ht\
tp://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://legal.pecina.cz https://legal.pecina.cz/static/p\
sj-1.1.xsd"><hearing><court id="OSPHA02">Obvodní soud Praha 2</court><courtroom>č. 101/přízemí - přístavba</courtroo\
m><time>2016-12-01T12:00:00</time><ref><senate>26</senate><register>C</register><number>94</number><year>2015</year>\
</ref><judge>JUDr. Henzlová Šárka</judge><parties><party>Česká republika - Ministerstvo spravedlnosti</party><party>\
Alois Hlásenský</party></parties><form>Jednání</form><closed>false</closed><cancelled>false</cancelled></hearing></h\
earings>
'''

        res = self.client.get('/psj/xmllist')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.post('/psj/xmllist/')
        self.assertEqual(res.status_code, HTTPStatus.METHOD_NOT_ALLOWED)

        res = self.client.get('/psj/xmllist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], 'text/xml; charset=utf-8')
        self.assertTrue(validate_xml(res.content, XSD))

        res = self.client.get('/psj/xmllist/?senate=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/xmllist/?senate=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/xmllist/?register=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/xmllist/?register=XX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/xmllist/?number=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/xmllist/?number=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/xmllist/?year=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/xmllist/?year=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/xmllist/?courtroom=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/xmllist/?courtroom=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/xmllist/?judge=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/xmllist/?judge=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/xmllist/?date_from=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/xmllist/?date_to=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/xmllist/?party_opt=X')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/xmllist/?register=C')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertXMLEqual(strip_xml(res.content),
                            strip_xml(res0.encode('utf-8')))
        self.assertTrue(validate_xml(res.content, XSD))

        res = self.client.get('/psj/xmllist/?party=oi&party_opt=icontains')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertXMLEqual(strip_xml(res.content),
                            strip_xml(res1.encode('utf-8')))
        self.assertTrue(validate_xml(res.content, XSD))

        exlim = views.EXLIM
        views.EXLIM = 0
        res = self.client.get('/psj/xmllist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'exlim.xhtml')
        check_html(self, res.content)
        views.EXLIM = exlim
예제 #44
0
파일: test_udn.py 프로젝트: tompecina/legal
    def test_jsonlist(self):

        res0 = '[]'

        res1 = '''[{{"parties": ["\u00da\u0159ad pro ochranu hospod\u00e1\u0159sk\u00e9 sout\u011b\u017ee", "BUREAU \
VERITAS CZECH REPUBLIC, spol. s r.o.", "Zl\u00ednsk\u00fd kraj"], "files": {{"abridged": "{}udn/0158_8As__1500033S.p\
df"}}, "date": "2199-07-01", "court": {{"name": "Nejvy\u0161\u0161\u00ed spr\u00e1vn\u00ed soud", "id": "NSS"}}, "re\
f": {{"senate": 8, "register": "As", "number": 158, "year": 2015, "page": 33}}, "agenda": "Ochrana hospod\u00e1\
\u0159sk\u00e9 sout\u011b\u017ee a ve\u0159ejn\u00e9 zak\u00e1zky"}}]'''.format(REPO_URL)

        res2 = '''[{{"parties": ["\u00da\u0159ad pro ochranu hospod\u00e1\u0159sk\u00e9 sout\u011b\u017ee", "BUREAU \
VERITAS CZECH REPUBLIC, spol. s r.o.", "Zl\u00ednsk\u00fd kraj"], "files": {{"abridged": "{0}udn/0158_8As__1500033S.\
pdf", "anonymized": "{0}udn/0067_5As__1500054_20151119130217_prevedeno.pdf"}}, "date": "2199-07-01", "court": {{"nam\
e": "Nejvy\u0161\u0161\u00ed spr\u00e1vn\u00ed soud", "id": "NSS"}}, "ref": {{"senate": 8, "register": "As", "number\
": 158, "year": 2015, "page": 33}}, "agenda": "Ochrana hospod\u00e1\u0159sk\u00e9 sout\u011b\u017ee a ve\u0159ejn\
\u00e9 zak\u00e1zky"}}]'''.format(REPO_URL)

        res = self.client.get('/udn/jsonlist')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.post('/udn/jsonlist/')
        self.assertEqual(res.status_code, HTTPStatus.METHOD_NOT_ALLOWED)

        res = self.client.get('/udn/jsonlist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], 'application/json; charset=utf-8')

        res = self.client.get('/udn/jsonlist/?senate=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?senate=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?register=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?register=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?number=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?number=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?year=1989')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?year=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?page=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?page=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?agenda=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?agenda=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?date_from=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?date_to=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?party_opt=X')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?register=Ads')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertJSONEqual(res.content.decode('utf-8'), res0)

        res = self.client.get(
            '/udn/jsonlist/?date_from=2015-01-01&date_to=2199-07-01&register=As&agenda=1&party_opt=icontains')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertJSONEqual(res.content.decode('utf-8'), res1)

        models.Decision.objects.update(anonfilename='0067_5As__1500054_20151119130217_prevedeno.pdf')

        res = self.client.get(
            '/udn/jsonlist/?date_from=2015-01-01&date_to=2199-07-01&register=As&agenda=1&party_opt=icontains')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertJSONEqual(res.content.decode('utf-8'), res2)

        exlim = views.EXLIM
        views.EXLIM = 0
        res = self.client.get('/udn/jsonlist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'exlim.xhtml')
        check_html(self, res.content)
        views.EXLIM = exlim
예제 #45
0
    def test_jsonlist(self):

        res0 = '[]'

        res1 = '''[{"court": {"name": "Obvodn\u00ed soud Praha 2", "id": "OSPHA02"}, "judge": "JUDr. Henzlov\u00e1 \
\u0160\u00e1rka", "ref": {"senate": 26, "year": 2015, "number": 181, "register": "C"}, "form": "Jedn\u00e1n\u00ed", \
"courtroom": "\u010d. 101/p\u0159\u00edzem\u00ed - p\u0159\u00edstavba", "cancelled": false, "parties": ["\u010cR - \
Ministerstvo spravedlnosti \u010cR", "Mgr. Helena Morozov\u00e1"], "closed": false, "time": "2016-12-01T09:00:00"}, \
{"court": {"name": "Obvodn\u00ed soud Praha 2", "id": "OSPHA02"}, "judge": "JUDr. Henzlov\u00e1 \u0160\u00e1rka", "r\
ef": {"senate": 26, "year": 2015, "number": 94, "register": "C"}, "form": "Jedn\u00e1n\u00ed", "courtroom": "\u010d.\
 101/p\u0159\u00edzem\u00ed - p\u0159\u00edstavba", "cancelled": false, "parties": ["\u010cesk\u00e1 republika - Min\
isterstvo spravedlnosti", "Alois Hl\u00e1sensk\u00fd"], "closed": false, "time": "2016-12-01T12:00:00"}]'''

        res2 = '''[{"court": {"name": "Obvodn\u00ed soud Praha 2", "id": "OSPHA02"}, "cancelled": false, "judge": "J\
UDr. Henzlov\u00e1 \u0160\u00e1rka", "time": "2016-12-01T12:00:00", "courtroom": "\u010d. 101/p\u0159\u00edzem\u00ed\
 - p\u0159\u00edstavba", "closed": false, "form": "Jedn\u00e1n\u00ed", "parties": ["\u010cesk\u00e1 republika - Mini\
sterstvo spravedlnosti", "Alois Hl\u00e1sensk\u00fd"], "ref": {"year": 2015, "register": "C", "senate": 26, "number"\
: 94}}]'''

        res = self.client.get('/psj/jsonlist')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.post('/psj/jsonlist/')
        self.assertEqual(res.status_code, HTTPStatus.METHOD_NOT_ALLOWED)

        res = self.client.get('/psj/jsonlist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'],
                         'application/json; charset=utf-8')

        res = self.client.get('/psj/jsonlist/?senate=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/jsonlist/?register=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/jsonlist/?number=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/jsonlist/?year=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/jsonlist/?courtroom=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/jsonlist/?judge=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/jsonlist/?date_from=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/jsonlist/?date_to=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/jsonlist/?party_opt=X')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/psj/jsonlist/?register=T')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertJSONEqual(res.content.decode('utf-8'), res0)

        res = self.client.get('/psj/jsonlist/?register=C')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertJSONEqual(res.content.decode('utf-8'), res1)

        res = self.client.get('/psj/jsonlist/?party=oi&party_opt=icontains')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertJSONEqual(res.content.decode('utf-8'), res2)

        exlim = views.EXLIM
        views.EXLIM = 0
        res = self.client.get('/psj/jsonlist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'exlim.xhtml')
        check_html(self, res.content)
        views.EXLIM = exlim
예제 #46
0
파일: test_szr.py 프로젝트: dimov-cz/legal
    def test_procdelall(self):

        models.Proceedings.objects.create(uid=self.user,
                                          court_id='MSPHAAB',
                                          senate=52,
                                          register='C',
                                          number=1,
                                          year=2016,
                                          desc='Test 1')

        models.Proceedings.objects.create(uid=self.user,
                                          court_id='MSPHAAB',
                                          senate=52,
                                          register='C',
                                          number=2,
                                          year=2016,
                                          desc='Test 2')

        self.assertEqual(
            models.Proceedings.objects.filter(uid=self.user).count(), 2)

        res = self.client.get('/szr/procdelall')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/szr/procdelall/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/szr/procdelall/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/szr/procdelall/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_procdelall.xhtml')
        check_html(self, res.content)

        res = self.client.post('/szr/procdelall/', {'submit_no': 'Ne'},
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post('/szr/procdelall/', {'submit_yes': 'Ano'},
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertEqual(
            models.Proceedings.objects.filter(uid=self.user).count(), 2)
        check_html(self, res.content)

        res = self.client.post('/szr/procdelall/', {
            'submit_yes': 'Ano',
            'conf': 'ano'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertEqual(
            models.Proceedings.objects.filter(uid=self.user).count(), 2)
        check_html(self, res.content)

        res = self.client.post('/szr/procdelall/', {
            'submit_yes': 'Ano',
            'conf': 'Ano'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertFalse(
            models.Proceedings.objects.filter(uid=self.user).exists())
        check_html(self, res.content)
예제 #47
0
파일: test_dir.py 프로젝트: tompecina/legal
    def test_debtorform(self):

        res = self.client.get('/dir/debtorform')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/dir/debtorform/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/dir/debtorform/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/dir/debtorform/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'dir_debtorform.xhtml')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        title = soup.select('h1')
        self.assertEqual(len(title), 1)
        self.assertEqual(title[0].text, 'Nový dlužník')

        res = self.client.post(
            '/dir/debtorform/',
            {'name_opt': 'icontains',
             'first_name_opt': 'icontains',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtorform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtorform/',
            {'desc': 'Test',
             'name_opt': 'XXX',
             'first_name_opt': 'icontains',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtorform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtorform/',
            {'desc': 'Test',
             'name_opt': 'icontains',
             'first_name_opt': 'XXX',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtorform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtorform/',
            {'desc': 'Test',
             'name_opt': 'icontains',
             'first_name_opt': 'icontains',
             'genid': 'XXX',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtorform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtorform/',
            {'desc': 'Test',
             'name_opt': 'icontains',
             'first_name_opt': 'icontains',
             'birthid': 'XXX',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtorform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtorform/',
            {'desc': 'Test',
             'name_opt': 'icontains',
             'first_name_opt': 'icontains',
             'date_birth': '1970-X-01',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtorform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtorform/',
            {'desc': 'Test',
             'name_opt': 'icontains',
             'first_name_opt': 'icontains',
             'year_birth_from': '1899',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtorform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtorform/',
            {'desc': 'Test',
             'name_opt': 'icontains',
             'first_name_opt': 'icontains',
             'year_birth_from': 'XXX',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtorform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtorform/',
            {'desc': 'Test',
             'name_opt': 'icontains',
             'first_name_opt': 'icontains',
             'year_birth_to': '1899',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtorform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtorform/',
            {'desc': 'Test',
             'name_opt': 'icontains',
             'first_name_opt': 'icontains',
             'year_birth_to': 'XXX',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtorform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtorform/',
            {'desc': 'Test',
             'name_opt': 'icontains',
             'first_name_opt': 'icontains',
             'year_birth_from': '1965',
             'year_birth_to': '1964',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_debtorform.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtorform/',
            {'submit_back': 'Zpět bez uložení'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtorform/',
            {'desc': 'Test',
             'name_opt': 'icontains',
             'first_name_opt': 'icontains',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_mainpage.xhtml')

        debtor_id = models.Debtor.objects.create(
            uid=self.user,
            name_opt=0,
            first_name_opt=0,
            birthid='7001011234',
            desc='Test 2').id

        res = self.client.get('/dir/debtorform/{:d}/'.format(debtor_id))
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'dir_debtorform.xhtml')
        soup = BeautifulSoup(res.content, 'html.parser')
        title = soup.select('h1')
        self.assertEqual(len(title), 1)
        self.assertEqual(title[0].text, 'Úprava dlužníka')
        check_html(self, res.content)

        res = self.client.post(
            '/dir/debtorform/{:d}/'.format(debtor_id),
            {'desc': 'Test 8',
             'court': 'MSPHAAB',
             'name': 'Název',
             'name_opt': 'icontains',
             'first_name': 'Jméno',
             'first_name_opt': 'icontains',
             'genid': '12345678',
             'taxid': '001-12345678',
             'birthid': '700101/1234',
             'date_birth': '15.1.1970',
             'year_birth_from': '1965',
             'year_birth_to': '1966',
             'submit': 'Uložit'},
            follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'dir_mainpage.xhtml')

        debtor = models.Debtor.objects.get(pk=debtor_id)
        self.assertEqual(debtor.desc, 'Test 8')
        self.assertEqual(debtor.court, 'MSPHAAB')
        self.assertEqual(debtor.name, 'Název')
        self.assertEqual(debtor.first_name, 'Jméno')
        self.assertEqual(debtor.genid, '12345678')
        self.assertEqual(debtor.taxid, '001-12345678')
        self.assertEqual(debtor.birthid, '7001011234')
        self.assertEqual(debtor.date_birth, date(1970, 1, 15))
        self.assertEqual(debtor.year_birth_from, 1965)
        self.assertEqual(debtor.year_birth_to, 1966)
예제 #48
0
파일: test_kos.py 프로젝트: dimov-cz/legal
    def test_mainpage(self):

        cases = (
            ('0', '0', False, '0', '0', '0', '0', '0', '0', '0', '0', False,
             '0,0', False, '0', '0', '0', '0', '0', '0', '0', '0'),
            ('0', '0', False, '0', '0', '0', '0', '0', '0', '0', '0', False,
             '0,0', True, '0', '0', '0', '0', '0', '0', '0', '0', '0'),
            ('10000', '0', False, '0', '0', '0', '0', '0', '0', '0', '0',
             False, '0,0', False, '0', '0', '10.000', '0', '0', '10.000',
             '600.000', '2.000.000'),
            ('10000', '10000', False, '0', '0', '0', '0', '0', '0', '0', '0',
             False, '0,0', True, '0', '0', '0', '20.000', '0', '0', '20.000',
             '1.200.000', '4.000.000'),
            ('10000', '0', False, '0', '0', '3410', '5858', '750', '1125',
             '150', '225', False, '21,0', False, '6.179', '6.179', '2.546',
             '7.454', '900', '1.646', '98.760', '329.200'),
            ('10000', '0', False, '0', '0', '3410', '5858', '750', '1125',
             '150', '225', True, '21,0', False, '6.179', '6.179', '2.546',
             '7.454', '1.089', '1.457', '87.420', '291.400'),
            ('10000', '12000', False, '0', '0', '3410', '5858', '750', '1125',
             '150', '225', False, '21,0', True, '6.179', '7.724', '7.724',
             '4.366', '17.634', '1.350', '3.016', '180.960', '603.200'),
            ('10000', '12000', True, '0', '0', '3410', '5858', '750', '1125',
             '150', '225', False, '21,0', True, '6.179', '7.724', '7.724',
             '4.366', '17.634', '1.350', '3.016', '180.960', '603.200'),
            ('10000', '12000', False, '0', '0', '3410', '5858', '750', '1125',
             '150', '225', True, '21,0', True, '6.179', '7.724', '7.724',
             '4.366', '17.634', '1.634', '2.732', '163.950', '546.500'),
            ('17000', '0', True, '0', '0', '3410', '5858', '750', '1125',
             '150', '225', True, '21,0', False, '6.179', '7.724', '6.186',
             '10.814', '1.089', '5.097', '305.820', '1.019.400'),
            ('17000', '0', False, '1', '0', '3410', '5858', '750', '1125',
             '150', '225', True, '21,0', False, '6.179', '7.724', '6.186',
             '10.814', '1.089', '5.097', '305.820', '1.019.400'),
            ('17000', '23000', False, '2', '5', '3410', '5858', '750', '1125',
             '150', '225', True, '21,0', True, '6.179', '10.813', '15.447',
             '9.158', '30.842', '1.634', '7.524', '451.470', '1.504.900'),
        )

        res = self.client.get('/kos')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/kos/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'kos_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post('/kos/', {'submit_single': 'Vypočítat'})
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'kos_mainpage.xhtml')
        self.assertEqual(res.context['messages'], [('Chybné zadání', None)])
        check_html(self, res.content)

        num = 1
        for test in cases:
            query = {
                'netincome': test[0],
                'netincome2': test[1],
                'deps': test[3],
                'deps2': test[4],
                'subs': test[5],
                'apt': test[6],
                'fee': test[7],
                'fee2': test[8],
                'exp': test[9],
                'exp2': test[10],
                'vatrate': test[12],
            }
            if test[2]:
                query['partner'] = 'on'
            if test[11]:
                query['vat'] = 'on'
            query['submit_{}'.format(
                'dual' if test[13] else 'single')] = 'Vypočítat'
            res = self.client.post('/kos/', query)
            con = res.context['messages']
            self.assertEqual(
                con[0][0], 'Kalkulace pro společný návrh manželů'
                if test[13] else 'Kalkulace pro samostatného dlužníka')
            lines = 8 if test[13] else 7
            for idx in range(lines):
                self.assertEqual(con[idx + 1][0].split()[-2], test[idx + 14])
            self.assertEqual(con[-1][0].split()[-2], test[-1])
            check_html(self, res.content, key=num)
            num += 1
예제 #49
0
파일: test_szr.py 프로젝트: dimov-cz/legal
    def test_mainpage(self):

        res = self.client.get('/szr')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/szr/')
        self.assertEqual(res.status_code, HTTPStatus.FOUND)

        res = self.client.get('/szr/', follow=True)
        self.assertTemplateUsed(res, 'login.xhtml')

        self.assertTrue(self.client.login(username='******', password='******'))

        res = self.client.get('/szr/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        check_html(self, res.content)

        res = self.client.post('/szr/', {
            'email': 'xxx',
            'submit': 'Změnit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertContains(res, 'Chybné zadání, prosím, opravte údaje')
        check_html(self, res.content)

        res = self.client.post('/szr/', {
            'email': 'alt@' + LOCAL_DOMAIN,
            'submit': 'Změnit'
        },
                               follow=True)
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.user = User.objects.get(username='******')
        self.assertEqual(self.user.email, 'alt@' + LOCAL_DOMAIN)
        check_html(self, res.content)

        res = self.client.get('/szr/')
        soup = BeautifulSoup(res.content, 'html.parser')
        self.assertFalse(soup.select('table#list'))
        check_html(self, res.content)

        self.client.force_login(User.objects.get(pk=1))

        res = self.client.get('/szr/')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        self.assertEqual(len(soup.select('table#list tbody tr')), 7)
        models.Proceedings(uid_id=1,
                           court_id='OSPHA02',
                           senate=15,
                           register='C',
                           number=13287,
                           year=2016,
                           desc='Test').save()

        res = self.client.get('/szr/')
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        self.assertEqual(len(soup.select('table#list tbody tr')), 8)
        for number in range(200, 437):
            models.Proceedings(uid_id=1,
                               court_id='OSPHA02',
                               senate=15,
                               register='C',
                               number=number,
                               year=2016,
                               desc='Test {:d}'.format(number)).save()

        res = self.client.get('/szr/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 4)
        self.assertEqual(links[0]['href'], '/szr/procform/')
        self.assertEqual(links[1]['href'], '#')
        self.assertTrue(link_equal(links[2]['href'], '/szr/?start=50'))
        self.assertTrue(link_equal(links[3]['href'], '/szr/?start=200'))

        res = self.client.get('/szr/?start=50')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 6)
        self.assertEqual(links[0]['href'], '/szr/procform/')
        self.assertTrue(link_equal(links[1]['href'], '/szr/?start=0'))
        self.assertTrue(link_equal(links[2]['href'], '/szr/?start=0'))
        self.assertEqual(links[3]['href'], '#')
        self.assertTrue(link_equal(links[4]['href'], '/szr/?start=100'))
        self.assertTrue(link_equal(links[5]['href'], '/szr/?start=200'))

        res = self.client.get('/szr/?start=100')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 6)
        self.assertEqual(links[0]['href'], '/szr/procform/')
        self.assertTrue(link_equal(links[1]['href'], '/szr/?start=0'))
        self.assertTrue(link_equal(links[2]['href'], '/szr/?start=50'))
        self.assertEqual(links[3]['href'], '#')
        self.assertTrue(link_equal(links[4]['href'], '/szr/?start=150'))
        self.assertTrue(link_equal(links[5]['href'], '/szr/?start=200'))

        res = self.client.get('/szr/?start=200')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 45)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 4)
        self.assertEqual(links[0]['href'], '/szr/procform/')
        self.assertTrue(link_equal(links[1]['href'], '/szr/?start=0'))
        self.assertTrue(link_equal(links[2]['href'], '/szr/?start=150'))
        self.assertEqual(links[3]['href'], '#')

        res = self.client.get('/szr/?start=500')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'szr_mainpage.xhtml')
        self.assertEqual(len(res.context['rows']), 1)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 4)
        self.assertEqual(links[0]['href'], '/szr/procform/')
        self.assertTrue(link_equal(links[1]['href'], '/szr/?start=0'))
        self.assertTrue(link_equal(links[2]['href'], '/szr/?start=194'))
        self.assertEqual(links[3]['href'], '#')
예제 #50
0
파일: test_uds.py 프로젝트: tompecina/legal
    def test_htmllist(self):

        res = self.client.get('/uds/list')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.post('/uds/list/')
        self.assertEqual(res.status_code, HTTPStatus.METHOD_NOT_ALLOWED)

        res = self.client.get('/uds/list/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        check_html(self, res.content)

        res = self.client.get('/uds/list/?senate=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/list/?senate=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/list/?number=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/list/?number=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/list/?year=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/list/?year=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/list/?page=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/list/?page=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/list/?agenda=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/list/?agenda=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/list/?date_posted_from=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/list/?date_posted_to=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/list/?desc_opt=X')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/uds/list/?start=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get(
            '/uds/list/?date_posted_from=2005-01-01&date_posted_to=2199-07-01&register=SPR&desc_opt=icontains')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/uds/list/?start=100')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/uds/list/?register=T')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(res.context['total'], 0)
        check_html(self, res.content)

        res = self.client.get('/uds/list/?date_posted_from=2009-07-29')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/uds/list/?date_posted_from=2009-07-30')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(res.context['total'], 0)
        check_html(self, res.content)

        res = self.client.get('/uds/list/?date_posted_to=2009-07-29')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/uds/list/?date_posted_to=2009-07-28')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(res.context['total'], 0)
        check_html(self, res.content)

        pub = models.Publisher.objects.first().id
        res = self.client.get('/uds/list/?publisher={:d}'.format(pub))
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(res.context['total'], 1)

        res = self.client.get('/uds/list/?publisher={:d}'.format(pub + 1))
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(res.context['total'], 0)

        res = self.client.get('/uds/list/?agenda={:d}'.format(models.Agenda.objects.first().id))
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(res.context['total'], 1)

        res = self.client.get('/uds/list/?agenda=9999')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(res.context['total'], 0)
        check_html(self, res.content)

        res = self.client.get('/uds/list/?desc=ozvrh&desc_opt=icontains')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/uds/list/?desc=rozvrh&desc_opt=istartswith')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/uds/list/?desc=1&desc_opt=iendswith')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/uds/list/?desc=rozvrh práce, změna č. 1&desc_opt=iexact')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        doc = models.Document.objects.first().__dict__
        del doc['id'], doc['_state']
        for docid in range(200, 438):
            doc['docid'] = docid
            if docid == 437:
                doc['number'] = 654
            models.Document(**doc).save()

        res = self.client.get('/uds/list/?number=653')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 3)
        self.assertEqual(links[0]['href'], '#')
        self.assertTrue(link_equal(links[1]['href'], '/uds/list/?number=653&start=50'))
        self.assertTrue(link_equal(links[2]['href'], '/uds/list/?number=653&start=200'))

        res = self.client.get('/uds/list/?number=653&start=50')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 5)
        self.assertTrue(link_equal(links[0]['href'], '/uds/list/?number=653&start=0'))
        self.assertTrue(link_equal(links[1]['href'], '/uds/list/?number=653&start=0'))
        self.assertEqual(links[2]['href'], '#')
        self.assertTrue(link_equal(links[3]['href'], '/uds/list/?number=653&start=100'))
        self.assertTrue(link_equal(links[4]['href'], '/uds/list/?number=653&start=200'))

        res = self.client.get('/uds/list/?number=653&start=100')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 5)
        self.assertTrue(link_equal(links[0]['href'], '/uds/list/?number=653&start=0'))
        self.assertTrue(link_equal(links[1]['href'], '/uds/list/?number=653&start=50'))
        self.assertEqual(links[2]['href'], '#')
        self.assertTrue(link_equal(links[3]['href'], '/uds/list/?number=653&start=150'))
        self.assertTrue(link_equal(links[4]['href'], '/uds/list/?number=653&start=200'))

        res = self.client.get('/uds/list/?number=653&start=200')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'uds_list.xhtml')
        self.assertEqual(len(res.context['rows']), 38)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot a')
        self.assertEqual(len(links), 3)
        self.assertTrue(link_equal(links[0]['href'], '/uds/list/?number=653&start=0'))
        self.assertTrue(link_equal(links[1]['href'], '/uds/list/?number=653&start=150'))
        self.assertEqual(links[2]['href'], '#')
예제 #51
0
    def test_csvlist(self):

        res0 = '''Soud,Datum,Číslo jednací,Oblast,Účastníci řízení,Zkrácené znění,Anonymisované znění
'''

        res1 = '''{}Nejvyšší správní soud,01.07.2199,8 As 158/2015-33,Ochrana hospodářské soutěže a veřejné zakázky,\
"Úřad pro ochranu hospodářské soutěže;BUREAU VERITAS CZECH REPUBLIC, spol. s r.o.;Zlínský kraj",{}udn/0158_8As__1500\
033S.pdf,
'''.format(res0, REPO_URL)

        res2 = '''{0}Nejvyšší správní soud,01.07.2199,8 As 158/2015-33,Ochrana hospodářské soutěže a veřejné zakázky\
,"Úřad pro ochranu hospodářské soutěže;BUREAU VERITAS CZECH REPUBLIC, spol. s r.o.;Zlínský kraj",{1}udn/0158_8As__15\
00033S.pdf,{1}udn/0067_5As__1500054_20151119130217_prevedeno.pdf
'''.format(res0, REPO_URL)

        res = self.client.get('/udn/csvlist')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.post('/udn/csvlist/')
        self.assertEqual(res.status_code, HTTPStatus.METHOD_NOT_ALLOWED)

        res = self.client.get('/udn/csvlist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], 'text/csv; charset=utf-8')

        res = self.client.get('/udn/csvlist/?senate=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?senate=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?register=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?register=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?number=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?number=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?year=1989')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?year=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?page=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?page=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?agenda=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?agenda=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?date_from=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?date_to=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?party_opt=X')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?register=Ads')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertEqual(
            res.content.decode('utf-8').replace('\r\n', '\n'), res0)

        res = self.client.get(
            '/udn/csvlist/?date_from=2015-01-01&date_to=2199-07-01&register=As&agenda=1&party_opt=icontains'
        )
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertEqual(
            res.content.decode('utf-8').replace('\r\n', '\n'), res1)

        models.Decision.objects.update(
            anonfilename='0067_5As__1500054_20151119130217_prevedeno.pdf')

        res = self.client.get(
            '/udn/csvlist/?date_from=2015-01-01&date_to=2199-07-01&'
            'register=As&agenda=1&party_opt=icontains')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertEqual(
            res.content.decode('utf-8').replace('\r\n', '\n'), res2)

        exlim = views.EXLIM
        views.EXLIM = 0
        res = self.client.get('/udn/csvlist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'exlim.xhtml')
        check_html(self, res.content)
        views.EXLIM = exlim
예제 #52
0
    def test_main(self):

        cases = (
            ('11.11.2010', '6.7.2016', (
                '11.11.2010 → 06.07.2016',
                '2064 dnů',
                '1423 pracovních dnů',
                '5 let 7 měsíců 25 dnů',
                '5,650648 let (ACT/ACT)',
                '5,654795 let (ACT/365)',
                '5,733333 let (ACT/360)',
                '5,670330 let (ACT/364)',
                '5,652778 let (30U/360)',
                '5,652778 let (30E/360)',
                '5,652778 let (30E/360 ISDA)',
                '5,652778 let (30E+/360)',
                '67,826882 měsíců (ACT)',
                '67,833333 měsíců (30U)',
                '67,833333 měsíců (30E)',
                '67,833333 měsíců (30E ISDA)',
                '67,833333 měsíců (30E+)',
            )),
            ('11.11.2010', '06.07.2016', (
                '11.11.2010 → 06.07.2016',
                '2064 dnů',
                '1423 pracovních dnů',
                '5 let 7 měsíců 25 dnů',
                '5,650648 let (ACT/ACT)',
                '5,654795 let (ACT/365)',
                '5,733333 let (ACT/360)',
                '5,670330 let (ACT/364)',
                '5,652778 let (30U/360)',
                '5,652778 let (30E/360)',
                '5,652778 let (30E/360 ISDA)',
                '5,652778 let (30E+/360)',
                '67,826882 měsíců (ACT)',
                '67,833333 měsíců (30U)',
                '67,833333 měsíců (30E)',
                '67,833333 měsíců (30E ISDA)',
                '67,833333 měsíců (30E+)',
            )),
            ('11.11.2010', '6. 7. 2016', (
                '11.11.2010 → 06.07.2016',
                '2064 dnů',
                '1423 pracovních dnů',
                '5 let 7 měsíců 25 dnů',
                '5,650648 let (ACT/ACT)',
                '5,654795 let (ACT/365)',
                '5,733333 let (ACT/360)',
                '5,670330 let (ACT/364)',
                '5,652778 let (30U/360)',
                '5,652778 let (30E/360)',
                '5,652778 let (30E/360 ISDA)',
                '5,652778 let (30E+/360)',
                '67,826882 měsíců (ACT)',
                '67,833333 měsíců (30U)',
                '67,833333 měsíců (30E)',
                '67,833333 měsíců (30E ISDA)',
                '67,833333 měsíců (30E+)',
            )),
            ('3.8.2016', '4.8.2016', (
                '03.08.2016 → 04.08.2016',
                '1 den',
                '1 pracovní den',
                '0 let 0 měsíců 1 den',
                '0,002732 let (ACT/ACT)',
                '0,002740 let (ACT/365)',
                '0,002778 let (ACT/360)',
                '0,002747 let (ACT/364)',
                '0,002778 let (30U/360)',
                '0,002778 let (30E/360)',
                '0,002778 let (30E/360 ISDA)',
                '0,002778 let (30E+/360)',
                '0,032258 měsíců (ACT)',
                '0,033333 měsíců (30U)',
                '0,033333 měsíců (30E)',
                '0,033333 měsíců (30E ISDA)',
                '0,033333 měsíců (30E+)',
            )),
            ('15.2.2001', '29.3.2003', (
                '15.02.2001 → 29.03.2003',
                '772 dnů',
                '532 pracovních dnů',
                '2 roky 1 měsíc 14 dnů',
                '2,115068 let (ACT/ACT)',
                '2,115068 let (ACT/365)',
                '2,144444 let (ACT/360)',
                '2,120879 let (ACT/364)',
                '2,122222 let (30U/360)',
                '2,122222 let (30E/360)',
                '2,122222 let (30E/360 ISDA)',
                '2,122222 let (30E+/360)',
                '25,399770 měsíců (ACT)',
                '25,466667 měsíců (30U)',
                '25,466667 měsíců (30E)',
                '25,466667 měsíců (30E ISDA)',
                '25,466667 měsíců (30E+)',
            )),
            ('29.2.2016', '31.5.2016', (
                '29.02.2016 → 31.05.2016',
                '92 dnů',
                '64 pracovních dnů',
                '0 let 3 měsíce 2 dny',
                '0,251366 let (ACT/ACT)',
                '0,252055 let (ACT/365)',
                '0,255556 let (ACT/360)',
                '0,252747 let (ACT/364)',
                '0,255556 let (30U/360)',
                '0,252778 let (30E/360)',
                '0,250000 let (30E/360 ISDA)',
                '0,255556 let (30E+/360)',
                '3,000000 měsíců (ACT)',
                '3,066667 měsíců (30U)',
                '3,033333 měsíců (30E)',
                '3,000000 měsíců (30E ISDA)',
                '3,066667 měsíců (30E+)',
            )),
            ('', '31.5.2016', ('Chybné zadání', )),
            ('XXX', '31.5.2016', ('Chybné zadání', )),
            ('30.2.2016', '31.5.2016', ('Chybné zadání', )),
            ('29.2.2016', '', ('Chybné zadání', )),
            ('29.2.2016', 'XXX', ('Chybné zadání', )),
            ('29.2.2016', '29.2.2016', ('Počátek musí předcházet konci', )),
            ('29.2.2016', '1.4.2011', ('Počátek musí předcházet konci', )),
        )

        res = self.client.get('/cin')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.get('/cin/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'cin_mainpage.xhtml')
        check_html(self, res.content)

        today = date.today()
        for button in ('beg_date', 'end_date'):
            res = self.client.post('/cin/', {'submit_set_' + button: 'Dnes'})
            self.assertEqual(res.context['form'][button].value(), today)
            check_html(self, res.content, key=button)

        num = 1
        for test in cases:
            res = self.client.post('/cin/', {
                'beg_date': test[0],
                'end_date': test[1]
            })
            self.assertEqual(res.status_code, HTTPStatus.OK)
            self.assertTemplateUsed(res, 'cin_mainpage.xhtml')
            check_html(self, res.content, key=num)
            soup = BeautifulSoup(res.content, 'html.parser')
            msg = soup.find('td', 'msg').select('div')
            length = len(msg)
            self.assertEqual(length, len(test[2]))
            for idx in range(length):
                self.assertEqual(msg[idx].text, test[2][idx])
            num += 1
예제 #53
0
파일: test_udn.py 프로젝트: tompecina/legal
    def test_csvlist(self):

        res0 = '''Soud,Datum,Číslo jednací,Oblast,Účastníci řízení,Zkrácené znění,Anonymisované znění
'''

        res1 = '''{}Nejvyšší správní soud,01.07.2199,8 As 158/2015-33,Ochrana hospodářské soutěže a veřejné zakázky,\
"Úřad pro ochranu hospodářské soutěže;BUREAU VERITAS CZECH REPUBLIC, spol. s r.o.;Zlínský kraj",{}udn/0158_8As__1500\
033S.pdf,
'''.format(res0, REPO_URL)

        res2 = '''{0}Nejvyšší správní soud,01.07.2199,8 As 158/2015-33,Ochrana hospodářské soutěže a veřejné zakázky\
,"Úřad pro ochranu hospodářské soutěže;BUREAU VERITAS CZECH REPUBLIC, spol. s r.o.;Zlínský kraj",{1}udn/0158_8As__15\
00033S.pdf,{1}udn/0067_5As__1500054_20151119130217_prevedeno.pdf
'''.format(res0, REPO_URL)

        res = self.client.get('/udn/csvlist')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.post('/udn/csvlist/')
        self.assertEqual(res.status_code, HTTPStatus.METHOD_NOT_ALLOWED)

        res = self.client.get('/udn/csvlist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], 'text/csv; charset=utf-8')

        res = self.client.get('/udn/csvlist/?senate=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?senate=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?register=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?register=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?number=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?number=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?year=1989')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?year=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?page=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?page=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?agenda=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?agenda=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?date_from=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?date_to=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?party_opt=X')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/csvlist/?register=Ads')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertEqual(res.content.decode('utf-8').replace('\r\n', '\n'), res0)

        res = self.client.get(
            '/udn/csvlist/?date_from=2015-01-01&date_to=2199-07-01&register=As&agenda=1&party_opt=icontains')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertEqual(res.content.decode('utf-8').replace('\r\n', '\n'), res1)

        models.Decision.objects.update(anonfilename='0067_5As__1500054_20151119130217_prevedeno.pdf')

        res = self.client.get(
            '/udn/csvlist/?date_from=2015-01-01&date_to=2199-07-01&'
            'register=As&agenda=1&party_opt=icontains')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertEqual(res.content.decode('utf-8').replace('\r\n', '\n'), res2)

        exlim = views.EXLIM
        views.EXLIM = 0
        res = self.client.get('/udn/csvlist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'exlim.xhtml')
        check_html(self, res.content)
        views.EXLIM = exlim
예제 #54
0
    def test_jsonlist(self):

        res0 = '[]'

        res1 = '''[{{"parties": ["\u00da\u0159ad pro ochranu hospod\u00e1\u0159sk\u00e9 sout\u011b\u017ee", "BUREAU \
VERITAS CZECH REPUBLIC, spol. s r.o.", "Zl\u00ednsk\u00fd kraj"], "files": {{"abridged": "{}udn/0158_8As__1500033S.p\
df"}}, "date": "2199-07-01", "court": {{"name": "Nejvy\u0161\u0161\u00ed spr\u00e1vn\u00ed soud", "id": "NSS"}}, "re\
f": {{"senate": 8, "register": "As", "number": 158, "year": 2015, "page": 33}}, "agenda": "Ochrana hospod\u00e1\
\u0159sk\u00e9 sout\u011b\u017ee a ve\u0159ejn\u00e9 zak\u00e1zky"}}]'''.format(
            REPO_URL)

        res2 = '''[{{"parties": ["\u00da\u0159ad pro ochranu hospod\u00e1\u0159sk\u00e9 sout\u011b\u017ee", "BUREAU \
VERITAS CZECH REPUBLIC, spol. s r.o.", "Zl\u00ednsk\u00fd kraj"], "files": {{"abridged": "{0}udn/0158_8As__1500033S.\
pdf", "anonymized": "{0}udn/0067_5As__1500054_20151119130217_prevedeno.pdf"}}, "date": "2199-07-01", "court": {{"nam\
e": "Nejvy\u0161\u0161\u00ed spr\u00e1vn\u00ed soud", "id": "NSS"}}, "ref": {{"senate": 8, "register": "As", "number\
": 158, "year": 2015, "page": 33}}, "agenda": "Ochrana hospod\u00e1\u0159sk\u00e9 sout\u011b\u017ee a ve\u0159ejn\
\u00e9 zak\u00e1zky"}}]'''.format(REPO_URL)

        res = self.client.get('/udn/jsonlist')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.post('/udn/jsonlist/')
        self.assertEqual(res.status_code, HTTPStatus.METHOD_NOT_ALLOWED)

        res = self.client.get('/udn/jsonlist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'],
                         'application/json; charset=utf-8')

        res = self.client.get('/udn/jsonlist/?senate=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?senate=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?register=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?register=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?number=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?number=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?year=1989')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?year=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?page=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?page=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?agenda=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?agenda=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?date_from=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?date_to=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?party_opt=X')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/jsonlist/?register=Ads')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertJSONEqual(res.content.decode('utf-8'), res0)

        res = self.client.get(
            '/udn/jsonlist/?date_from=2015-01-01&date_to=2199-07-01&register=As&agenda=1&party_opt=icontains'
        )
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertJSONEqual(res.content.decode('utf-8'), res1)

        models.Decision.objects.update(
            anonfilename='0067_5As__1500054_20151119130217_prevedeno.pdf')

        res = self.client.get(
            '/udn/jsonlist/?date_from=2015-01-01&date_to=2199-07-01&register=As&agenda=1&party_opt=icontains'
        )
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertJSONEqual(res.content.decode('utf-8'), res2)

        exlim = views.EXLIM
        views.EXLIM = 0
        res = self.client.get('/udn/jsonlist/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'exlim.xhtml')
        check_html(self, res.content)
        views.EXLIM = exlim
예제 #55
0
파일: test_udn.py 프로젝트: tompecina/legal
    def test_htmllist(self):

        res = self.client.get('/udn/list')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.post('/udn/list/')
        self.assertEqual(res.status_code, HTTPStatus.METHOD_NOT_ALLOWED)

        res = self.client.get('/udn/list/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        check_html(self, res.content)

        res = self.client.get('/udn/list/?senate=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?senate=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?register=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?register=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?number=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?number=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?year=1989')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?year=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?page=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?page=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?agenda=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?agenda=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?date_from=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?date_to=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?party_opt=X')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?start=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get(
            '/udn/list/?date_from=2015-01-01&date_to=2199-07-01&register=As&agenda=1&party_opt=icontains')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/udn/list/?start=100')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/udn/list/?register=Ads')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(res.context['total'], 0)
        check_html(self, res.content)

        res = self.client.get('/udn/list/?date_from=2199-07-01')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/udn/list/?date_from=2199-07-02')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(res.context['total'], 0)
        check_html(self, res.content)

        res = self.client.get('/udn/list/?date_to=2199-07-01')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/udn/list/?date_to=2199-06-30')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(res.context['total'], 0)
        check_html(self, res.content)

        dec = models.Decision.objects.get().__dict__
        del dec['id'], dec['_state']
        for page in range(200, 437):
            dec['page'] = page
            models.Decision(**dec).save()

        res = self.client.get('/udn/list/?senate=8')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot tr a')
        self.assertEqual(len(links), 3)
        self.assertEqual(links[0]['href'], '#')
        self.assertTrue(link_equal(links[1]['href'], '/udn/list/?senate=8&start=50'))
        self.assertTrue(link_equal(links[2]['href'], '/udn/list/?senate=8&start=200'))

        res = self.client.get('/udn/list/?senate=8&start=50')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot tr a')
        self.assertEqual(len(links), 5)
        self.assertTrue(link_equal(links[0]['href'], '/udn/list/?senate=8&start=0'))
        self.assertTrue(link_equal(links[1]['href'], '/udn/list/?senate=8&start=0'))
        self.assertEqual(links[2]['href'], '#')
        self.assertTrue(link_equal(links[3]['href'], '/udn/list/?senate=8&start=100'))
        self.assertTrue(link_equal(links[4]['href'], '/udn/list/?senate=8&start=200'))

        res = self.client.get('/udn/list/?senate=8&start=100')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot tr a')
        self.assertEqual(len(links), 5)
        self.assertTrue(link_equal(links[0]['href'], '/udn/list/?senate=8&start=0'))
        self.assertTrue(link_equal(links[1]['href'], '/udn/list/?senate=8&start=50'))
        self.assertEqual(links[2]['href'], '#')
        self.assertTrue(link_equal(links[3]['href'], '/udn/list/?senate=8&start=150'))
        self.assertTrue(link_equal(links[4]['href'], '/udn/list/?senate=8&start=200'))

        res = self.client.get('/udn/list/?senate=8&start=200')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(len(res.context['rows']), 38)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot tr a')
        self.assertEqual(len(links), 3)
        self.assertTrue(link_equal(links[0]['href'], '/udn/list/?senate=8&start=0'))
        self.assertTrue(link_equal(links[1]['href'], '/udn/list/?senate=8&start=150'))
        self.assertEqual(links[2]['href'], '#')
예제 #56
0
    def test_htmllist(self):

        res = self.client.get('/udn/list')
        self.assertEqual(res.status_code, HTTPStatus.MOVED_PERMANENTLY)

        res = self.client.post('/udn/list/')
        self.assertEqual(res.status_code, HTTPStatus.METHOD_NOT_ALLOWED)

        res = self.client.get('/udn/list/')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTrue(res.has_header('content-type'))
        self.assertEqual(res['content-type'], FULL_CONTENT_TYPE)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        check_html(self, res.content)

        res = self.client.get('/udn/list/?senate=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?senate=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?register=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?register=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?number=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?number=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?year=1989')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?year=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?page=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?page=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?agenda=0')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?agenda=XXX')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?date_from=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?date_to=2015-X-01')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?party_opt=X')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get('/udn/list/?start=-1')
        self.assertEqual(res.status_code, HTTPStatus.NOT_FOUND)

        res = self.client.get(
            '/udn/list/?date_from=2015-01-01&date_to=2199-07-01&register=As&agenda=1&party_opt=icontains'
        )
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/udn/list/?start=100')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/udn/list/?register=Ads')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(res.context['total'], 0)
        check_html(self, res.content)

        res = self.client.get('/udn/list/?date_from=2199-07-01')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/udn/list/?date_from=2199-07-02')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(res.context['total'], 0)
        check_html(self, res.content)

        res = self.client.get('/udn/list/?date_to=2199-07-01')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(res.context['total'], 1)
        check_html(self, res.content)

        res = self.client.get('/udn/list/?date_to=2199-06-30')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(res.context['total'], 0)
        check_html(self, res.content)

        dec = models.Decision.objects.get().__dict__
        del dec['id'], dec['_state']
        for page in range(200, 437):
            dec['page'] = page
            models.Decision(**dec).save()

        res = self.client.get('/udn/list/?senate=8')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot tr a')
        self.assertEqual(len(links), 3)
        self.assertEqual(links[0]['href'], '#')
        self.assertTrue(
            link_equal(links[1]['href'], '/udn/list/?senate=8&start=50'))
        self.assertTrue(
            link_equal(links[2]['href'], '/udn/list/?senate=8&start=200'))

        res = self.client.get('/udn/list/?senate=8&start=50')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot tr a')
        self.assertEqual(len(links), 5)
        self.assertTrue(
            link_equal(links[0]['href'], '/udn/list/?senate=8&start=0'))
        self.assertTrue(
            link_equal(links[1]['href'], '/udn/list/?senate=8&start=0'))
        self.assertEqual(links[2]['href'], '#')
        self.assertTrue(
            link_equal(links[3]['href'], '/udn/list/?senate=8&start=100'))
        self.assertTrue(
            link_equal(links[4]['href'], '/udn/list/?senate=8&start=200'))

        res = self.client.get('/udn/list/?senate=8&start=100')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(len(res.context['rows']), 50)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot tr a')
        self.assertEqual(len(links), 5)
        self.assertTrue(
            link_equal(links[0]['href'], '/udn/list/?senate=8&start=0'))
        self.assertTrue(
            link_equal(links[1]['href'], '/udn/list/?senate=8&start=50'))
        self.assertEqual(links[2]['href'], '#')
        self.assertTrue(
            link_equal(links[3]['href'], '/udn/list/?senate=8&start=150'))
        self.assertTrue(
            link_equal(links[4]['href'], '/udn/list/?senate=8&start=200'))

        res = self.client.get('/udn/list/?senate=8&start=200')
        self.assertEqual(res.status_code, HTTPStatus.OK)
        self.assertTemplateUsed(res, 'udn_list.xhtml')
        self.assertEqual(len(res.context['rows']), 38)
        check_html(self, res.content)
        soup = BeautifulSoup(res.content, 'html.parser')
        links = soup.select('.list tfoot tr a')
        self.assertEqual(len(links), 3)
        self.assertTrue(
            link_equal(links[0]['href'], '/udn/list/?senate=8&start=0'))
        self.assertTrue(
            link_equal(links[1]['href'], '/udn/list/?senate=8&start=150'))
        self.assertEqual(links[2]['href'], '#')