Merge branch 'master' of https://github.com/mikeri/qutebrowser into mikeri-master
This commit is contained in:
commit
86f03c7d81
@ -509,11 +509,11 @@ def incdec_number(url, incdec, segments=None):
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
# Get the last number in a string
|
# Get the last number in a string
|
||||||
match = re.match(r'(.*\D|^)(\d+)(.*)', getter())
|
match = re.match(r'(.*\D|^)(0*)(\d+)(.*)', getter())
|
||||||
if not match:
|
if not match:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
pre, number, post = match.groups()
|
pre, zeroes, number, post = match.groups()
|
||||||
# This should always succeed because we match \d+
|
# This should always succeed because we match \d+
|
||||||
val = int(number)
|
val = int(number)
|
||||||
if incdec == 'decrement':
|
if incdec == 'decrement':
|
||||||
@ -524,8 +524,15 @@ def incdec_number(url, incdec, segments=None):
|
|||||||
val += 1
|
val += 1
|
||||||
else:
|
else:
|
||||||
raise ValueError("Invalid value {} for indec!".format(incdec))
|
raise ValueError("Invalid value {} for indec!".format(incdec))
|
||||||
new_value = ''.join([pre, str(val), post])
|
if zeroes:
|
||||||
|
if len(number) < len(str(val)):
|
||||||
|
zeroes = zeroes[1:]
|
||||||
|
elif len(number) > len(str(val)):
|
||||||
|
zeroes += '0'
|
||||||
|
|
||||||
|
new_value = ''.join([pre, zeroes, str(val), post])
|
||||||
setter(new_value)
|
setter(new_value)
|
||||||
|
|
||||||
return url
|
return url
|
||||||
|
|
||||||
raise IncDecError("No number found in URL!", url)
|
raise IncDecError("No number found in URL!", url)
|
||||||
|
@ -587,6 +587,23 @@ class TestIncDecNumber:
|
|||||||
base_url, incdec, segments={'host', 'path', 'query', 'anchor'})
|
base_url, incdec, segments={'host', 'path', 'query', 'anchor'})
|
||||||
assert new_url == expected_url
|
assert new_url == expected_url
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('number, expected, incdec', [
|
||||||
|
('01', '02', 'increment'),
|
||||||
|
('09', '10', 'increment'),
|
||||||
|
('009', '010', 'increment'),
|
||||||
|
('02', '01', 'decrement'),
|
||||||
|
('10', '9', 'decrement'),
|
||||||
|
('010', '009', 'decrement')
|
||||||
|
])
|
||||||
|
def test_incdec_leading_zeroes(self, number, expected, incdec):
|
||||||
|
"""Test incdec_number with leading zeroes."""
|
||||||
|
url = 'http://example.com/{}'
|
||||||
|
base_url = QUrl(url.format(number))
|
||||||
|
expected_url = QUrl(url.format(expected))
|
||||||
|
new_url = urlutils.incdec_number(
|
||||||
|
base_url, incdec, segments={'path'})
|
||||||
|
assert new_url == expected_url
|
||||||
|
|
||||||
@pytest.mark.parametrize('url, segments, expected', [
|
@pytest.mark.parametrize('url, segments, expected', [
|
||||||
('http://ex4mple.com/test_4?page=3#anchor2', {'host'},
|
('http://ex4mple.com/test_4?page=3#anchor2', {'host'},
|
||||||
'http://ex5mple.com/test_4?page=3#anchor2'),
|
'http://ex5mple.com/test_4?page=3#anchor2'),
|
||||||
|
Loading…
Reference in New Issue
Block a user