Beispiel #1
0
    def _render_change_replace_lines(self, differ, i1, i2, j1, j2,
                                     old_lines, new_lines):
        replace_new_lines = []

        for i, j in zip(range(i1, i2), range(j1, j2)):
            old_line = old_lines[i]
            new_line = new_lines[j]

            parser = HTMLParser()

            old_regions, new_regions = \
                get_line_changed_regions(parser.unescape(strip_tags(old_line)),
                                         parser.unescape(strip_tags(new_line)))

            old_line = highlightregion(old_line, old_regions)
            new_line = highlightregion(new_line, new_regions)

            yield (
                '<tr class="replace-old">'
                ' <td class="marker">~</td>'
                ' <td class="marker">&nbsp;</td>'
                ' <td class="line rich-text">%s</td>'
                '</tr>'
                % old_line)

            replace_new_lines.append(new_line)

        for line in replace_new_lines:
            yield (
                '<tr class="replace-new">'
                ' <td class="marker">&nbsp;</td>'
                ' <td class="marker">~</td>'
                ' <td class="line rich-text">%s</td>'
                '</tr>'
                % line)
Beispiel #2
0
    def _render_change_replace_lines(self, differ, i1, i2, j1, j2, old_lines,
                                     new_lines):
        replace_new_lines = []

        for i, j in zip(range(i1, i2), range(j1, j2)):
            old_line = old_lines[i]
            new_line = new_lines[j]

            old_regions, new_regions = \
                get_line_changed_regions(unescape(strip_tags(old_line)),
                                         unescape(strip_tags(new_line)))

            old_line = highlightregion(old_line, old_regions)
            new_line = highlightregion(new_line, new_regions)

            yield ('<tr class="replace-old">'
                   ' <td class="marker">~</td>'
                   ' <td class="marker">&nbsp;</td>'
                   ' <td class="line rich-text">%s</td>'
                   '</tr>' % old_line)

            replace_new_lines.append(new_line)

        for line in replace_new_lines:
            yield ('<tr class="replace-new">'
                   ' <td class="marker">&nbsp;</td>'
                   ' <td class="marker">~</td>'
                   ' <td class="line rich-text">%s</td>'
                   '</tr>' % line)
    def test_html_and_range_spanning_entities(self):
        """Testing highlightregion with HTML string and range spanning
        entities
        """
        self.assertEqual(highlightregion('&quot;foo&quot;', [(0, 1)]),
                         '<span class="hl">&quot;</span>foo&quot;')

        self.assertEqual(highlightregion('&quot;foo&quot;', [(2, 5)]),
                         '&quot;f<span class="hl">oo&quot;</span>')
    def test_html_and_range_spanning_entities(self):
        """Testing highlightregion with HTML string and range spanning
        entities
        """
        self.assertEqual(
            highlightregion('&quot;foo&quot;', [(0, 1)]),
            '<span class="hl">&quot;</span>foo&quot;')

        self.assertEqual(
            highlightregion('&quot;foo&quot;', [(2, 5)]),
            '&quot;f<span class="hl">oo&quot;</span>')
    def test_html_and_range_spanning_tags(self):
        """Testing highlightregion with HTML string and range spanning tags"""
        self.assertEqual(
            highlightregion('<span class="xy">abc</span>123', [(1, 4)]),
            '<span class="xy">a<span class="hl">bc</span></span>'
            '<span class="hl">1</span>23')

        self.assertEqual(
            highlightregion('<span class="xy">abc</span>'
                            '<span class="z">12</span>3',
                            [(1, 4)]),
            '<span class="xy">a<span class="hl">bc</span></span>'
            '<span class="z"><span class="hl">1</span>2</span>3')
    def test_html_and_range_spanning_tags(self):
        """Testing highlightregion with HTML string and range spanning tags"""
        self.assertEqual(
            highlightregion('<span class="xy">abc</span>123', [(1, 4)]),
            '<span class="xy">a<span class="hl">bc</span></span>'
            '<span class="hl">1</span>23')

        self.assertEqual(
            highlightregion('<span class="xy">abc</span>'
                            '<span class="z">12</span>3',
                            [(1, 4)]),
            '<span class="xy">a<span class="hl">bc</span></span>'
            '<span class="z"><span class="hl">1</span>2</span>3')
 def test_html_and_full_range_spanning_entities(self):
     """Testing highlightregion with HTML string and full text range
     spanning entities
     """
     self.assertEqual(
         highlightregion('foo&quot;bar', [(0, 7)]),
         '<span class="hl">foo&quot;bar</span>')
 def test_html_and_full_range_spanning_entities(self):
     """Testing highlightregion with HTML string and full text range
     spanning entities
     """
     self.assertEqual(
         highlightregion('foo&quot;bar', [(0, 7)]),
         '<span class="hl">foo&quot;bar</span>')
 def test_html_and_range_spanning_entities_inside_tag(self):
     """Testing highlightregion with HTML string and range spanning
     entities inside tag
     """
     self.assertEqual(
         highlightregion('foo=<span class="ab">&quot;foo&quot;</span>)',
                         [(4, 9)]),
         'foo=<span class="ab"><span class="hl">&quot;foo&quot;'
         '</span></span>)')
 def test_html_and_range_spanning_entities_inside_tag(self):
     """Testing highlightregion with HTML string and range spanning
     entities inside tag
     """
     self.assertEqual(
         highlightregion('foo=<span class="ab">&quot;foo&quot;</span>)',
                         [(4, 9)]),
         'foo=<span class="ab"><span class="hl">&quot;foo&quot;'
         '</span></span>)')
 def test_html_and_multiple_ranges_spanning_tags(self):
     """Testing highlightregion with HTML string and multiple ranges
     spanning tags
     """
     self.assertEqual(
         highlightregion('foo<span class="xy">abc</span>'
                         '<span class="z">12</span>3',
                         [(0, 6), (7, 9)]),
         '<span class="hl">foo</span><span class="xy">'
         '<span class="hl">abc</span></span><span class="z">1'
         '<span class="hl">2</span></span><span class="hl">3</span>')
 def test_html_and_multiple_ranges_spanning_tags(self):
     """Testing highlightregion with HTML string and multiple ranges
     spanning tags
     """
     self.assertEqual(
         highlightregion('foo<span class="xy">abc</span>'
                         '<span class="z">12</span>3',
                         [(0, 6), (7, 9)]),
         '<span class="hl">foo</span><span class="xy">'
         '<span class="hl">abc</span></span><span class="z">1'
         '<span class="hl">2</span></span><span class="hl">3</span>')
 def test_html_and_range(self):
     """Testing highlightregion with HTML string and range"""
     self.assertEqual(
         highlightregion('<span class="xy">a</span>bc', [(0, 1)]),
         '<span class="xy"><span class="hl">a</span></span>bc')
 def test_plain_text_and_range(self):
     """Testing highlightregion with plain text string and range"""
     self.assertEqual(highlightregion('abc', [(0, 1)]),
                      '<span class="hl">a</span>bc')
 def test_plain_text_and_full_range(self):
     """Testing highlightregion with plain text string and full text range
     """
     self.assertEqual(highlightregion('abc', [(0, 3)]),
                      '<span class="hl">abc</span>')
 def test_plain_text(self):
     """Testing highlightregion with plain text string and no range"""
     self.assertEqual(highlightregion('abc', None), 'abc')
 def test_plain_text(self):
     """Testing highlightregion with plain text string and no range"""
     self.assertEqual(highlightregion('abc', None), 'abc')
 def test_html_and_range(self):
     """Testing highlightregion with HTML string and range"""
     self.assertEqual(
         highlightregion('<span class="xy">a</span>bc', [(0, 1)]),
         '<span class="xy"><span class="hl">a</span></span>bc')
 def test_plain_text_and_full_range(self):
     """Testing highlightregion with plain text string and full text range
     """
     self.assertEqual(highlightregion('abc', [(0, 3)]),
                      '<span class="hl">abc</span>')
 def test_plain_text_and_range(self):
     """Testing highlightregion with plain text string and range"""
     self.assertEqual(highlightregion('abc', [(0, 1)]),
                      '<span class="hl">a</span>bc')
