Fix lint.
This commit is contained in:
parent
9eefb935c2
commit
7dca8d7329
@ -468,6 +468,28 @@ class IncDecError(Exception):
|
|||||||
return '{}: {}'.format(self.msg, self.url.toString())
|
return '{}: {}'.format(self.msg, self.url.toString())
|
||||||
|
|
||||||
|
|
||||||
|
def _get_incdec_value(match, incdec, url):
|
||||||
|
"""Get a incremented/decremented URL based on a URL match."""
|
||||||
|
pre, zeroes, number, post = match.groups()
|
||||||
|
# This should always succeed because we match \d+
|
||||||
|
val = int(number)
|
||||||
|
if incdec == 'decrement':
|
||||||
|
if val <= 0:
|
||||||
|
raise IncDecError("Can't decrement {}!".format(val), url)
|
||||||
|
val -= 1
|
||||||
|
elif incdec == 'increment':
|
||||||
|
val += 1
|
||||||
|
else:
|
||||||
|
raise ValueError("Invalid value {} for indec!".format(incdec))
|
||||||
|
if zeroes:
|
||||||
|
if len(number) < len(str(val)):
|
||||||
|
zeroes = zeroes[1:]
|
||||||
|
elif len(number) > len(str(val)):
|
||||||
|
zeroes += '0'
|
||||||
|
|
||||||
|
return ''.join([pre, zeroes, str(val), post])
|
||||||
|
|
||||||
|
|
||||||
def incdec_number(url, incdec, segments=None):
|
def incdec_number(url, incdec, segments=None):
|
||||||
"""Find a number in the url and increment or decrement it.
|
"""Find a number in the url and increment or decrement it.
|
||||||
|
|
||||||
@ -513,26 +535,7 @@ def incdec_number(url, incdec, segments=None):
|
|||||||
if not match:
|
if not match:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
pre, zeroes, number, post = match.groups()
|
setter(_get_incdec_value(match, incdec, url))
|
||||||
# This should always succeed because we match \d+
|
|
||||||
val = int(number)
|
|
||||||
if incdec == 'decrement':
|
|
||||||
if val <= 0:
|
|
||||||
raise IncDecError("Can't decrement {}!".format(val), url)
|
|
||||||
val -= 1
|
|
||||||
elif incdec == 'increment':
|
|
||||||
val += 1
|
|
||||||
else:
|
|
||||||
raise ValueError("Invalid value {} for indec!".format(incdec))
|
|
||||||
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)
|
|
||||||
|
|
||||||
return url
|
return url
|
||||||
|
|
||||||
raise IncDecError("No number found in URL!", url)
|
raise IncDecError("No number found in URL!", url)
|
||||||
|
@ -600,8 +600,7 @@ class TestIncDecNumber:
|
|||||||
url = 'http://example.com/{}'
|
url = 'http://example.com/{}'
|
||||||
base_url = QUrl(url.format(number))
|
base_url = QUrl(url.format(number))
|
||||||
expected_url = QUrl(url.format(expected))
|
expected_url = QUrl(url.format(expected))
|
||||||
new_url = urlutils.incdec_number(
|
new_url = urlutils.incdec_number(base_url, incdec, segments={'path'})
|
||||||
base_url, incdec, segments={'path'})
|
|
||||||
assert new_url == expected_url
|
assert new_url == expected_url
|
||||||
|
|
||||||
@pytest.mark.parametrize('url, segments, expected', [
|
@pytest.mark.parametrize('url, segments, expected', [
|
||||||
|
Loading…
Reference in New Issue
Block a user