File: test_srcsetparse.py

package info (click to toggle)
linkchecker 10.6.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,132 kB
  • sloc: python: 13,154; makefile: 134; sh: 71; xml: 36; sql: 20; javascript: 19; php: 2
file content (50 lines) | stat: -rw-r--r-- 1,644 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# Copyright (C) 2022 Stefan fisk
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
"""
Test srcset attribute parsing.
"""

from linkcheck.htmlutil.srcsetparse import parse_srcset

import pytest


# list of tuples
# (<input>, <expected parsed URLs>)
parsetests = [
    ('', []),
    ('   ', []),
    (',', []),
    ('\t\n ,,\t\n,,   \t\n', []),
    ('foo', ['foo']),
    ('foo,bar, ,foo, bar', ['foo,bar', 'foo', 'bar']),
    ('https://example.com/1 foo, https://example.com/2 bar',
        ['https://example.com/1', 'https://example.com/2']),
    ('   foo   ', ['foo']),
    (',,,foo,,,', ['foo']),
    (',foo,bar,baz,', ['foo,bar,baz']),
    ('foo bar baz', ['foo']),
    ('foo, bar baz', ['foo', 'bar']),
    ('foo/1 bar, foo/2', ['foo/1', 'foo/2']),
    ('foo/1 (foo/2)', ['foo/1']),
    ('foo/1 (((, foo/2', ['foo/1']),
]


class TestSrcsetParsing:
    @pytest.mark.parametrize("_in, _urls", parsetests)
    def test_parse(self, _in, _urls):
        assert parse_srcset(_in) == _urls