SickGear/tests/helpers_tests.py
Prinz23 2f182860e5 Fix setting episode status when testing for if it should be deleted.
Restrict setting newly added old episodes to WANTED to the last 90 days, older are set to SKIPPED.
2018-01-19 00:39:48 +00:00

61 lines
2.7 KiB
Python

import unittest
import sys
import os.path
from sickbeard import helpers
from sickbeard.common import ARCHIVED, SNATCHED, SNATCHED_BEST, SNATCHED_PROPER, DOWNLOADED, SKIPPED, IGNORED, UNAIRED, UNKNOWN, WANTED, Quality
sys.path.insert(1, os.path.abspath('..'))
class HelpersTests(unittest.TestCase):
def test_replaceExtension(self):
self.assertEqual(helpers.replaceExtension('foo.avi', 'mkv'), 'foo.mkv')
self.assertEqual(helpers.replaceExtension('.vimrc', 'arglebargle'), '.vimrc')
self.assertEqual(helpers.replaceExtension('a.b.c', 'd'), 'a.b.d')
self.assertEqual(helpers.replaceExtension('', 'a'), '')
self.assertEqual(helpers.replaceExtension('foo.bar', ''), 'foo.')
def test_sanitizeFileName(self):
self.assertEqual(helpers.sanitizeFileName('a/b/c'), 'a-b-c')
self.assertEqual(helpers.sanitizeFileName('abc'), 'abc')
self.assertEqual(helpers.sanitizeFileName('a"b'), 'ab')
self.assertEqual(helpers.sanitizeFileName('.a.b..'), 'a.b')
def test_sizeof_fmt(self):
self.assertEqual(helpers.sizeof_fmt(2), '2.0 bytes')
self.assertEqual(helpers.sizeof_fmt(1024), '1.0 KB')
self.assertEqual(helpers.sizeof_fmt(2048), '2.0 KB')
self.assertEqual(helpers.sizeof_fmt(2 ** 20), '1.0 MB')
self.assertEqual(helpers.sizeof_fmt(1234567), '1.2 MB')
def test_remove_non_release_groups(self):
test_names = {
('[HorribleSubs] Hidan no Aria AA - 08 [1080p]', True): '[HorribleSubs] Hidan no Aria AA - 08 [1080p]',
('The.Last.Man.On.Earth.S02E08.No.Bull.1080p.WEB-DL.DD5.1.H264-BTN[rartv]', False): 'The.Last.Man.On.Earth.S02E08.No.Bull.1080p.WEB-DL.DD5.1.H264-BTN',
}
for test_name, test_result in test_names.items():
self.assertEqual(test_result, helpers.remove_non_release_groups(test_name[0], test_name[1]))
def test_should_delete_episode(self):
test_cases = [
((SNATCHED, Quality.HDTV), False),
((SNATCHED_PROPER, Quality.HDTV), False),
((SNATCHED_BEST, Quality.HDTV), False),
((DOWNLOADED, Quality.HDTV), False),
((ARCHIVED, Quality.HDTV), False),
((ARCHIVED, Quality.NONE), False),
((SKIPPED, Quality.NONE), True),
((IGNORED, Quality.NONE), False),
((UNAIRED, Quality.NONE), True),
((UNKNOWN, Quality.NONE), True),
((WANTED, Quality.NONE), True),
]
for c, b in test_cases:
self.assertEqual(helpers.should_delete_episode(Quality.compositeStatus(*c)), b)
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(HelpersTests)
unittest.TextTestRunner(verbosity=2).run(suite)