From 461b1d89d354e640151cedb71167bb559fab7075 Mon Sep 17 00:00:00 2001 From: echel0n Date: Tue, 18 Nov 2014 20:25:27 -0800 Subject: [PATCH] Fix for bug #911, escapes regex for ignored words --- sickbeard/scene_exceptions.py | 5 ++--- sickbeard/show_name_helpers.py | 13 +++++++------ tests/cache/.gitignore | 1 - tests/test_lib.py | 16 +++++++++++----- 4 files changed, 20 insertions(+), 15 deletions(-) delete mode 100644 tests/cache/.gitignore diff --git a/sickbeard/scene_exceptions.py b/sickbeard/scene_exceptions.py index 1febcbbc..90ea651e 100644 --- a/sickbeard/scene_exceptions.py +++ b/sickbeard/scene_exceptions.py @@ -154,8 +154,8 @@ def get_scene_exception_by_name_multiple(show_name): if out: return out - else: - return [(None, None)] + + return (None, None) def retrieve_exceptions(): @@ -246,7 +246,6 @@ def retrieve_exceptions(): else: logger.log(u"No scene exceptions update needed") - # cleanup exception_dict.clear() anidb_exception_dict.clear() diff --git a/sickbeard/show_name_helpers.py b/sickbeard/show_name_helpers.py index 083e58cf..e408d535 100644 --- a/sickbeard/show_name_helpers.py +++ b/sickbeard/show_name_helpers.py @@ -53,26 +53,27 @@ def filterBadReleases(name, parse=True): logger.log(u"Unable to parse the filename " + name + " into a valid episode", logger.DEBUG) return False except InvalidShowException: - logger.log(u"Unable to parse the filename " + name + " into a valid show", logger.DEBUG) - return False + pass + # logger.log(u"Unable to parse the filename " + name + " into a valid show", logger.DEBUG) + # return False # if any of the bad strings are in the name then say no if sickbeard.IGNORE_WORDS: resultFilters.extend(sickbeard.IGNORE_WORDS.split(',')) - filters = [re.compile('(^|[\W_])%s($|[\W_])' % filter.strip(), re.I) for filter in resultFilters] + filters = [re.compile('(^|[\W_])%s($|[\W_])' % re.escape(filter.strip()), re.I) for filter in resultFilters] for regfilter in filters: if regfilter.search(name): - logger.log(u"Invalid scene release: " + name + " contains pattern: " + regfilter.pattern + ", ignoring it", + logger.log(u"Invalid scene release: " + name + " contained: " + regfilter.pattern + ", ignoring it", logger.DEBUG) return False # if any of the good strings aren't in the name then say no if sickbeard.REQUIRE_WORDS: require_words = sickbeard.REQUIRE_WORDS.split(',') - filters = [re.compile('(^|[\W_])%s($|[\W_])' % filter.strip(), re.I) for filter in require_words] + filters = [re.compile('(^|[\W_])%s($|[\W_])' % re.escape(filter.strip()), re.I) for filter in require_words] for regfilter in filters: if not regfilter.search(name): - logger.log(u"Invalid scene release: " + name + " doesn't contain pattern: " + regfilter.pattern + ", ignoring it", + logger.log(u"Invalid scene release: " + name + " doesn't contain: " + regfilter.pattern + ", ignoring it", logger.DEBUG) return False diff --git a/tests/cache/.gitignore b/tests/cache/.gitignore deleted file mode 100644 index 98e6ef67..00000000 --- a/tests/cache/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.db diff --git a/tests/test_lib.py b/tests/test_lib.py index 07a7820c..548836e7 100644 --- a/tests/test_lib.py +++ b/tests/test_lib.py @@ -34,7 +34,7 @@ import shutil from sickbeard import encodingKludge as ek, providers, tvcache from sickbeard import db from sickbeard.databases import mainDB -from sickbeard.databases import cache_db +from sickbeard.databases import cache_db, failed_db #================= # test globals @@ -42,7 +42,7 @@ from sickbeard.databases import cache_db TESTDIR = os.path.abspath('.') TESTDBNAME = "sickbeard.db" TESTCACHEDBNAME = "cache.db" - +TESTFAILEDDBNAME = "failed.db" SHOWNAME = u"show name" SEASON = 4 @@ -102,6 +102,7 @@ createTestCacheFolder() #================= def _dummy_saveConfig(): return True + # this overrides the sickbeard save_config which gets called during a db upgrade # this might be considered a hack mainDB.sickbeard.save_config = _dummy_saveConfig @@ -165,7 +166,6 @@ class TestCacheDBConnection(TestDBConnection, object): sickbeard.db.DBConnection = TestDBConnection sickbeard.tvcache.CacheDBConnection = TestCacheDBConnection - #================= # test functions #================= @@ -174,23 +174,29 @@ def setUp_test_db(): """ # upgrading the db db.upgradeDatabase(db.DBConnection(), mainDB.InitialSchema) + # fix up any db problems db.sanityCheckDatabase(db.DBConnection(), mainDB.MainSanityCheck) - #and for cache.b too + # and for cachedb too db.upgradeDatabase(db.DBConnection("cache.db"), cache_db.InitialSchema) + # and for faileddb too + db.upgradeDatabase(db.DBConnection("failed.db"), failed_db.InitialSchema) + def tearDown_test_db(): """Deletes the test db although this seams not to work on my system it leaves me with an zero kb file """ # uncomment next line so leave the db intact between test and at the end - return False + #return False if os.path.exists(os.path.join(TESTDIR, TESTDBNAME)): os.remove(os.path.join(TESTDIR, TESTDBNAME)) if os.path.exists(os.path.join(TESTDIR, TESTCACHEDBNAME)): os.remove(os.path.join(TESTDIR, TESTCACHEDBNAME)) + if os.path.exists(os.path.join(TESTDIR, TESTFAILEDDBNAME)): + os.remove(os.path.join(TESTDIR, TESTFAILEDDBNAME)) def setUp_test_episode_file():