Beispiel #21
0
    def testHighlightRegion(self):
        """Testing highlightregion"""
        self.assertEquals(highlightregion("", None), "")

        self.assertEquals(highlightregion("abc", None), "abc")

        self.assertEquals(highlightregion("abc", [(0, 3)]),
                                          '<span class="hl">abc</span>')

        self.assertEquals(highlightregion("abc", [(0, 1)]),
                                          '<span class="hl">a</span>bc')

        self.assertEquals(highlightregion(
            '<span class="xy">a</span>bc',
            [(0, 1)]),
            '<span class="xy"><span class="hl">a</span></span>bc')

        self.assertEquals(highlightregion(
            '<span class="xy">abc</span>123',
            [(1, 4)]),
            '<span class="xy">a<span class="hl">bc</span></span>' +
            '<span class="hl">1</span>23')

        self.assertEquals(highlightregion(
            '<span class="xy">abc</span><span class="z">12</span>3',
            [(1, 4)]),
            '<span class="xy">a<span class="hl">bc</span></span>' +
            '<span class="z"><span class="hl">1</span>2</span>3')

        self.assertEquals(highlightregion(
            'foo<span class="xy">abc</span><span class="z">12</span>3',
            [(0, 6), (7, 9)]),
            '<span class="hl">foo</span><span class="xy">' +
            '<span class="hl">abc</span></span><span class="z">1' +
            '<span class="hl">2</span></span><span class="hl">3</span>')

        self.assertEquals(highlightregion(
            'foo&quot;bar',
            [(0, 7)]),
            '<span class="hl">foo&quot;bar</span>')

        self.assertEquals(highlightregion(
            '&quot;foo&quot;',
            [(0, 1)]),
            '<span class="hl">&quot;</span>foo&quot;')

        self.assertEquals(highlightregion(
            '&quot;foo&quot;',
            [(2, 5)]),
            '&quot;f<span class="hl">oo&quot;</span>')

        self.assertEquals(highlightregion(
            'foo=<span class="ab">&quot;foo&quot;</span>)',
            [(4, 9)]),
            'foo=<span class="ab"><span class="hl">&quot;foo&quot;' +
            '</span></span>)')
