[utils] lookup_unit_table: Match word boundary instead of end of string

master
Jaime Marquínez Ferrándiz 8 years ago
parent 0d769bcb78
commit 782b1b5bd1

@ -702,6 +702,8 @@ class TestUtil(unittest.TestCase):
self.assertEqual(parse_count('1.000'), 1000) self.assertEqual(parse_count('1.000'), 1000)
self.assertEqual(parse_count('1.1k'), 1100) self.assertEqual(parse_count('1.1k'), 1100)
self.assertEqual(parse_count('1.1kk'), 1100000) self.assertEqual(parse_count('1.1kk'), 1100000)
self.assertEqual(parse_count('1.1kk '), 1100000)
self.assertEqual(parse_count('1.1kk views'), 1100000)
def test_version_tuple(self): def test_version_tuple(self):
self.assertEqual(version_tuple('1'), (1,)) self.assertEqual(version_tuple('1'), (1,))

@ -1346,7 +1346,7 @@ def format_bytes(bytes):
def lookup_unit_table(unit_table, s): def lookup_unit_table(unit_table, s):
units_re = '|'.join(re.escape(u) for u in unit_table) units_re = '|'.join(re.escape(u) for u in unit_table)
m = re.match( m = re.match(
r'(?P<num>[0-9]+(?:[,.][0-9]*)?)\s*(?P<unit>%s)$' % units_re, s) r'(?P<num>[0-9]+(?:[,.][0-9]*)?)\s*(?P<unit>%s)\b' % units_re, s)
if not m: if not m:
return None return None
num_str = m.group('num').replace(',', '.') num_str = m.group('num').replace(',', '.')

Loading…
Cancel
Save