[utils] lookup_unit_table: Match word boundary instead of end of string
authorJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>
Sat, 19 Mar 2016 10:42:35 +0000 (11:42 +0100)
committerJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>
Sat, 19 Mar 2016 10:44:49 +0000 (11:44 +0100)
test/test_utils.py
youtube_dl/utils.py

index 9a3a8ddfff1363fe12eb19fe9cb1045fa0fcdda8..325b870ccc77014ca20b8e945f4d6a710a01513f 100644 (file)
@@ -702,6 +702,8 @@ class TestUtil(unittest.TestCase):
         self.assertEqual(parse_count('1.000'), 1000)
         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 views'), 1100000)
 
     def test_version_tuple(self):
         self.assertEqual(version_tuple('1'), (1,))
index bad1c4ea87dd086a34d93f6872d9ce5d9f2209f9..067b8a184c67ea152e3769bcdbcc63bf43afca77 100644 (file)
@@ -1346,7 +1346,7 @@ def format_bytes(bytes):
 def lookup_unit_table(unit_table, s):
     units_re = '|'.join(re.escape(u) for u in unit_table)
     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:
         return None
     num_str = m.group('num').replace(',', '.')