From c75ef36cfec1c3b5634b15f402776ba12a396ca8 Mon Sep 17 00:00:00 2001 From: JackDandy Date: Thu, 4 May 2023 21:44:24 +0100 Subject: [PATCH 1/2] Fix tv test to init recently added ReleaseMap. Fix double use of var `result` overwrites the return value and causes an error in _parse_custom_exceptions. Change remove Python 3.7 from CI --- .github/workflows/unittest.yml | 6 +-- sickgear/scene_exceptions.py | 6 +-- tests/tv_tests.py | 70 +++++++++++++++++----------------- 3 files changed, 41 insertions(+), 41 deletions(-) diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index fa7d932f..888a773d 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -15,7 +15,7 @@ jobs: matrix: os: - windows-latest - python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python-version: ['3.8', '3.9', '3.10', '3.11'] steps: - name: 'Set up Python ${{ matrix.python-version }}' uses: actions/setup-python@v4 @@ -34,7 +34,7 @@ jobs: matrix: os: - ubuntu-latest - python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python-version: ['3.8', '3.9', '3.10', '3.11'] steps: - name: 'Set up Python ${{ matrix.python-version }}' uses: actions/setup-python@v4 @@ -55,7 +55,7 @@ jobs: matrix: os: - macos-latest - python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] + python-version: ['3.8', '3.9', '3.10', '3.11'] steps: - name: 'Set up Python ${{ matrix.python-version }}' uses: actions/setup-python@v4 diff --git a/sickgear/scene_exceptions.py b/sickgear/scene_exceptions.py index f89abe76..963f0591 100644 --- a/sickgear/scene_exceptions.py +++ b/sickgear/scene_exceptions.py @@ -362,11 +362,9 @@ class ReleaseMap(Job): else: used.add((cur_for_season, cur_for_episode)) if not sn or sn != (target_season, cur_target_episode): # not already set - result = set_scene_numbering_helper( + count_updated_numbers += int(bool(set_scene_numbering_helper( tvid, prodid, for_season=cur_for_season, for_episode=cur_for_episode, - scene_season=target_season, scene_episode=cur_target_episode) - if result.get('success'): - count_updated_numbers += 1 + scene_season=target_season, scene_episode=cur_target_episode).get('success'))) cur_for_episode += 1 diff --git a/tests/tv_tests.py b/tests/tv_tests.py index 32a5f784..85b0f726 100644 --- a/tests/tv_tests.py +++ b/tests/tv_tests.py @@ -18,18 +18,18 @@ import unittest import test_lib as test -from random import randint +from random import randint import datetime import copy import sickgear from sickgear.tv import TVEpisode, TVShow, TVidProdid, prodid_bitshift -from exceptions_helper import ex, MultipleShowObjectsException +from exceptions_helper import MultipleShowObjectsException from sickgear.helpers import find_show_by_id from sickgear import indexermapper from sickgear.indexers.indexer_api import TVInfoAPI -from sickgear.indexers.indexer_config import TVINFO_IMDB, TVINFO_TMDB, TVINFO_TRAKT, TVINFO_TVDB, TVINFO_TVMAZE, \ - TVINFO_TVRAGE +from sickgear.indexers.indexer_config import TVINFO_IMDB, TVINFO_TMDB, TVINFO_TVDB, TVINFO_TVMAZE, TVINFO_TVRAGE +from sickgear.scene_exceptions import ReleaseMap # noinspection PyUnreachableCode if False: @@ -42,6 +42,7 @@ class TVShowTests(test.SickbeardTestDBCase): super(TVShowTests, self).setUp() sickgear.showList = [] sickgear.showDict = {} + _ = ReleaseMap() def test_init_indexerid(self): show_obj = TVShow(1, 1, 'en') @@ -81,6 +82,7 @@ class TVEpisodeTests(test.SickbeardTestDBCase): super(TVEpisodeTests, self).setUp() sickgear.showList = [] sickgear.showDict = {} + _ = ReleaseMap() def test_init_empty_db(self): show_obj = TVShow(1, 1, 'en') @@ -200,36 +202,36 @@ shows = [{'tvid': TVINFO_TVDB, 'prodid': 123, ] find_tests = [ - {'para': {'show_id': {TVINFO_TVMAZE: 22, TVINFO_TVRAGE: 785}, 'no_mapped_ids': False}, - 'result': {'tvid': TVINFO_TVDB, 'prodid': 123}, - 'description': 'search via mapped id'}, - {'para': {'show_id': {TVINFO_TVDB: 123}}, 'result': {'tvid': TVINFO_TVDB, 'prodid': 123}, - 'description': 'simple standard search via main id dict'}, - {'para': {'show_id': {TVINFO_TVDB: 12345}}, 'result': None, - 'description': 'simple standard search via main id dict, for non-existing show'}, - {'para': {'show_id': {TVINFO_TVDB: 123, TVINFO_TVMAZE: 123}, 'check_multishow': True}, - 'result': {'success': False}, - 'description': 'search via 2 ids matching multiple shows and multi show check'}, - {'para': {'show_id': {TVINFO_TVDB: 5555, TVINFO_TVMAZE: 123}, 'check_multishow': True}, - 'result': {'tvid': TVINFO_TVMAZE, 'prodid': 123}, - 'description': 'search via 2 ids matching only 1 show and multi show check'}, - {'para': {'show_id': {TVINFO_TVDB: 123, TVINFO_TVMAZE: 123}}, - 'result': {'tvid': TVINFO_TVDB, 'prodid': 123}, - 'description': 'search via 2 ids matching only 1 show without multi show check #1'}, - {'para': {'show_id': {TVINFO_TVDB: 123, TVINFO_TVRAGE: 22}}, - 'result': {'tvid': TVINFO_TVDB, 'prodid': 123}, - 'description': 'search via 2 ids matching only 1 show without multi show check #2'}, - {'para': {'show_id': {TVINFO_TVMAZE: 22, TVINFO_TVRAGE: 785}}, - 'result': None, - 'description': 'search for 2 non-existing ids without mapping'}, - {'para': {'show_id': {TVINFO_IMDB: 123}}, - 'result': None, 'description': 'invalid sid search (tvid above tvid_bitmask)'}, - {'para': {'show_id': '%s:123' % TVINFO_TVDB}, 'result': {'tvid': TVINFO_TVDB, 'prodid': 123}, - 'description': 'simple search via tvid_prodid string'}, - {'para': {'show_id': '%s:123' % TVINFO_TVDB, 'check_multishow': True}, - 'result': {'tvid': TVINFO_TVDB, 'prodid': 123}, - 'description': 'simple search via tvid_prodid string and check multishow'}, - ] + {'para': {'show_id': {TVINFO_TVMAZE: 22, TVINFO_TVRAGE: 785}, 'no_mapped_ids': False}, + 'result': {'tvid': TVINFO_TVDB, 'prodid': 123}, + 'description': 'search via mapped id'}, + {'para': {'show_id': {TVINFO_TVDB: 123}}, 'result': {'tvid': TVINFO_TVDB, 'prodid': 123}, + 'description': 'simple standard search via main id dict'}, + {'para': {'show_id': {TVINFO_TVDB: 12345}}, 'result': None, + 'description': 'simple standard search via main id dict, for non-existing show'}, + {'para': {'show_id': {TVINFO_TVDB: 123, TVINFO_TVMAZE: 123}, 'check_multishow': True}, + 'result': {'success': False}, + 'description': 'search via 2 ids matching multiple shows and multi show check'}, + {'para': {'show_id': {TVINFO_TVDB: 5555, TVINFO_TVMAZE: 123}, 'check_multishow': True}, + 'result': {'tvid': TVINFO_TVMAZE, 'prodid': 123}, + 'description': 'search via 2 ids matching only 1 show and multi show check'}, + {'para': {'show_id': {TVINFO_TVDB: 123, TVINFO_TVMAZE: 123}}, + 'result': {'tvid': TVINFO_TVDB, 'prodid': 123}, + 'description': 'search via 2 ids matching only 1 show without multi show check #1'}, + {'para': {'show_id': {TVINFO_TVDB: 123, TVINFO_TVRAGE: 22}}, + 'result': {'tvid': TVINFO_TVDB, 'prodid': 123}, + 'description': 'search via 2 ids matching only 1 show without multi show check #2'}, + {'para': {'show_id': {TVINFO_TVMAZE: 22, TVINFO_TVRAGE: 785}}, + 'result': None, + 'description': 'search for 2 non-existing ids without mapping'}, + {'para': {'show_id': {TVINFO_IMDB: 123}}, + 'result': None, 'description': 'invalid sid search (tvid above tvid_bitmask)'}, + {'para': {'show_id': '%s:123' % TVINFO_TVDB}, 'result': {'tvid': TVINFO_TVDB, 'prodid': 123}, + 'description': 'simple search via tvid_prodid string'}, + {'para': {'show_id': '%s:123' % TVINFO_TVDB, 'check_multishow': True}, + 'result': {'tvid': TVINFO_TVDB, 'prodid': 123}, + 'description': 'simple search via tvid_prodid string and check multishow'}, +] class TVFindTests(test.SickbeardTestDBCase): From ec0dd628654a28fa8566581b8970c5b1c6791eb1 Mon Sep 17 00:00:00 2001 From: Prinz23 Date: Thu, 4 May 2023 22:53:45 +0100 Subject: [PATCH 2/2] Fix name_parser_tests and webapi_tests. --- CHANGES.md | 8 ++++++++ tests/name_parser_tests.py | 2 ++ tests/webapi_tests.py | 8 ++++++++ 3 files changed, 18 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 4b7c7817..4e0c6dc9 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -22,6 +22,14 @@ * Add menu Shows/"TMDB Cards" * Add a persons available socials (Youtube, LinkedIn, Reddit, Fansite, TikTok, Wikidata) * Change use TVDb genres on view-show if config/General/Interface/"Enable IMDb info" is disabled +* Change remove Python 3.7 from CI + + +[develop changelog] + +* Fix tv test to init recently added ReleaseMap to scene_exceptions refactor +* Fix double use of var `result` overwrites the return value and causes an error in _parse_custom_exceptions +* Fix name_parser_tests and webapi_tests ### 3.28.0 (2023-04-12 13:05:00 UTC) diff --git a/tests/name_parser_tests.py b/tests/name_parser_tests.py index c993ea11..b677699f 100644 --- a/tests/name_parser_tests.py +++ b/tests/name_parser_tests.py @@ -11,6 +11,7 @@ import sickgear from sickgear import db, name_cache, tv from sickgear.classes import OrderedDefaultdict from sickgear.name_parser import parser +from sickgear.scene_exceptions import ReleaseMap sickgear.SYS_ENCODING = 'UTF-8' @@ -474,6 +475,7 @@ scene_numbering_test = [ class MultiSceneNumbering(test.SickbeardTestDBCase): def test_multi_ep_numbering(self): + _ = ReleaseMap() for e_t in scene_numbering_test: sickgear.showList = [] sickgear.showDict = {} diff --git a/tests/webapi_tests.py b/tests/webapi_tests.py index 6ccac0ae..a97cc34c 100644 --- a/tests/webapi_tests.py +++ b/tests/webapi_tests.py @@ -106,6 +106,10 @@ def fake_action(*args, **kwargs): pass +class fake_class(): + pass + + class WebAPICase(test.SickbeardTestDBCase): webserver = None instance = None @@ -147,6 +151,10 @@ class WebAPICase(test.SickbeardTestDBCase): sickgear.started = True sickgear.API_KEYS = [['unit test key', '1234567890']] sickgear.USE_API = True + sickgear.process_media_scheduler = fake_class() + sickgear.update_show_scheduler = fake_class() + sickgear.process_media_scheduler.is_running_job = False + sickgear.update_show_scheduler.is_running_job = False except (BaseException, Exception) as e: print('Failed to start WebServer: %s' % ex(e))