From 1d668befd16f3024f80ac3d67cacae9a37766ca2 Mon Sep 17 00:00:00 2001 From: Glenn Guy Date: Wed, 22 Apr 2020 22:46:04 +1000 Subject: [PATCH 1/2] Make Kodi version getting safer This way we still end up with the same data type to operate on -> avoid type errors --- lib/aussieaddonscommon/utils.py | 14 ++++++++++---- lib/tests/unit/test_utils.py | 10 ++++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lib/aussieaddonscommon/utils.py b/lib/aussieaddonscommon/utils.py index d2ea897..11fdad6 100644 --- a/lib/aussieaddonscommon/utils.py +++ b/lib/aussieaddonscommon/utils.py @@ -211,20 +211,26 @@ def get_kodi_build(): try: return xbmc.getInfoLabel("System.BuildVersion") except Exception: - return + return '' def get_kodi_version(): """Return the version number of Kodi""" build = get_kodi_build() - version = build.split(' ')[0] - return version + if build: + version = build.split(' ')[0] + return version + else: + return '0' def get_kodi_major_version(): """Return the major version number of Kodi""" version = get_kodi_version().split('.')[0] - return int(version) + if version: + return int(version) + else: + return 0 def log_kodi_platform_version(): diff --git a/lib/tests/unit/test_utils.py b/lib/tests/unit/test_utils.py index 7e50635..dcfd528 100644 --- a/lib/tests/unit/test_utils.py +++ b/lib/tests/unit/test_utils.py @@ -129,11 +129,21 @@ def test_get_kodi_version(self, mock_info_label): mock_info_label.return_value = fakes.BUILD_VERSION self.assertEqual('18.2', utils.get_kodi_version()) + @mock.patch('xbmc.getInfoLabel') + def test_get_kodi_version_none(self, mock_info_label): + mock_info_label.return_value = None + self.assertEqual('0', utils.get_kodi_version()) + @mock.patch('xbmc.getInfoLabel') def test_get_kodi_major_version(self, mock_info_label): mock_info_label.return_value = fakes.BUILD_VERSION self.assertEqual(18, utils.get_kodi_major_version()) + @mock.patch('xbmc.getInfoLabel') + def test_get_kodi_major_version_blank(self, mock_info_label): + mock_info_label.return_value = '' + self.assertEqual(0, utils.get_kodi_major_version()) + @mock.patch('xbmcaddon.Addon', fakes.FakeAddon) @mock.patch('xbmc.log') @mock.patch('xbmc.getCondVisibility') From 23b30100e0c09453f2cc8fc6632cce3508c8ccf6 Mon Sep 17 00:00:00 2001 From: Glenn Guy Date: Fri, 24 Apr 2020 20:21:11 +1000 Subject: [PATCH 2/2] Revert some redundant changes --- lib/aussieaddonscommon/utils.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/aussieaddonscommon/utils.py b/lib/aussieaddonscommon/utils.py index 11fdad6..e038d4d 100644 --- a/lib/aussieaddonscommon/utils.py +++ b/lib/aussieaddonscommon/utils.py @@ -211,7 +211,7 @@ def get_kodi_build(): try: return xbmc.getInfoLabel("System.BuildVersion") except Exception: - return '' + return None def get_kodi_version(): @@ -227,10 +227,7 @@ def get_kodi_version(): def get_kodi_major_version(): """Return the major version number of Kodi""" version = get_kodi_version().split('.')[0] - if version: - return int(version) - else: - return 0 + return int(version) def log_kodi_platform_version():