Merge remote-tracking branch 'origin/pr/3515'
This commit is contained in:
commit
54e9edfd60
@ -743,7 +743,9 @@ This tries to automatically click on typical _Previous Page_ or _Next Page_ link
|
||||
- `next`: Open a _next_ link.
|
||||
- `up`: Go up a level in the current URL.
|
||||
- `increment`: Increment the last number in the URL.
|
||||
Uses the link:settings.html#url.incdec_segments[url.incdec_segments] config option.
|
||||
- `decrement`: Decrement the last number in the URL.
|
||||
Uses the link:settings.html#url.incdec_segments[url.incdec_segments] config option.
|
||||
|
||||
|
||||
|
||||
|
@ -2994,6 +2994,7 @@ Type: <<types,FlagList>>
|
||||
Valid values:
|
||||
|
||||
* +host+
|
||||
* +port+
|
||||
* +path+
|
||||
* +query+
|
||||
* +anchor+
|
||||
|
@ -638,7 +638,9 @@ class CommandDispatcher:
|
||||
- `next`: Open a _next_ link.
|
||||
- `up`: Go up a level in the current URL.
|
||||
- `increment`: Increment the last number in the URL.
|
||||
Uses the link:settings.html#url.incdec_segments[url.incdec_segments] config option.
|
||||
- `decrement`: Decrement the last number in the URL.
|
||||
Uses the link:settings.html#url.incdec_segments[url.incdec_segments] config option.
|
||||
|
||||
tab: Open in a new tab.
|
||||
bg: Open in a background tab.
|
||||
|
@ -1418,7 +1418,7 @@ url.default_page:
|
||||
url.incdec_segments:
|
||||
type:
|
||||
name: FlagList
|
||||
valid_values: [host, path, query, anchor]
|
||||
valid_values: [host, port, path, query, anchor]
|
||||
default: [path, query]
|
||||
desc: URL segments where `:navigate increment/decrement` will search for
|
||||
a number.
|
||||
|
@ -537,7 +537,7 @@ def incdec_number(url, incdec, count=1, segments=None):
|
||||
incdec: Either 'increment' or 'decrement'
|
||||
count: The number to increment or decrement by
|
||||
segments: A set of URL segments to search. Valid segments are:
|
||||
'host', 'path', 'query', 'anchor'.
|
||||
'host', 'port', 'path', 'query', 'anchor'.
|
||||
Default: {'path', 'query'}
|
||||
|
||||
Return:
|
||||
@ -550,7 +550,7 @@ def incdec_number(url, incdec, count=1, segments=None):
|
||||
|
||||
if segments is None:
|
||||
segments = {'path', 'query'}
|
||||
valid_segments = {'host', 'path', 'query', 'anchor'}
|
||||
valid_segments = {'host', 'port', 'path', 'query', 'anchor'}
|
||||
if segments - valid_segments:
|
||||
extra_elements = segments - valid_segments
|
||||
raise IncDecError("Invalid segments: {}".format(
|
||||
@ -561,6 +561,7 @@ def incdec_number(url, incdec, count=1, segments=None):
|
||||
# Order as they appear in a URL
|
||||
segment_modifiers = [
|
||||
('host', url.host, url.setHost),
|
||||
('port', lambda: str(url.port()) if url.port() > 0 else '', lambda x: url.setPort(int(x))),
|
||||
('path', url.path, url.setPath),
|
||||
('query', url.query, url.setQuery),
|
||||
('anchor', url.fragment, url.setFragment),
|
||||
|
@ -622,6 +622,23 @@ class TestIncDecNumber:
|
||||
base_url, incdec, segments={'host', 'path', 'query', 'anchor'})
|
||||
assert new_url == expected_url
|
||||
|
||||
def test_incdec_port(self):
|
||||
"""Test incdec_number with port."""
|
||||
|
||||
base_url = QUrl('http://localhost:8000')
|
||||
new_url = urlutils.incdec_number(
|
||||
base_url, 'increment', segments={'port'})
|
||||
assert new_url == QUrl('http://localhost:8001')
|
||||
new_url = urlutils.incdec_number(
|
||||
base_url, 'decrement', segments={'port'})
|
||||
assert new_url == QUrl('http://localhost:7999')
|
||||
|
||||
def test_incdec_port_default(self):
|
||||
"""Test that a default port (with url.port() == -1) is not touched."""
|
||||
base_url = QUrl('http://localhost')
|
||||
with pytest.raises(urlutils.IncDecError):
|
||||
urlutils.incdec_number(base_url, 'increment', segments={'port'})
|
||||
|
||||
@pytest.mark.parametrize('incdec', ['increment', 'decrement'])
|
||||
@pytest.mark.parametrize('value', [
|
||||
'{}foo', 'foo{}', 'foo{}bar', '42foo{}'
|
||||
|
Loading…
Reference in New Issue
Block a user