From b73fb28081264a793de38f15d4dfc6b651ecffe0 Mon Sep 17 00:00:00 2001 From: Richard O'Dwyer Date: Sun, 17 Jun 2018 19:32:46 +0100 Subject: [PATCH] Bugfix for issue in ``ImdbFacade.get_title`` where with titles which no do yet have credits information would cause ``KeyError`` to raise. --- HISTORY.rst | 2 +- src/imdbpie/facade.py | 2 +- src/tests/test_facade.py | 11 +++++++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index bf99bbd..b9c5c7f 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -6,7 +6,7 @@ Release History 5.6.1 (unreleased) ++++++++++++++++++ -- Nothing changed yet. +- Bugfix for issue in ``ImdbFacade.get_title`` where with titles which no do yet have credits information would cause ``KeyError`` to raise. 5.6.0 (2018-06-09) diff --git a/src/imdbpie/facade.py b/src/imdbpie/facade.py index 151ac62..fb62b48 100644 --- a/src/imdbpie/facade.py +++ b/src/imdbpie/facade.py @@ -140,7 +140,7 @@ class ImdbFacade(object): def _get_credits(self, credits_data): credits = [] - for category in credits_data['credits']: + for category in credits_data.get('credits', ()): for item in credits_data['credits'][category]: credits.append(TitleName( name=item['name'], diff --git a/src/tests/test_facade.py b/src/tests/test_facade.py index b518950..7351ab4 100644 --- a/src/tests/test_facade.py +++ b/src/tests/test_facade.py @@ -80,13 +80,16 @@ class TestGetTitle(object): if num_checked > 5: break - def test_tv_episode(self, facade): - episode_imdb_id = 'tt4847050' + @pytest.mark.parametrize('episode_imdb_id', [ + 'tt4847050', + 'tt4849022', + ]) + def test_tv_episode(self, facade, episode_imdb_id): title = facade.get_title(imdb_id=episode_imdb_id) assert isinstance(title, Title) - assert isinstance(title.runtime, int) - assert title.runtime > 0 + + assert isinstance(title.runtime, (int, type(None))) assert title.imdb_id == episode_imdb_id assert len(title.episodes) == 0 assert isinstance(title.season, int) -- 2.24.1