Exemplo n.º 1
0
    def test_tree_line_generator(self):
        from quotequail import _html

        tree = _html.get_html_tree('<div>foo <span>bar</span><br>baz</div>')
        data = [result for result in _html.tree_line_generator(tree)]
        div = tree.xpath('div')[0]
        br = tree.xpath('div/br')[0]
        span = tree.xpath('div/span')[0]
        self.assertEqual(data, [
            ((div, 'begin'), (br, 'begin'), 0, 'foo bar'),
            ((br, 'end'), (div, 'end'), 0, 'baz'),
        ])
        data = [
            result for result in _html.tree_line_generator(tree, max_lines=1)
        ]
        div = tree.xpath('div')[0]
        br = tree.xpath('div/br')[0]
        self.assertEqual(data, [
            ((div, 'begin'), (br, 'begin'), 0, 'foo bar'),
        ])

        tree = _html.get_html_tree('<div><h1>foo</h1>bar</div>')
        data = [result for result in _html.tree_line_generator(tree)]
        div = tree.xpath('div')[0]
        h1 = tree.xpath('div/h1')[0]
        self.assertEqual(data, [
            ((h1, 'begin'), (h1, 'end'), 0, 'foo'),
            ((h1, 'end'), (div, 'end'), 0, 'bar'),
        ])

        tree = _html.get_html_tree(
            '<div><blockquote>hi</blockquote>world</div>')
        data = [result for result in _html.tree_line_generator(tree)]
        div = tree.xpath('div')[0]
        blockquote = tree.xpath('div/blockquote')[0]
        self.assertEqual(data, [
            ((blockquote, 'begin'), (blockquote, 'end'), 1, 'hi'),
            ((blockquote, 'end'), (div, 'end'), 0, 'world'),
        ])

        tree = _html.get_html_tree('''
            <table>
                <tr><td>Subject: </td><td>the subject</td></tr>
                <tr><td>From: </td><td>from line</td></tr>
            </table>''')
        data = [result for result in _html.tree_line_generator(tree)]
        tr1, tr2 = tree.xpath('table/tr')
        self.assertEqual(data, [
            ((tr1, 'begin'), (tr1, 'end'), 0, 'Subject: the subject'),
            ((tr2, 'begin'), (tr2, 'end'), 0, 'From: from line'),
        ])
Exemplo n.º 2
0
    def test_tree_line_generator(self):
        from quotequail import _html

        tree = _html.get_html_tree('<div>foo <span>bar</span><br>baz</div>')
        data = [result for result in _html.tree_line_generator(tree)]
        div = tree.xpath('div')[0]
        br = tree.xpath('div/br')[0]
        span = tree.xpath('div/span')[0]
        self.assertEqual(data, [
            ((div, 'begin'), (br, 'begin'), 0, 'foo bar'),
            ((br, 'end'), (div, 'end'), 0, 'baz'),
        ])
        data = [result for result in _html.tree_line_generator(tree, max_lines=1)]
        div = tree.xpath('div')[0]
        br = tree.xpath('div/br')[0]
        self.assertEqual(data, [
            ((div, 'begin'), (br, 'begin'), 0, 'foo bar'),
        ])

        tree = _html.get_html_tree('<div><h1>foo</h1>bar</div>')
        data = [result for result in _html.tree_line_generator(tree)]
        div = tree.xpath('div')[0]
        h1 = tree.xpath('div/h1')[0]
        self.assertEqual(data, [
            ((h1, 'begin'), (h1, 'end'), 0, 'foo'),
            ((h1, 'end'), (div, 'end'), 0, 'bar'),
        ])

        tree = _html.get_html_tree(
                '<div><blockquote>hi</blockquote>world</div>')
        data = [result for result in _html.tree_line_generator(tree)]
        div = tree.xpath('div')[0]
        blockquote = tree.xpath('div/blockquote')[0]
        self.assertEqual(data, [
            ((blockquote, 'begin'), (blockquote, 'end'), 1, 'hi'),
            ((blockquote, 'end'), (div, 'end'), 0, 'world'),
        ])

        tree = _html.get_html_tree('''
            <table>
                <tr><td>Subject: </td><td>the subject</td></tr>
                <tr><td>From: </td><td>from line</td></tr>
            </table>''')
        data = [result for result in _html.tree_line_generator(tree)]
        tr1, tr2 = tree.xpath('table/tr')
        self.assertEqual(data, [
            ((tr1, 'begin'), (tr1, 'end'), 0, 'Subject: the subject'),
            ((tr2, 'begin'), (tr2, 'end'), 0, 'From: from line'),
        ])
Exemplo n.º 3
0
    def test_trim_before(self):
        from quotequail import _html

        html = '<div>A<span>B</span>C<span>D</span>E</div>'

        tree = _html.get_html_tree(html)
        _html.trim_tree_before(tree.find('div/span'))
        self.assertEqual(_html.render_html_tree(tree), '<div><span>B</span>C<span>D</span>E</div>')

        tree = _html.get_html_tree(html)
        _html.trim_tree_before(tree.find('div/span[2]'))
        self.assertEqual(_html.render_html_tree(tree), '<div><span>D</span>E</div>')

        tree = _html.get_html_tree(html)
        _html.trim_tree_before(tree.find('div/span'), include_element=False)
        self.assertEqual(_html.render_html_tree(tree), '<div>C<span>D</span>E</div>')

        tree = _html.get_html_tree(html)
        _html.trim_tree_before(tree.find('div/span[2]'), include_element=False)
        self.assertEqual(_html.render_html_tree(tree), '<div>E</div>')
Exemplo n.º 4
0
    def test_trim_before(self):
        from quotequail import _html

        html = '<div>A<span>B</span>C<span>D</span>E</div>'

        tree = _html.get_html_tree(html)
        _html.trim_tree_before(tree.find('div/span'))
        self.assertEqual(_html.render_html_tree(tree), '<div><span>B</span>C<span>D</span>E</div>')

        tree = _html.get_html_tree(html)
        _html.trim_tree_before(tree.find('div/span[2]'))
        self.assertEqual(_html.render_html_tree(tree), '<div><span>D</span>E</div>')

        tree = _html.get_html_tree(html)
        _html.trim_tree_before(tree.find('div/span'), include_element=False)
        self.assertEqual(_html.render_html_tree(tree), '<div>C<span>D</span>E</div>')

        tree = _html.get_html_tree(html)
        _html.trim_tree_before(tree.find('div/span[2]'), include_element=False)
        self.assertEqual(_html.render_html_tree(tree), '<div>E</div>')