Beispiel #22
0
    def testHighlightRegion(self):
        """Testing highlightregion"""
        self.assertEquals(highlightregion("", None), "")

        self.assertEquals(highlightregion("abc", None), "abc")

        self.assertEquals(highlightregion("abc", [(0, 3)]),
                          '<span class="hl">abc</span>')

        self.assertEquals(highlightregion("abc", [(0, 1)]),
                          '<span class="hl">a</span>bc')

        self.assertEquals(
            highlightregion('<span class="xy">a</span>bc', [(0, 1)]),
            '<span class="xy"><span class="hl">a</span></span>bc')

        self.assertEquals(
            highlightregion('<span class="xy">abc</span>123', [(1, 4)]),
            '<span class="xy">a<span class="hl">bc</span></span>' +
            '<span class="hl">1</span>23')

        self.assertEquals(
            highlightregion(
                '<span class="xy">abc</span><span class="z">12</span>3',
                [(1, 4)]),
            '<span class="xy">a<span class="hl">bc</span></span>' +
            '<span class="z"><span class="hl">1</span>2</span>3')

        self.assertEquals(
            highlightregion(
                'foo<span class="xy">abc</span><span class="z">12</span>3',
                [(0, 6),
                 (7, 9)]), '<span class="hl">foo</span><span class="xy">' +
            '<span class="hl">abc</span></span><span class="z">1' +
            '<span class="hl">2</span></span><span class="hl">3</span>')

        self.assertEquals(highlightregion('foo&quot;bar', [(0, 7)]),
                          '<span class="hl">foo&quot;bar</span>')

        self.assertEquals(highlightregion('&quot;foo&quot;', [(0, 1)]),
                          '<span class="hl">&quot;</span>foo&quot;')

        self.assertEquals(highlightregion('&quot;foo&quot;', [(2, 5)]),
                          '&quot;f<span class="hl">oo&quot;</span>')

        self.assertEquals(
            highlightregion('foo=<span class="ab">&quot;foo&quot;</span>)',
                            [(4, 9)]),
            'foo=<span class="ab"><span class="hl">&quot;foo&quot;' +
            '</span></span>)')
 def test_empty_string(self):
     """Testing highlightregion with empty string and no range"""
     self.assertEqual(highlightregion('', None), '')
 def test_empty_string(self):
     """Testing highlightregion with empty string and no range"""
     self.assertEqual(highlightregion('', None), '')