8000 tests: Set IDs for urlmatch tests · mkonig/qutebrowser@1308bfd · GitHub
[go: up one dir, main page]

Skip to content

Commit 1308bfd

Browse files
The-CompilerMirko König
authored andcommitted
tests: Set IDs for urlmatch tests
This works around a VS Code bug with weird node IDs: microsoft/vscode-python#17676
1 parent 501759a commit 1308bfd

File tree

1 file changed

+117
-36
lines changed

1 file changed

+117
-36
lines changed

tests/unit/utils/test_urlmatch.py

Lines changed: 117 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,23 @@
4242
### Chromium: kMissingSchemeSeparator
4343
## TEST(ExtensionURLPatternTest, ParseInvalid)
4444
# ("http", "No scheme given"),
45-
("http:", "Invalid port: Port is empty"),
46-
("http:/", "Invalid port: Port is empty"),
47-
("about://", "Pattern without path"),
48-
("http:/bar", "Invalid port: Port is empty"),
45+
pytest.param("http:", "Invalid port: Port is empty", id='scheme-no-slash'),
46+
pytest.param("http:/", "Invalid port: Port is empty", id='scheme-single-slash'),
47+
pytest.param("about://", "Pattern without path", id='scheme-no-path'),
48+
pytest.param(
49+
"http:/bar",
50+
"Invalid port: Port is empty",
51+
id='scheme-single-slash-path',
52+
),
4953
5054
### Chromium: kEmptyHost
5155
## TEST(ExtensionURLPatternTest, ParseInvalid)
52-
("http://", "Pattern without host"),
53-
("http:///", "Pattern without host"),
54-
("http://:1234/", "Pattern without host"),
55-
("http://*./", "Pattern without host"),
56+
pytest.param("http://", "Pattern without host", id='host-double-slash'),
57+
pytest.param("http:///", "Pattern without host", id='host-triple-slash'),
58+
pytest.param("http://:1234/", "Pattern without host", id='host-port'),
59+
pytest.param("http://*./", "Pattern without host", id='host-pattern'),
5660
## TEST(ExtensionURLPatternTest, IPv6Patterns)
57-
("http://[]:8888/*", "Pattern without host"),
61+
pytest.param("http://[]:8888/*", "Pattern without host", id='host-ipv6'),
5862
5963
### Chromium: kEmptyPath
6064
## TEST(ExtensionURLPatternTest, ParseInvalid)
@@ -63,48 +67,125 @@
6367
6468
### Chromium: kInvalidHost
6569
## TEST(ExtensionURLPatternTest, ParseInvalid)
66-
("http://\0www/", "May not contain NUL byte"),
70+
pytest.param("http://\0www/", "May not contain NUL byte", id='host-nul'),
6771
## TEST(ExtensionURLPatternTest, IPv6Patterns)
6872
# No closing bracket (`]`).
69-
("http://[2607:f8b0:4005:805::200e/*", "Invalid IPv6 URL"),
73+
pytest.param(
74+
"http://[2607:f8b0:4005:805::200e/*",
75+
"Invalid IPv6 URL",
76+
id='host-ipv6-no-closing',
77+
),
7078
# Two closing brackets (`]]`).
71-
pytest.param("http://[2607:f8b0:4005:805::200e]]/*", "Invalid IPv6 URL", marks=pytest.mark.xfail(reason="https://bugs.python.org/issue34360")),
79+
pytest.param(
80+
"http://[2607:f8b0:4005:805::200e]]/*",
81+
"Invalid IPv6 URL",
82+
marks=pytest.mark.xfail(reason="https://bugs.python.org/issue34360"),
83+
id='host-ipv6-two-closing',
84+
),
7285
# Two open brackets (`[[`).
73-
("http://[[2607:f8b0:4005:805::200e]/*", r"""Expected '\]' to match '\[' in hostname; source was "\[2607:f8b0:4005:805::200e"; host = """""),
86+
pytest.param(
87+
"http://[[2607:f8b0:4005:805::200e]/*",
88+
r"""Expected '\]' to match '\[' in hostname; source was "\[2607:f8b0:4005:805::200e"; host = """"",
89+
id='host-ipv6-two-open',
90+
),
7491
# Too few colons in the last chunk.
75-
("http://[2607:f8b0:4005:805:200e]/*", 'Invalid IPv6 address; source was "2607:f8b0:4005:805:200e"; host = ""'),
92+
pytest.param(
93+
"http://[2607:f8b0:4005:805:200e]/*",
94+
'Invalid IPv6 address; source was "2607:f8b0:4005:805:200e"; host = ""',
95+
id='host-ipv6-colons',
96+
),
7697
# Non-hex piece.
77-
("http://[2607:f8b0:4005:805:200e:12:bogus]/*", 'Invalid IPv6 address; source was "2607:f8b0:4005:805:200e:12:bogus"; host = ""'),
98+
pytest.param(
99+
"http://[2607:f8b0:4005:805:200e:12:bogus]/*",
100+
'Invalid IPv6 address; source was "2607:f8b0:4005:805:200e:12:bogus"; host = ""',
101+
id='host-ipv6-non-hex',
102+
),
78103
79104
### Chromium: kInvalidHostWildcard
80105
## TEST(ExtensionURLPatternTest, ParseInvalid)
81-
("http://*foo/bar", "Invalid host wildcard"),
82-
("http://foo.*.bar/baz", "Invalid host wildcard"),
83-
("http://fo.*.ba:123/baz", "Invalid host wildcard"),
84-
("http://foo.*/bar", "Invalid host wildcard"),
106+
pytest.param("http://*foo/bar", "Invalid host wildcard", id='host-wildcard-no-dot'),
107+
pytest.param(
108+
"http://foo.*.bar/baz",
109+
"Invalid host wildcard",
110+
id='host-wildcard-middle',
111+
),
112+
pytest.param(
113+
"http://fo.*.ba:123/baz",
114+
"Invalid host wildcard",
115+
id='host-wildcard-middle-port',
116+
),
117+
pytest.param("http://foo.*/bar", "Invalid host wildcard", id='host-wildcard-end'),
85118
86119
### Chromium: kInvalidPort
87120
## TEST(ExtensionURLPatternTest, Ports)
88-
("http://foo:/", "Invalid port: Port is empty"),
89-
("http://*.foo:/", "Invalid port: Port is empty"),
90-
("http://foo:com/", "Invalid port: .* 'com'"),
91-
("http://foo:123456/", "Invalid port: Port out of range 0-65535"),
92-
("http://foo:80:80/monkey", "Invalid port: .* '80:80'"),
93-
("chrome://foo:1234/bar", "Ports are unsupported with chrome scheme"),
121+
pytest.param("http://foo:/", "Invalid port: Port is empty", id='port-empty'),
122+
pytest.param(
123+
"http://*.foo:/",
124+
"Invalid port: Port is empty",
125+
id='port-empty-wildcard',
126+
),
127+
pytest.param("http://foo:com/", "Invalid port: .* 'com'", id='port-alpha'),
128+
pytest.param(
129+
"http://foo:123456/",
130+
"Invalid port: Port out of range 0-65535",
131+
id='port-range',
132+
),
133+
pytest.param(
134+
"http://foo:80:80/monkey",
135+
"Invalid port: .* '80:80'",
136+
id='port-double',
137+
),
138+
pytest.param(
139+
"chrome://foo:1234/bar",
140+
"Ports are unsupported with chrome scheme",
141+
id='port-chrome',
142+
),
94143
# No port specified, but port separator.
95-
("http://[2607:f8b0:4005:805::200e]:/*", "Invalid port: Port is empty"),
144+
pytest.param(
145+
"http://[2607:f8b0:4005:805::200e]:/*",
146+
"Invalid port: Port is empty",
147+
id='port-empty-ipv6',
148+
),
96149
97150
### Additional tests
98-
("http://[", "Invalid IPv6 URL"),
99-
("http://[fc2e::bb88::edac]", 'Invalid IPv6 address; source was "fc2e::bb88::edac"; host = ""'),
100-
("http://[fc2e:0e35:bb88::edac:fc2e:0e35:bb88:edac]", 'Invalid IPv6 address; source was "fc2e:0e35:bb88::edac:fc2e:0e35:bb88:edac"; host = ""'),
101-
("http://[fc2e:0e35:bb88:af:edac:fc2e:0e35:bb88:edac]", 'Invalid IPv6 address; source was "fc2e:0e35:bb88:af:edac:fc2e:0e35:bb88:edac"; host = ""'),
102-
("http://[127.0.0.1:fc2e::bb88:edac]", r'Invalid IPv6 address; source was "127\.0\.0\.1:fc2e::bb88:edac'),
103-
("http://[fc2e::bb88", "Invalid IPv6 URL"),
104-
("http://[fc2e:bb88:edac]", 'Invalid IPv6 address; source was "fc2e:bb88:edac"; host = ""'),
105-
("http://[fc2e:bb88:edac::z]", 'Invalid IPv6 address; source was "fc2e:bb88:edac::z"; host = ""'),
106-
("http://[fc2e:bb88:edac::2]:2a2", "Invalid port: .* '2a2'"),
107-
("://", "Missing scheme"),
151+
pytest.param("http://[", "Invalid IPv6 URL", id='ipv6-single-open'),
152+
pytest.param(
153+
"http://[fc2e::bb88::edac]",
154+
'Invalid IPv6 address; source was "fc2e::bb88::edac"; host = ""',
155+
id='ipv6-double-double',
156+
),
157+
pytest.param(
158+
"http://[fc2e:0e35:bb88::edac:fc2e:0e35:bb88:edac]",
159+
'Invalid IPv6 address; source was "fc2e:0e35:bb88::edac:fc2e:0e35:bb88:edac"; host = ""',
160+
id='ipv6-long-double',
161+
),
162+
pytest.param(
163+
"http://[fc2e:0e35:bb88:af:edac:fc2e:0e35:bb88:edac]",
164+
'Invalid IPv6 address; source was "fc2e:0e35:bb88:af:edac:fc2e:0e35:bb88:edac"; host = ""',
165+
id='ipv6-long',
166+
),
167+
pytest.param(
168+
"http://[127.0.0.1:fc2e::bb88:edac]",
169+
r'Invalid IPv6 address; source was "127\.0\.0\.1:fc2e::bb88:edac',
170+
id='ipv6-ipv4',
171+
),
172+
pytest.param("http://[fc2e::bb88", "Invalid IPv6 URL", id='ipv6-trailing'),
173+
pytest.param(
174+
"http://[fc2e:bb88:edac]",
175+
'Invalid IPv6 address; source was "fc2e:bb88:edac"; host = ""',
176+
id='ipv6-short',
177+
),
178+
pytest.param(
179+
"http://[fc2e:bb88:edac::z]",
180+
'Invalid IPv6 address; source was "fc2e:bb88:edac::z"; host = ""',
181+
id='ipv6-z',
182+
),
183+
pytest.param(
184+
"http://[fc2e:bb88:edac::2]:2a2",
185+
"Invalid port: .* '2a2'",
186+
id='ipv6-port',
187+
),
188+
pytest.param("://", "Missing scheme", id='scheme-naked'),
108189
])
109190
def test_invalid_patterns(pattern, error):
110191
with pytest.raises(urlmatch.ParseError, match=error):

0 commit comments

Comments
 (0)
0