From 64f5acfdd08eec3fc87fe8fe2b0d818d3feb1483 Mon Sep 17 00:00:00 2001 From: Chenxiong Qi Date: Sep 01 2018 01:19:17 +0000 Subject: Use module distro instead of platform platform.linux_distribution is deprecated. This patch uses recommended replacement module distro. Fixes #278 Signed-off-by: Chenxiong Qi --- diff --git a/fedpkg/__init__.py b/fedpkg/__init__.py index 145c033..1a2dc32 100644 --- a/fedpkg/__init__.py +++ b/fedpkg/__init__.py @@ -13,13 +13,13 @@ import pyrpkg import os import git import re -import platform from datetime import datetime, timedelta from . import cli # noqa from .lookaside import FedoraLookasideCache from pyrpkg.utils import cached_property +from .utils import linux_distribution try: from bodhi.client.bindings import BodhiClient as _BodhiClient @@ -232,7 +232,7 @@ class Commands(pyrpkg.Commands): conflicting """ try: - runtime_os, runtime_version, _ = platform.linux_distribution() + runtime_os, runtime_version, _ = linux_distribution() except Exception: return None diff --git a/fedpkg/utils.py b/fedpkg/utils.py index 7a9ba20..d81f7d5 100644 --- a/fedpkg/utils.py +++ b/fedpkg/utils.py @@ -20,6 +20,11 @@ import requests from requests.exceptions import ConnectionError from pyrpkg import rpkgError +try: + from distro import linux_distribution # noqa +except ImportError: + from platform import linux_distribution # noqa + def query_pdc(server_url, endpoint, params, timeout=60): api_url = '{0}/rest_api/v1/{1}/'.format( diff --git a/setup.py b/setup.py index c30797e..bbb3c06 100755 --- a/setup.py +++ b/setup.py @@ -32,6 +32,10 @@ if ver[0] <= 2 and ver[1] < 7: tests_require += [ 'unittest2' ] +else: + install_requires += [ + 'distro', + ] setup( diff --git a/test/test_commands.py b/test/test_commands.py index 30fe8c5..6d85988 100644 --- a/test/test_commands.py +++ b/test/test_commands.py @@ -24,20 +24,20 @@ class TestDetermineRuntimeEnv(CommandTestCase): super(TestDetermineRuntimeEnv, self).setUp() self.cmd = self.make_commands() - @patch('platform.linux_distribution') + @patch('fedpkg.linux_distribution') def test_return_fedora_disttag(self, linux_distribution): linux_distribution.return_value = ('Fedora', '25', 'Twenty Five') result = self.cmd._determine_runtime_env() self.assertEqual('fc25', result) - @patch('platform.linux_distribution') + @patch('fedpkg.linux_distribution') def test_return_None_if_os_is_unknown(self, linux_distribution): linux_distribution.side_effect = ValueError self.assertEqual(None, self.cmd._determine_runtime_env()) - @patch('platform.linux_distribution') + @patch('fedpkg.linux_distribution') def test_return_for_rhel(self, linux_distribution): linux_distribution.return_value = ('Red Hat Enterprise Linux Server', '6.8', @@ -55,7 +55,7 @@ class TestDetermineRuntimeEnv(CommandTestCase): ] for dist, expected_dist_tag in dists: - with patch('platform.linux_distribution', return_value=dist): + with patch('fedpkg.linux_distribution', return_value=dist): result = self.cmd._determine_runtime_env() self.assertEqual(expected_dist_tag, result)