def test_footnote_refs(self):
     psv = ParagraphSXSView()
     psv.footnote_tpl = template_engines['django'].from_string(
         "[{{footnote.reference}}]")
     sxs = {
         'paragraphs': [
             'This is paragraph 1, I mean zero',
             'Will the real paragraph one please stand up?',
             'I am paragraph 10. Is that good enough?'],
         'footnote_refs': [
             {'reference': '1', 'paragraph': 0, 'offset': 7},
             {'reference': '2', 'paragraph': 0, 'offset': 27},
             {'reference': '12', 'paragraph': 2, 'offset': 1}],
         'children': [
             {'paragraphs': ['Subparagraph here'],
              'footnote_refs': [
                  {'reference': '22', 'paragraph': 0, 'offset': 12}],
              'children': []}]}
     psv.footnote_refs(sxs)
     self.assertEqual('This is[1] paragraph 1, I mean[2] zero',
                      sxs['paragraphs'][0])
     self.assertEqual('Will the real paragraph one please stand up?',
                      sxs['paragraphs'][1])
     self.assertEqual('I[12] am paragraph 10. Is that good enough?',
                      sxs['paragraphs'][2])
     self.assertEqual('Subparagraph[22] here',
                      sxs['children'][0]['paragraphs'][0])
 def test_get_context_data(self, further_analyses, notices, generator):
     psv = ParagraphSXSView()
     generator.get_sxs.return_value = {
         'labels': ['lablab', 'another-label'],
         'children': [],
         'page': 1234,
         'paragraphs': ['some', 'content']
     }
     context = psv.get_context_data(label_id='lablab', notice_id='nnnn',
                                    version='vvv')
     self.assertTrue('sxs' in context)
     self.assertTrue('label' in context['sxs'])
    def test_further_analyses(self, api_reader):
        doc1 = {'publication_date': '2009-04-05', 'fr_volume': 21,
                'fr_page': 98989, 'reference': ['doc1', '1212-31']}
        doc2 = {'publication_date': '2010-03-03', 'fr_volume': 22,
                'fr_page': 87655, 'reference': ['doc2', '1212-31']}
        doc3 = {'publication_date': '2010-10-12', 'fr_volume': 22,
                'fr_page': 90123, 'reference': ['doc3', '1212-31']}
        doc4 = {'publication_date': '2009-03-07', 'fr_volume': 21,
                'fr_page': 98888, 'reference': ['doc4', '1212-31-b']}
        api_reader.ApiReader.return_value.layer.return_value = {
            '1212-31': [doc1, doc2, doc3],
            '1212-31-b': [doc4]
        }

        psv = ParagraphSXSView()
        self.assertEqual(
            psv.further_analyses('1212-31', 'doc1', 98989, 'v1'),
            convert_to_python([doc3, doc2]))
        self.assertEqual(
            psv.further_analyses('1212-31', 'doc5', 0, 'v1'),
            convert_to_python([doc3, doc2, doc1]))
        self.assertEqual(
            psv.further_analyses('1212-31', 'doc3', 90123, 'v1'),
            convert_to_python([doc2, doc1]))

        self.assertEqual(
            psv.further_analyses('1212-31-b', 'doc3', 90123, 'v1'),
            convert_to_python([doc4]))
        self.assertEqual(psv.further_analyses('1212-31-b', 'doc4', 98888,
                                              'v1'), [])
        self.assertEqual(psv.further_analyses('1212-31-c', 'doc1', 98989,
                                              'v1'), [])

        # Same notice + label. Different page
        doc5 = {'publication_date': '2009-04-05', 'fr_volume': 21,
                'fr_page': 10101, 'reference': ['doc1', '1212-31']}
        api_reader.ApiReader.return_value.layer.return_value = {
            '1212-31': [doc1, doc2, doc3, doc5],
            '1212-31-b': [doc4]
        }
        self.assertEqual(
            psv.further_analyses('1212-31', 'doc1', 98989, 'v1'),
            convert_to_python([doc5, doc3, doc2]))
        self.assertEqual(
            psv.further_analyses('1212-31', 'doc1', 10101, 'v1'),
            convert_to_python([doc3, doc2, doc1]))
        self.assertEqual(
            psv.further_analyses('1212-31', 'doc3', 90123, 'v1'),
            convert_to_python([doc5, doc2, doc1]))
Пример #4
0
 def test_footnotes(self):
     psv = ParagraphSXSView()
     notice = {
         'footnotes': {
             '12': 'Twelve',
             '22': 'Twenty-two',
             '31': 'Thirty-one',
             '45': 'Forty-five'
         }
     }
     sxs = {
         'footnote_refs': [{
             'reference': '12',
             'paragraph': 4,
             'offset': 233
         }, {
             'reference': '22',
             'paragraph': 2,
             'offset': 111
         }],
         'children': [{
             'footnote_refs': [{
                 'reference': '45',
                 'paragraph': 3,
                 'offset': 22
             }],
             'children': []
         }]
     }
     footnotes = psv.footnotes(notice, sxs)
     self.assertEqual(len(footnotes), 3)
     self.assertEqual(footnotes[0]['reference'], '12')
     self.assertEqual(footnotes[0]['text'], 'Twelve')
     self.assertEqual(footnotes[1]['reference'], '22')
     self.assertEqual(footnotes[1]['text'], 'Twenty-two')
     self.assertEqual(footnotes[2]['reference'], '45')
     self.assertEqual(footnotes[2]['text'], 'Forty-five')