Skip to content

Commit

Permalink
Fixing legacy name parser tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ratoaq2 authored and fernandog committed Jul 14, 2016
1 parent cac5f73 commit cfa7d28
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 31 deletions.
2 changes: 1 addition & 1 deletion sickbeard/name_parser/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class NameParser(object):
ANIME_REGEX = 2

def __init__(self, file_name=True, showObj=None, tryIndexers=False, # pylint: disable=too-many-arguments
naming_pattern=False, parse_method=None, use_guessit=True, allow_multi_season=False):
naming_pattern=False, parse_method=None, allow_multi_season=False):

self.file_name = file_name
self.showObj = showObj
Expand Down
73 changes: 43 additions & 30 deletions tests/name_parser_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
import sys
import unittest

import sickbeard

sys.path.insert(1, os.path.abspath(os.path.join(os.path.dirname(__file__), '../lib')))
sys.path.insert(1, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

Expand Down Expand Up @@ -168,7 +170,17 @@
FAILURE_CASES = ['7sins-jfcs01e09-720p-bluray-x264']


class UnicodeTests(test.SickbeardTestDBCase):
class LegacyParserTestDBCase(test.SickbeardTestDBCase):
@classmethod
def setUpClass(cls):
sickbeard.USE_LEGACY_NAME_PARSER = 1

@classmethod
def tearDownClass(cls):
sickbeard.USE_LEGACY_NAME_PARSER = 0


class UnicodeTests(LegacyParserTestDBCase):
"""
Test unicode
"""
Expand All @@ -186,7 +198,7 @@ def _test_unicode(self, name, result):
:param result:
:return:
"""
name_parser = parser.NameParser(True, showObj=self.show, use_guessit=False)
name_parser = parser.NameParser(True, showObj=self.show)
parse_result = name_parser.parse(name)

# this shouldn't raise an exception
Expand All @@ -201,10 +213,11 @@ def test_unicode(self):
self._test_unicode(name, result)


class FailureCaseTests(test.SickbeardTestDBCase):
class FailureCaseTests(LegacyParserTestDBCase):
"""
Test cases that should fail
"""

@staticmethod
def _test_name(name):
"""
Expand All @@ -213,7 +226,7 @@ def _test_name(name):
:param name:
:return:
"""
name_parser = parser.NameParser(True, use_guessit=False)
name_parser = parser.NameParser(True)
try:
parse_result = name_parser.parse(name)
except (parser.InvalidNameException, parser.InvalidShowException):
Expand All @@ -231,7 +244,7 @@ def test_failures(self):
self.assertTrue(self._test_name(name))


class ComboTests(test.SickbeardTestDBCase):
class ComboTests(LegacyParserTestDBCase):
"""
Perform combination tests
"""
Expand All @@ -249,7 +262,7 @@ def _test_combo(self, name, result, which_regexes):
if VERBOSE:
print('\nTesting', name)

name_parser = parser.NameParser(True, use_guessit=False)
name_parser = parser.NameParser(True)

try:
test_result = name_parser.parse(name)
Expand All @@ -275,7 +288,7 @@ def test_combos(self):
self._test_combo(os.path.normpath(name), result, which_regexes)


class BasicTests(test.SickbeardTestDBCase):
class BasicTests(LegacyParserTestDBCase):
"""
Basic name parsing tests
"""
Expand Down Expand Up @@ -329,117 +342,117 @@ def test_standard_names(self):
"""
Test standard names
"""
name_parser = parser.NameParser(True, use_guessit=False)
name_parser = parser.NameParser(True)
self._test_names(name_parser, 'standard')

def test_standard_file_names(self):
"""
Test standard file names
"""
name_parser = parser.NameParser(use_guessit=False)
name_parser = parser.NameParser()
self._test_names(name_parser, 'standard', lambda x: x + '.avi')

def test_standard_repeat_names(self):
"""
Test standard repeat names
"""
name_parser = parser.NameParser(False, use_guessit=False)
name_parser = parser.NameParser(False)
self._test_names(name_parser, 'standard_repeat')

def test_standard_repeat_file_names(self):
"""
Test standard repeat file names
"""
name_parser = parser.NameParser(use_guessit=False)
name_parser = parser.NameParser()
self._test_names(name_parser, 'standard_repeat', lambda x: x + '.avi')

def test_fov_names(self):
"""
Test fov names
"""
name_parser = parser.NameParser(False, use_guessit=False)
name_parser = parser.NameParser(False)
self._test_names(name_parser, 'fov')

def test_fov_file_names(self):
"""
Test fov file names
"""
name_parser = parser.NameParser(use_guessit=False)
name_parser = parser.NameParser()
self._test_names(name_parser, 'fov', lambda x: x + '.avi')

def test_fov_repeat_names(self):
"""
Test fov repeat names
"""
name_parser = parser.NameParser(False, use_guessit=False)
name_parser = parser.NameParser(False)
self._test_names(name_parser, 'fov_repeat')

def test_fov_repeat_file_names(self):
"""
Test fov repeat file names
"""
name_parser = parser.NameParser(use_guessit=False)
name_parser = parser.NameParser()
self._test_names(name_parser, 'fov_repeat', lambda x: x + '.avi')

def test_stupid_names(self):
"""
Test stupid names
"""
name_parser = parser.NameParser(False, use_guessit=False)
name_parser = parser.NameParser(False)
self._test_names(name_parser, 'stupid')

def test_stupid_file_names(self):
"""
Test stupid file names
"""
name_parser = parser.NameParser(use_guessit=False)
name_parser = parser.NameParser()
self._test_names(name_parser, 'stupid', lambda x: x + '.avi')

def test_no_s_general_names(self):
"""
Test no season general names
"""
name_parser = parser.NameParser(False, use_guessit=False)
name_parser = parser.NameParser(False)
self._test_names(name_parser, 'no_season_general')

def test_no_s_general_file_names(self):
"""
Test no season general file names
"""
name_parser = parser.NameParser(use_guessit=False)
name_parser = parser.NameParser()
self._test_names(name_parser, 'no_season_general', lambda x: x + '.avi')

def test_no_s_multi_ep_names(self):
"""
Test no season multi episode names
"""
name_parser = parser.NameParser(False, use_guessit=False)
name_parser = parser.NameParser(False)
self._test_names(name_parser, 'no_season_multi_ep')

def test_no_s_multi_ep_file_names(self):
"""
Test no season multi episode file names
"""
name_parser = parser.NameParser(use_guessit=False)
name_parser = parser.NameParser()
self._test_names(name_parser, 'no_season_multi_ep', lambda x: x + '.avi')

def test_s_only_names(self):
"""
Test season only names
"""
name_parser = parser.NameParser(False, use_guessit=False)
name_parser = parser.NameParser(False)
self._test_names(name_parser, 'season_only')

def test_s_only_file_names(self):
"""
Test season only file names
"""
name_parser = parser.NameParser(use_guessit=False)
name_parser = parser.NameParser()
self._test_names(name_parser, 'season_only', lambda x: x + '.avi')


# TODO: Make these work or document why they shouldn't
class BasicFailedTests(test.SickbeardTestDBCase):
class BasicFailedTests(LegacyParserTestDBCase):
"""
Basic tests that currently fail
"""
Expand Down Expand Up @@ -493,30 +506,30 @@ def test_no_s_names(self):
"""
Test no season names
"""
name_parser = parser.NameParser(False, use_guessit=False)
name_parser = parser.NameParser(False)
self._test_names(name_parser, 'no_season')

def test_no_s_file_names(self):
"""
Test no season file names
"""
name_parser = parser.NameParser(use_guessit=False)
name_parser = parser.NameParser()
self._test_names(name_parser, 'no_season', lambda x: x + '.avi')

@unittest.expectedFailure
def test_bare_names(self):
"""
Test bare names
"""
name_parser = parser.NameParser(False, use_guessit=False)
name_parser = parser.NameParser(False)
self._test_names(name_parser, 'bare')

@unittest.expectedFailure
def test_bare_file_names(self):
"""
Test bare file names
"""
name_parser = parser.NameParser(use_guessit=False)
name_parser = parser.NameParser()
self._test_names(name_parser, 'bare', lambda x: x + '.avi')

@unittest.skip('Not yet implemented')
Expand All @@ -531,15 +544,15 @@ def test_scene_date_fmt_names(self):
"""
Test scene date format names
"""
name_parser = parser.NameParser(False, use_guessit=False)
name_parser = parser.NameParser(False)
self._test_names(name_parser, 'scene_date_format')

@unittest.skip('Not trying indexer')
def test_scene_date_fmt_file_names(self):
"""
Test scene date format file names
"""
name_parser = parser.NameParser(use_guessit=False)
name_parser = parser.NameParser()
self._test_names(name_parser, 'scene_date_format', lambda x: x + '.avi')


Expand Down

0 comments on commit cfa7d28

Please sign in to comment.