Beispiel #1
0
    def test_linux_distribution(self):
        distro_linux_dist = (get_distribution(), get_distribution_version(),
                             get_distribution_codename())

        platform_linux_dist = platform.linux_distribution()

        assert isinstance(distro_linux_dist, type(platform_linux_dist)), \
            'linux_distribution() returned type (%s) which is different from platform.linux_distribution type (%s)' % \
            (type(distro_linux_dist), type(platform_linux_dist))

        # TODO: add the cases where we expect them to differ

        # The third item in the tuple is different.
        assert distro_linux_dist[0] == platform_linux_dist[0]
        assert distro_linux_dist[1] == platform_linux_dist[1]

        if platform_linux_dist[0] == 'Fedora' and 20 < int(
                platform_linux_dist[1]) < 28:
            pytest.skip(
                "Fedora versions between 20 and 28 return the variant instead of the code name making this test unreliable"
            )
            # Fedora considers the platform_linux behaviour to have been a bug as it's finding the
            # variant, not the code name.  Fedora wants this to be the empty string.
            platform_linux_dist = platform_linux_dist[:2] + ('', )
        assert distro_linux_dist[2] == platform_linux_dist[2]
Beispiel #2
0
    def _guess_distribution(self):
        # try to find out which linux distribution this is
        dist = (get_distribution(), get_distribution_version(), get_distribution_codename())
        distribution_guess = {
            'distribution': dist[0] or 'NA',
            'distribution_version': dist[1] or 'NA',
            # distribution_release can be the empty string
            'distribution_release': 'NA' if dist[2] is None else dist[2]
        }

        distribution_guess['distribution_major_version'] = distribution_guess['distribution_version'].split('.')[0] or 'NA'
        return distribution_guess