diff --git a/sickbeard/name_parser/regexes.py b/sickbeard/name_parser/regexes.py index eaea3e20da6c3b8e3e6cadbf56e6761decde96d1..ef51b164afd1d76588618f9160897085f1615ff2 100644 --- a/sickbeard/name_parser/regexes.py +++ b/sickbeard/name_parser/regexes.py @@ -144,9 +144,9 @@ normal_regexes = [ r''' ^((?P<series_name>.+?)[. _-]+)? # Show_Name and separator (e(p(isode)?)?|part|pt)[. _-]? # e, ep, episode, or part - (?P<ep_num>(\d+|[ivx]+)) # first ep num + (?P<ep_num>(\d+|(?<!e)[ivx]+)) # first ep num ((([. _-]+(and|&|to)[. _-]+)|-) # and/&/to joiner - (?P<extra_ep_num>(?!(1080|720|480)[pi])(\d+|[ivx]+))[. _-]) # second ep num + (?P<extra_ep_num>(?!(1080|720|480)[pi])(\d+|(?<!e)[ivx]+))[. _-]) # second ep num ([. _-]*(?P<extra_info>.+?) # Source_Quality_Etc- ((?<![. _-])(?<!WEB) # Make sure this is really the release group -(?P<release_group>[^- ]+([. _-]\[.*\])?))?)?$ # Group @@ -160,11 +160,11 @@ normal_regexes = [ r''' ^((?P<series_name>.+?)[. _-]+)? # Show_Name and separator (e(p(isode)?)?|part|pt)[. _-]? # e, ep, episode, or part - (?P<ep_num>(\d+|([ivx]+(?=[. _-])))) # first ep num + (?P<ep_num>(\d+|((?<!e)[ivx]+(?=[. _-])))) # first ep num ([. _-]+((and|&|to)[. _-]+)? # and/&/to joiner ((e(p(isode)?)?|part|pt)[. _-]?) # e, ep, episode, or part (?P<extra_ep_num>(?!(1080|720|480)[pi]) - (\d+|([ivx]+(?=[. _-]))))[. _-])* # second ep num + (\d+|((?<!e)[ivx]+(?=[. _-]))))[. _-])* # second ep num ([. _-]*(?P<extra_info>.+?) # Source_Quality_Etc- ((?<![. _-])(?<!WEB) # Make sure this is really the release group -(?P<release_group>[^- ]+([. _-]\[.*\])?))?)?$ # Group diff --git a/tests/name_parser_tests.py b/tests/name_parser_tests.py index 70516c20762aabec00860b079b1c352f1de2f68e..7154d75bc039fb796ee9db79c02421cee6c85e46 100644 --- a/tests/name_parser_tests.py +++ b/tests/name_parser_tests.py @@ -5,7 +5,7 @@ sys.path.insert(1, os.path.abspath(os.path.join(os.path.dirname(__file__), '..') import datetime import unittest -import test_lib as test +from tests import test_lib as test import sickbeard from sickbeard import tv @@ -67,8 +67,9 @@ simple_test_cases = { 'show.name.2010.123.source.quality.etc-group': parser.ParseResult(None, 'show name 2010', 1, [23], 'source.quality.etc', 'group'), 'show.name.2010.222.123.source.quality.etc-group': parser.ParseResult(None, 'show name 2010.222', 1, [23], 'source.quality.etc', 'group'), 'Show.Name.102': parser.ParseResult(None, 'Show Name', 1, [2]), - 'the.event.401.hdtv-lol': parser.ParseResult(None, 'the event', 4, [1], 'hdtv', 'lol'), - 'show.name.2010.special.hdtv-blah': None + 'the.event.401.hdtv-group': parser.ParseResult(None, 'the event', 4, [1], 'hdtv', 'group'), + 'show.name.2010.special.hdtv-blah': None, + 'show.ex-name.102.hdtv-group': parser.ParseResult(None, 'show ex-name', 1, [2], 'hdtv', 'group'), }, 'stupid': { @@ -89,7 +90,7 @@ simple_test_cases = { 'Show.Name.Part.1.and.Part.2.Blah-Group': parser.ParseResult(None, 'Show Name', None, [1, 2], 'Blah', 'Group'), 'Show.Name.Part.IV.Source.Quality.Etc-Group': parser.ParseResult(None, 'Show Name', None, [4], 'Source.Quality.Etc', 'Group'), 'Deconstructed.E07.1080i.HDTV.DD5.1.MPEG2-TrollHD': parser.ParseResult(None, 'Deconstructed', None, [7], '1080i.HDTV.DD5.1.MPEG2', 'TrollHD'), - 'Show.Name.E23.WEB-DL': parser.ParseResult(None, 'Show Name', None, [23], 'WEB-DL') + 'Show.Name.E23.WEB-DL': parser.ParseResult(None, 'Show Name', None, [23], 'WEB-DL'), }, 'no_season_multi_ep': { diff --git a/tests/test_lib.py b/tests/test_lib.py index f7a44c2ec75453cce50d6e2ec8fb2f3b9c52ba0a..0fc43d5b8457ca6aa8337fa53396127df93f492e 100644 --- a/tests/test_lib.py +++ b/tests/test_lib.py @@ -28,8 +28,7 @@ import unittest from configobj import ConfigObj import sickbeard -from sickbeard import providers, tvcache -from sickbeard import db +from sickbeard import db, providers from sickbeard.databases import mainDB from sickbeard.databases import cache_db, failed_db from sickbeard.tv import TVEpisode @@ -146,7 +145,7 @@ class TestDBConnection(db.DBConnection, object): super(TestDBConnection, self).__init__(dbFileName) class TestCacheDBConnection(TestDBConnection, object): - def __init__(self, providerName): + def __init__(self, providerName): db.DBConnection.__init__(self, os.path.join(TESTDIR, TESTCACHEDBNAME)) # Create the table if it's not already there