Beispiel #1
0
    def test_css_links_simple(self):
        css_data = b'''@import url('wow.css');
            body { background: url('cool.png') }
        '''
        reader = CSSReader()
        links = set()

        for link in reader.iter_links(io.BytesIO(css_data),
                                      encoding='ascii',
                                      context=True):
            links.add(link)

        self.assertEqual({('wow.css', 'import'), ('cool.png', 'url')}, links)
Beispiel #2
0
    def test_css_read_links_huge(self):
        css_data = b'\n'.join([
            'url(blah{0});'.format(num).encode('ascii')
            for num in range(200000)
        ])
        reader = CSSReader()

        self.assertGreater(len(css_data), reader.BUFFER_SIZE)

        links = set()

        for link in reader.iter_links(io.BytesIO(css_data), encoding='ascii'):
            links.add(link)

        self.assertEqual(len(links), 200000)
Beispiel #3
0
    def test_css_read_links_huge(self):
        css_data = b'\n'.join(
            [
                'url(blah{0});'.format(num).encode('ascii')
                for num in range(200000)
            ]
        )
        reader = CSSReader()

        self.assertGreater(len(css_data), reader.BUFFER_SIZE)

        links = set()

        for link in reader.iter_links(
                io.BytesIO(css_data), encoding='ascii'):
            links.add(link)

        self.assertEqual(len(links), 200000)
Beispiel #4
0
    def test_css_links_simple(self):
        css_data = b'''@import url('wow.css');
            body { background: url('cool.png') }
        '''
        reader = CSSReader()
        links = set()

        for link in reader.iter_links(
                io.BytesIO(css_data), encoding='ascii', context=True):
            links.add(link)

        self.assertEqual(
            {
                ('wow.css', 'import'),
                ('cool.png', 'url')
            },
            links
        )