Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for CloudLinux VM missing os-release and /etc/redhat-release #369

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

HorlogeSkynet
Copy link
Member

See #240 for reference.

@NebularNerd
Copy link

I'm trying to test but maybe I'm doing it wrong, I checked out the code with GitHub Desktop, uploaded it to my GoDaddy potato and ran:

pip install tox
tox

It failed with the following.

lint: install_deps> python -I -m pip install pre-commit
lint: commands[0]> pre-commit run --all-files --show-diff-on-failure
[INFO] Initializing environment for https://github.com/psf/black.
[INFO] Initializing environment for https://github.com/PyCQA/flake8.
[INFO] Initializing environment for https://github.com/pycqa/isort.
[INFO] Initializing environment for https://github.com/pre-commit/mirrors-mypy.
[INFO] Initializing environment for https://github.com/pre-commit/mirrors-mypy:pytest==6.2.5.
[INFO] Installing environment for https://github.com/psf/black.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/PyCQA/flake8.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/pycqa/isort.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/pre-commit/mirrors-mypy.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
black....................................................................Passed
flake8...................................................................Passed
isort....................................................................Passed
mypy.....................................................................Passed
lint: OK ✔ in 4 minutes 38.2 seconds
py36: skipped because could not find python interpreter with spec(s): py36
py36: SKIP ⚠ in 0.59 seconds
py37: skipped because could not find python interpreter with spec(s): py37
py37: SKIP ⚠ in 0.01 seconds
py38: skipped because could not find python interpreter with spec(s): py38
py38: SKIP ⚠ in 0.01 seconds
py39: skipped because could not find python interpreter with spec(s): py39
py39: SKIP ⚠ in 0.01 seconds
py310: skipped because could not find python interpreter with spec(s): py310
py310: SKIP ⚠ in 0.01 seconds
py311: install_deps> python -I -m pip install pytest pytest-cov
.pkg: install_requires> python -I -m pip install setuptools
.pkg: _optional_hooks> python /home/my_name/virtualenv/py/my_py/3.11/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta
.pkg: get_requires_for_build_sdist> python /home/my_name/virtualenv/py/my_py/3.11/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta
.pkg: get_requires_for_build_wheel> python /home/my_name/virtualenv/py/my_py/3.11/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta
.pkg: prepare_metadata_for_build_wheel> python /home/my_name/virtualenv/py/my_py/3.11/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta
.pkg: build_sdist> python /home/my_name/virtualenv/py/my_py/3.11/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta
py311: install_package> python -I -m pip install --force-reinstall --no-deps /home/my_name/py/my_py/distro/.tox/.tmp/package/1/distro-1.9.0.tar.gz
py311: commands[0]> pytest --cov-report term-missing --cov distro
================================================= test session starts ==================================================
platform linux -- Python 3.11.9, pytest-8.3.2, pluggy-1.5.0
cachedir: .tox/py311/.pytest_cache
rootdir: /home/my_name/py/my_py/distro
configfile: pyproject.toml
plugins: cov-5.0.0
collected 239 items

tests/test_distro.py .......F........FF...F......F...........F........FF...F......F...........FFFFFFFFFFFF.....F [ 38%]
.....F........F..........FF.........F..FF........F.F........F....FFF.........F..FF........F.F........F....F....F [ 84%]
F...................................                                                                             [100%]

======================================================= FAILURES =======================================================
__________________________________________ TestOSRelease.test_arch_os_release __________________________________________

self = <tests.test_distro.TestOSRelease object at 0x7f2ad02d99d0>

    def test_arch_os_release(self) -> None:
        desired_outcome = {
            "id": "arch",
            "name": "Arch Linux",
            "pretty_name": "Arch Linux",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:167:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOSRelease object at 0x7f2ad02d99d0>
outcome = {'id': 'arch', 'name': 'Arch Linux', 'pretty_name': 'Arch Linux'}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'arch'
E
E         - arch

tests/test_distro.py:152: AssertionError
________________________________________ TestOSRelease.test_fedora23_os_release ________________________________________

self = <tests.test_distro.TestOSRelease object at 0x7f2ad02bc450>

    def test_fedora23_os_release(self) -> None:
        desired_outcome = {
            "id": "fedora",
            "name": "Fedora",
            "pretty_name": "Fedora 23 (Twenty Three)",
            "version": "23",
            "pretty_version": "23 (Twenty Three)",
            "best_version": "23",
            "codename": "Twenty Three",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:274:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOSRelease object at 0x7f2ad02bc450>
outcome = {'best_version': '23', 'codename': 'Twenty Three', 'id': 'fedora', 'name': 'Fedora', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'fedora'
E
E         - fedora

tests/test_distro.py:152: AssertionError
________________________________________ TestOSRelease.test_fedora30_os_release ________________________________________

self = <tests.test_distro.TestOSRelease object at 0x7f2ad02bd290>

    def test_fedora30_os_release(self) -> None:
        # Fedora 21 and above no longer have code names but the metadata in
        # os-release was only changed in a detectable way in Fedora 30+. The
        # piece in parenthesis in the pretty_name field contains the VARIANT
        # and differs depending on the variant which was installed.
        desired_outcome = {
            "id": "fedora",
            "name": "Fedora",
            "pretty_name": "Fedora 30 (Thirty)",
            "version": "30",
            "pretty_version": "30",
            "best_version": "30",
            "codename": "",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:290:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOSRelease object at 0x7f2ad02bd290>
outcome = {'best_version': '30', 'codename': '', 'id': 'fedora', 'name': 'Fedora', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'fedora'
E
E         - fedora

tests/test_distro.py:152: AssertionError
________________________________________ TestOSRelease.test_mageia5_os_release _________________________________________

self = <tests.test_distro.TestOSRelease object at 0x7f2ad02bf2d0>

    def test_mageia5_os_release(self) -> None:
        desired_outcome = {
            "id": "mageia",
            "name": "Mageia",
            "pretty_name": "Mageia 5",
            "version": "5",
            "pretty_version": "5",
            "best_version": "5",
            "like": "mandriva fedora",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:338:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOSRelease object at 0x7f2ad02bf2d0>
outcome = {'best_version': '5', 'id': 'mageia', 'like': 'mandriva fedora', 'name': 'Mageia', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'mageia'
E
E         - mageia

tests/test_distro.py:152: AssertionError
_________________________________________ TestOSRelease.test_rocky_os_release __________________________________________

self = <tests.test_distro.TestOSRelease object at 0x7f2ad02bd650>

    def test_rocky_os_release(self) -> None:
        desired_outcome = {
            "id": "rocky",
            "name": "Rocky Linux",
            "pretty_name": "Rocky Linux 8.4 (Green Obsidian)",
            "version": "8.4",
            "pretty_version": "8.4 (Green Obsidian)",
            "best_version": "8.4",
            "like": "rhel centos fedora",
            "codename": "Green Obsidian",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:419:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOSRelease object at 0x7f2ad02bd650>
outcome = {'best_version': '8.4', 'codename': 'Green Obsidian', 'id': 'rocky', 'like': 'rhel centos fedora', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'rocky'
E
E         - rocky

tests/test_distro.py:152: AssertionError
_________________________________________ TestWithRootDir.test_arch_os_release _________________________________________

self = <tests.test_distro.TestWithRootDir object at 0x7f2ad02ce9d0>

    def test_arch_os_release(self) -> None:
        desired_outcome = {
            "id": "arch",
            "name": "Arch Linux",
            "pretty_name": "Arch Linux",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:167:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestWithRootDir object at 0x7f2ad02ce9d0>
outcome = {'id': 'arch', 'name': 'Arch Linux', 'pretty_name': 'Arch Linux'}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'arch'
E
E         - arch

tests/test_distro.py:152: AssertionError
_______________________________________ TestWithRootDir.test_fedora23_os_release _______________________________________

self = <tests.test_distro.TestWithRootDir object at 0x7f2ad02cd950>

    def test_fedora23_os_release(self) -> None:
        desired_outcome = {
            "id": "fedora",
            "name": "Fedora",
            "pretty_name": "Fedora 23 (Twenty Three)",
            "version": "23",
            "pretty_version": "23 (Twenty Three)",
            "best_version": "23",
            "codename": "Twenty Three",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:274:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestWithRootDir object at 0x7f2ad02cd950>
outcome = {'best_version': '23', 'codename': 'Twenty Three', 'id': 'fedora', 'name': 'Fedora', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'fedora'
E
E         - fedora

tests/test_distro.py:152: AssertionError
_______________________________________ TestWithRootDir.test_fedora30_os_release _______________________________________

self = <tests.test_distro.TestWithRootDir object at 0x7f2ad02ed690>

    def test_fedora30_os_release(self) -> None:
        # Fedora 21 and above no longer have code names but the metadata in
        # os-release was only changed in a detectable way in Fedora 30+. The
        # piece in parenthesis in the pretty_name field contains the VARIANT
        # and differs depending on the variant which was installed.
        desired_outcome = {
            "id": "fedora",
            "name": "Fedora",
            "pretty_name": "Fedora 30 (Thirty)",
            "version": "30",
            "pretty_version": "30",
            "best_version": "30",
            "codename": "",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:290:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestWithRootDir object at 0x7f2ad02ed690>
outcome = {'best_version': '30', 'codename': '', 'id': 'fedora', 'name': 'Fedora', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'fedora'
E
E         - fedora

tests/test_distro.py:152: AssertionError
_______________________________________ TestWithRootDir.test_mageia5_os_release ________________________________________

self = <tests.test_distro.TestWithRootDir object at 0x7f2ad02ee610>

    def test_mageia5_os_release(self) -> None:
        desired_outcome = {
            "id": "mageia",
            "name": "Mageia",
            "pretty_name": "Mageia 5",
            "version": "5",
            "pretty_version": "5",
            "best_version": "5",
            "like": "mandriva fedora",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:338:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestWithRootDir object at 0x7f2ad02ee610>
outcome = {'best_version': '5', 'id': 'mageia', 'like': 'mandriva fedora', 'name': 'Mageia', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'mageia'
E
E         - mageia

tests/test_distro.py:152: AssertionError
________________________________________ TestWithRootDir.test_rocky_os_release _________________________________________

self = <tests.test_distro.TestWithRootDir object at 0x7f2ad02e5690>

    def test_rocky_os_release(self) -> None:
        desired_outcome = {
            "id": "rocky",
            "name": "Rocky Linux",
            "pretty_name": "Rocky Linux 8.4 (Green Obsidian)",
            "version": "8.4",
            "pretty_version": "8.4 (Green Obsidian)",
            "best_version": "8.4",
            "like": "rhel centos fedora",
            "codename": "Green Obsidian",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:419:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestWithRootDir object at 0x7f2ad02e5690>
outcome = {'best_version': '8.4', 'codename': 'Green Obsidian', 'id': 'rocky', 'like': 'rhel centos fedora', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'rocky'
E
E         - rocky

tests/test_distro.py:152: AssertionError
_____________________________________ TestLSBRelease.test_linuxmint17_lsb_release ______________________________________

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad02e7c50>

    def test_linuxmint17_lsb_release(self) -> None:
        desired_outcome = {
            "id": "linuxmint",
            "name": "LinuxMint",
            "pretty_name": "Linux Mint 17.3 Rosa",
            "version": "17.3",
            "pretty_version": "17.3 (rosa)",
            "best_version": "17.3",
            "codename": "rosa",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:606:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad02e7c50>
outcome = {'best_version': '17.3', 'codename': 'rosa', 'id': 'linuxmint', 'name': 'LinuxMint', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'linuxmint'
E
E         - linuxmint

tests/test_distro.py:587: AssertionError
_____________________________________ TestLSBRelease.test_manjaro1512_lsb_release ______________________________________

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad02e6ad0>

    def test_manjaro1512_lsb_release(self) -> None:
>       self._test_outcome(
            {
                "id": "manjarolinux",
                "name": "ManjaroLinux",
                "pretty_name": "Manjaro Linux",
                "version": "15.12",
                "pretty_version": "15.12 (Capella)",
                "best_version": "15.12",
                "codename": "Capella",
            }
        )

tests/test_distro.py:609:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad02e6ad0>
outcome = {'best_version': '15.12', 'codename': 'Capella', 'id': 'manjarolinux', 'name': 'ManjaroLinux', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'manjarolinux'
E
E         - manjarolinux

tests/test_distro.py:587: AssertionError
_______________________________________ TestLSBRelease.test_cloudlinuxvm7_uname ________________________________________

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad02e5510>

    def test_cloudlinuxvm7_uname(self) -> None:
>       self._test_outcome(
            {
                "id": "cloudlinux",
                "name": "CloudLinux",
                "version": "7",
                "pretty_name": "CloudLinux 7",
                "pretty_version": "7",
                "best_version": "7",
            }
        )

tests/test_distro.py:636:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad02e5510>
outcome = {'best_version': '7', 'id': 'cloudlinux', 'name': 'CloudLinux', 'pretty_name': 'CloudLinux 7', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'cloudlinux'
E
E         - cloudlinux

tests/test_distro.py:587: AssertionError
_______________________________________ TestLSBRelease.test_cloudlinuxvm8_uname ________________________________________

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad02e6b90>

    def test_cloudlinuxvm8_uname(self) -> None:
>       self._test_outcome(
            {
                "id": "cloudlinux",
                "name": "CloudLinux",
                "version": "8",
                "pretty_name": "CloudLinux 8",
                "pretty_version": "8",
                "best_version": "8",
            }
        )

tests/test_distro.py:648:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad02e6b90>
outcome = {'best_version': '8', 'id': 'cloudlinux', 'name': 'CloudLinux', 'pretty_name': 'CloudLinux 8', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'cloudlinux'
E
E         - cloudlinux

tests/test_distro.py:587: AssertionError
_______________________________________ TestLSBRelease.test_cloudlinuxvm9_uname ________________________________________

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad02ecc50>

    def test_cloudlinuxvm9_uname(self) -> None:
>       self._test_outcome(
            {
                "id": "cloudlinux",
                "name": "CloudLinux",
                "version": "9.4",
                "pretty_name": "CloudLinux 9.4",
                "pretty_version": "9.4",
                "best_version": "9.4",
            }
        )

tests/test_distro.py:660:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad02ecc50>
outcome = {'best_version': '9.4', 'id': 'cloudlinux', 'name': 'CloudLinux', 'pretty_name': 'CloudLinux 9.4', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'cloudlinux'
E
E         - cloudlinux

tests/test_distro.py:587: AssertionError
_________________________________________ TestLSBRelease.test_openbsd62_uname __________________________________________

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad03036d0>

    def test_openbsd62_uname(self) -> None:
>       self._test_outcome(
            {
                "id": "openbsd",
                "name": "OpenBSD",
                "version": "6.2",
                "pretty_name": "OpenBSD 6.2",
                "pretty_version": "6.2",
                "best_version": "6.2",
            }
        )

tests/test_distro.py:672:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad03036d0>
outcome = {'best_version': '6.2', 'id': 'openbsd', 'name': 'OpenBSD', 'pretty_name': 'OpenBSD 6.2', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'openbsd'
E
E         - openbsd

tests/test_distro.py:587: AssertionError
_________________________________________ TestLSBRelease.test_netbsd711_uname __________________________________________

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad0300290>

    def test_netbsd711_uname(self) -> None:
>       self._test_outcome(
            {
                "id": "netbsd",
                "name": "NetBSD",
                "version": "7.1.1",
                "pretty_name": "NetBSD 7.1.1",
                "pretty_version": "7.1.1",
                "best_version": "7.1.1",
            }
        )

tests/test_distro.py:684:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad0300290>
outcome = {'best_version': '7.1.1', 'id': 'netbsd', 'name': 'NetBSD', 'pretty_name': 'NetBSD 7.1.1', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'netbsd'
E
E         - netbsd

tests/test_distro.py:587: AssertionError
_________________________________________ TestLSBRelease.test_freebsd111_uname _________________________________________

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad0301410>

    def test_freebsd111_uname(self) -> None:
>       self._test_outcome(
            {
                "id": "freebsd",
                "name": "FreeBSD",
                "version": "11.1",
                "pretty_name": "FreeBSD 11.1",
                "pretty_version": "11.1",
                "best_version": "11.1",
            }
        )

tests/test_distro.py:696:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad0301410>
outcome = {'best_version': '11.1', 'id': 'freebsd', 'name': 'FreeBSD', 'pretty_name': 'FreeBSD 11.1', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'freebsd'
E
E         - freebsd

tests/test_distro.py:587: AssertionError
_______________________________________ TestLSBRelease.test_midnightbsd12_uname ________________________________________

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad0302090>

    def test_midnightbsd12_uname(self) -> None:
>       self._test_outcome(
            {
                "id": "midnightbsd",
                "name": "MidnightBSD",
                "version": "1.2",
                "pretty_name": "MidnightBSD 1.2",
                "pretty_version": "1.2",
                "best_version": "1.2",
            }
        )

tests/test_distro.py:708:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad0302090>
outcome = {'best_version': '1.2', 'id': 'midnightbsd', 'name': 'MidnightBSD', 'pretty_name': 'MidnightBSD 1.2', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'midnightbsd'
E
E         - midnightbsd

tests/test_distro.py:587: AssertionError
____________________________________ TestLSBRelease.test_ubuntu14normal_lsb_release ____________________________________

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad0300950>

    def test_ubuntu14normal_lsb_release(self) -> None:
        self._setup_for_distro(os.path.join(TESTDISTROS, "lsb", "ubuntu14_normal"))

        self.distro = distro.LinuxDistribution(
            os_release_file="path-to-non-existing-file",
            distro_release_file="path-to-non-existing-file",
        )

        desired_outcome = {
            "id": "ubuntu",
            "name": "Ubuntu",
            "pretty_name": "Ubuntu 14.04.3 LTS",
            "version": "14.04",
            "pretty_version": "14.04 (trusty)",
            "best_version": "14.04.3",
            "codename": "trusty",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:736:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad0300950>
outcome = {'best_version': '14.04.3', 'codename': 'trusty', 'id': 'ubuntu', 'name': 'Ubuntu', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'ubuntu'
E
E         - ubuntu

tests/test_distro.py:587: AssertionError
__________________________________ TestLSBRelease.test_ubuntu14nomodules_lsb_release ___________________________________

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad0300fd0>

    def test_ubuntu14nomodules_lsb_release(self) -> None:
        self._setup_for_distro(os.path.join(TESTDISTROS, "lsb", "ubuntu14_nomodules"))

        self.distro = distro.LinuxDistribution(
            os_release_file="path-to-non-existing-file",
            distro_release_file="path-to-non-existing-file",
        )

        desired_outcome = {
            "id": "ubuntu",
            "name": "Ubuntu",
            "pretty_name": "Ubuntu 14.04.3 LTS",
            "version": "14.04",
            "pretty_version": "14.04 (trusty)",
            "best_version": "14.04.3",
            "codename": "trusty",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:755:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad0300fd0>
outcome = {'best_version': '14.04.3', 'codename': 'trusty', 'id': 'ubuntu', 'name': 'Ubuntu', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'ubuntu'
E
E         - ubuntu

tests/test_distro.py:587: AssertionError
____________________________________ TestLSBRelease.test_trailingblanks_lsb_release ____________________________________

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad0300150>

    def test_trailingblanks_lsb_release(self) -> None:
        self._setup_for_distro(
            os.path.join(TESTDISTROS, "lsb", "ubuntu14_trailingblanks")
        )

        self.distro = distro.LinuxDistribution(
            os_release_file="path-to-non-existing-file",
            distro_release_file="path-to-non-existing-file",
        )

        desired_outcome = {
            "id": "ubuntu",
            "name": "Ubuntu",
            "pretty_name": "Ubuntu 14.04.3 LTS",
            "version": "14.04",
            "pretty_version": "14.04 (trusty)",
            "best_version": "14.04.3",
            "codename": "trusty",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:776:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestLSBRelease object at 0x7f2ad0300150>
outcome = {'best_version': '14.04.3', 'codename': 'trusty', 'id': 'ubuntu', 'name': 'Ubuntu', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'ubuntu'
E
E         - ubuntu

tests/test_distro.py:587: AssertionError
________________________________________ TestSpecialRelease.test_empty_release _________________________________________

self = <tests.test_distro.TestSpecialRelease object at 0x7f2ad04548d0>

    def test_empty_release(self) -> None:
        distro_release = os.path.join(SPECIAL, "empty-release")

        self.distro = distro.LinuxDistribution(
            include_lsb=False,
            os_release_file="path-to-non-existing-file",
            distro_release_file=distro_release,
        )

        desired_outcome = {"id": "empty"}
>       self._test_outcome(desired_outcome)

tests/test_distro.py:815:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestSpecialRelease object at 0x7f2ad04548d0>, outcome = {'id': 'empty'}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
        assert self.distro.id() == outcome.get("id", "")
>       assert self.distro.name() == outcome.get("name", "")
E       AssertionError: assert 'CloudLinux' == ''
E
E         + CloudLinux

tests/test_distro.py:794: AssertionError
_______________________________________ TestDistroRelease.test_arch_dist_release _______________________________________

self = <tests.test_distro.TestDistroRelease object at 0x7f2ad0457fd0>

    def test_arch_dist_release(self) -> None:
        desired_outcome = {"id": "arch"}
>       self._test_outcome(desired_outcome, "arch")

tests/test_distro.py:911:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestDistroRelease object at 0x7f2ad0457fd0>, outcome = {'id': 'arch'}, distro_name = 'arch'
version = '', release_file_id = 'arch', release_file_suffix = 'release'

    def _test_outcome(
        self,
        outcome: Dict[str, str],
        distro_name: str = "",
        version: str = "",
        release_file_id: str = "",
        release_file_suffix: str = "release",
    ) -> None:
        release_file_id = release_file_id or distro_name
        distro_release = os.path.join(
            DISTROS_DIR,
            distro_name + version,
            "etc",
            f"{release_file_id}-{release_file_suffix}",
        )
        self.distro = distro.LinuxDistribution(
            include_lsb=False,
            os_release_file="path-to-non-existing-file",
            distro_release_file=distro_release,
        )

        assert self.distro.id() == outcome.get("id", "")
>       assert self.distro.name() == outcome.get("name", "")
E       AssertionError: assert 'CloudLinux' == ''
E
E         + CloudLinux

tests/test_distro.py:898: AssertionError
___________________________________ TestDistroRelease.test_manjaro1512_dist_release ____________________________________

self = <tests.test_distro.TestDistroRelease object at 0x7f2ad0294cd0>

    def test_manjaro1512_dist_release(self) -> None:
>       self._test_outcome(
            {
                "id": "manjaro",
                "name": "Manjaro Linux",
                "pretty_name": "Manjaro Linux",
                "version": "",
                "codename": "",
            },
            "manjaro",
            "1512",
        )

tests/test_distro.py:1023:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestDistroRelease object at 0x7f2ad0294cd0>
outcome = {'codename': '', 'id': 'manjaro', 'name': 'Manjaro Linux', 'pretty_name': 'Manjaro Linux', ...}
distro_name = 'manjaro', version = '1512', release_file_id = 'manjaro', release_file_suffix = 'release'

    def _test_outcome(
        self,
        outcome: Dict[str, str],
        distro_name: str = "",
        version: str = "",
        release_file_id: str = "",
        release_file_suffix: str = "release",
    ) -> None:
        release_file_id = release_file_id or distro_name
        distro_release = os.path.join(
            DISTROS_DIR,
            distro_name + version,
            "etc",
            f"{release_file_id}-{release_file_suffix}",
        )
        self.distro = distro.LinuxDistribution(
            include_lsb=False,
            os_release_file="path-to-non-existing-file",
            distro_release_file=distro_release,
        )

        assert self.distro.id() == outcome.get("id", "")
        assert self.distro.name() == outcome.get("name", "")
>       assert self.distro.name(pretty=True) == outcome.get("pretty_name", "")
E       AssertionError: assert 'Manjaro Linux 8' == 'Manjaro Linux'
E
E         - Manjaro Linux
E         + Manjaro Linux 8
E         ?              ++

tests/test_distro.py:899: AssertionError
____________________________________________ TestOverall.test_arch_release _____________________________________________

self = <tests.test_distro.TestOverall object at 0x7f2ad0279350>

    def test_arch_release(self) -> None:
        desired_outcome = {
            "id": "arch",
            "name": "Arch Linux",
            "pretty_name": "Arch Linux",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:1244:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverall object at 0x7f2ad0279350>
outcome = {'id': 'arch', 'name': 'Arch Linux', 'pretty_name': 'Arch Linux'}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'arch'
E
E         - arch

tests/test_distro.py:1210: AssertionError
____________________________________________ TestOverall.test_aix72_release ____________________________________________

self = <tests.test_distro.TestOverall object at 0x7f2ad0279f90>

    def test_aix72_release(self) -> None:
        desired_outcome = {
            "id": "aix",
            "name": "AIX",
            "pretty_name": "AIX 7.2.0.0",
            "version": "7.2.0.0",
            "pretty_version": "7.2.0.0",
            "best_version": "7.2.0.0",
            "major_version": "7",
            "minor_version": "2",
            "build_number": "0",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:1263:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverall object at 0x7f2ad0279f90>
outcome = {'best_version': '7.2.0.0', 'build_number': '0', 'id': 'aix', 'major_version': '7', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'aix'
E
E         - aix

tests/test_distro.py:1210: AssertionError
__________________________________________ TestOverall.test_fedora30_release ___________________________________________

self = <tests.test_distro.TestOverall object at 0x7f2ad027abd0>

    def test_fedora30_release(self) -> None:
        desired_outcome = {
            "id": "fedora",
            "name": "Fedora",
            "pretty_name": "Fedora 30 (Thirty)",
            "version": "30",
            "pretty_version": "30",
            "best_version": "30",
            "codename": "",
            "major_version": "30",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:1427:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverall object at 0x7f2ad027abd0>
outcome = {'best_version': '30', 'codename': '', 'id': 'fedora', 'major_version': '30', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
        assert self.distro.id() == outcome.get("id", "")
        assert self.distro.name() == outcome.get("name", "")
        assert self.distro.name(pretty=True) == outcome.get("pretty_name", "")
        assert self.distro.version() == outcome.get("version", "")
>       assert self.distro.version(pretty=True) == outcome.get("pretty_version", "")
E       AssertionError: assert '30 (Thirty)' == '30'
E
E         - 30
E         + 30 (Thirty)

tests/test_distro.py:1214: AssertionError
___________________________________________ TestOverall.test_mageia5_release ___________________________________________

self = <tests.test_distro.TestOverall object at 0x7f2ad0465750>

    def test_mageia5_release(self) -> None:
        desired_outcome = {
            "id": "mageia",
            "name": "Mageia",
            "pretty_name": "Mageia 5",
            "version": "5",
            "pretty_version": "5 (thornicroft)",
            "best_version": "5",
            "like": "mandriva fedora",
            # TODO: Codename differs between distro release and lsb_release.
            "codename": "thornicroft",
            "major_version": "5",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:1490:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverall object at 0x7f2ad0465750>
outcome = {'best_version': '5', 'codename': 'thornicroft', 'id': 'mageia', 'like': 'mandriva fedora', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
        assert self.distro.id() == outcome.get("id", "")
        assert self.distro.name() == outcome.get("name", "")
>       assert self.distro.name(pretty=True) == outcome.get("pretty_name", "")
E       AssertionError: assert 'Mageia 5 (Official)' == 'Mageia 5'
E
E         - Mageia 5
E         + Mageia 5 (Official)

tests/test_distro.py:1212: AssertionError
_________________________________________ TestOverall.test_manjaro1512_release _________________________________________

self = <tests.test_distro.TestOverall object at 0x7f2ad0464e90>

    def test_manjaro1512_release(self) -> None:
>       self._test_outcome(
            {
                "id": "manjaro",
                "name": "Manjaro Linux",
                "pretty_name": "Manjaro Linux",
                "version": "15.12",
                "pretty_version": "15.12 (Capella)",
                "best_version": "15.12",
                "major_version": "15",
                "minor_version": "12",
                "codename": "Capella",
            }
        )

tests/test_distro.py:1501:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverall object at 0x7f2ad0464e90>
outcome = {'best_version': '15.12', 'codename': 'Capella', 'id': 'manjaro', 'major_version': '15', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
        assert self.distro.id() == outcome.get("id", "")
        assert self.distro.name() == outcome.get("name", "")
        assert self.distro.name(pretty=True) == outcome.get("pretty_name", "")
>       assert self.distro.version() == outcome.get("version", "")
E       AssertionError: assert '' == '15.12'
E
E         - 15.12

tests/test_distro.py:1213: AssertionError
____________________________________________ TestOverall.test_rocky_release ____________________________________________

self = <tests.test_distro.TestOverall object at 0x7f2ad029cc90>

    def test_rocky_release(self) -> None:
        desired_outcome = {
            "id": "rocky",
            "name": "Rocky Linux",
            "pretty_name": "Rocky Linux 8.4 (Green Obsidian)",
            "version": "8.4",
            "pretty_version": "8.4 (Green Obsidian)",
            "best_version": "8.4",
            "like": "rhel centos fedora",
            "codename": "Green Obsidian",
            "major_version": "8",
            "minor_version": "4",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:1687:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverall object at 0x7f2ad029cc90>
outcome = {'best_version': '8.4', 'codename': 'Green Obsidian', 'id': 'rocky', 'like': 'rhel centos fedora', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert 'centos' == 'rocky'
E
E         - rocky
E         + centos

tests/test_distro.py:1210: AssertionError
___________________________________________ TestOverall.test_sles12_release ____________________________________________

self = <tests.test_distro.TestOverall object at 0x7f2ad029cf50>

    def test_sles12_release(self) -> None:
        desired_outcome = {
            "id": "sles",
            "name": "SLES",
            "pretty_name": "SUSE Linux Enterprise Server 12 SP1",
            "version": "12.1",
            "pretty_version": "12.1 (n/a)",
            "best_version": "12.1",
            "codename": "n/a",
            "major_version": "12",
            "minor_version": "1",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:1726:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverall object at 0x7f2ad029cf50>
outcome = {'best_version': '12.1', 'codename': 'n/a', 'id': 'sles', 'major_version': '12', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
        assert self.distro.id() == outcome.get("id", "")
        assert self.distro.name() == outcome.get("name", "")
        assert self.distro.name(pretty=True) == outcome.get("pretty_name", "")
        assert self.distro.version() == outcome.get("version", "")
>       assert self.distro.version(pretty=True) == outcome.get("pretty_version", "")
E       AssertionError: assert '12.1 (s390x)' == '12.1 (n/a)'
E
E         - 12.1 (n/a)
E         + 12.1 (s390x)

tests/test_distro.py:1214: AssertionError
________________________________________ TestOverall.test_mandriva2011_release _________________________________________

self = <tests.test_distro.TestOverall object at 0x7f2ad029f310>

    def test_mandriva2011_release(self) -> None:
        desired_outcome = {
            "id": "mandrivalinux",
            "name": "MandrivaLinux",
            "pretty_name": "Mandriva Linux 2011.0",
            "version": "2011.0",
            "pretty_version": "2011.0 (turtle)",
            "best_version": "2011.0",
            "major_version": "2011",
            "minor_version": "0",
            "codename": "turtle",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:1885:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverall object at 0x7f2ad029f310>
outcome = {'best_version': '2011.0', 'codename': 'turtle', 'id': 'mandrivalinux', 'major_version': '2011', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert 'mandrake' == 'mandrivalinux'
E
E         - mandrivalinux
E         + mandrake

tests/test_distro.py:1210: AssertionError
___________________________________________ TestOverall.test_armbian_release ___________________________________________

self = <tests.test_distro.TestOverall object at 0x7f2ad029e810>

    def test_armbian_release(self) -> None:
        desired_outcome = {
            "id": "debian",
            "codename": "buster",
            "name": "Debian GNU/Linux",
            "pretty_name": "Debian GNU/Linux 10 (buster)",
            "like": "",
            "version": "10",
            "pretty_version": "10 (buster)",
            "best_version": "23.02.2",
            "major_version": "10",
            "minor_version": "",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:1975:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverall object at 0x7f2ad029e810>
outcome = {'best_version': '23.02.2', 'codename': 'buster', 'id': 'debian', 'like': '', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert 'armbian' == 'debian'
E
E         - debian
E         + armbian

tests/test_distro.py:1210: AssertionError
___________________________________ TestOverallWithEtcNotReadable.test_arch_release ____________________________________

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad0284bd0>

    def test_arch_release(self) -> None:
        desired_outcome = {
            "id": "arch",
            "name": "Arch Linux",
            "pretty_name": "Arch Linux",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:1244:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad0284bd0>
outcome = {'id': 'arch', 'name': 'Arch Linux', 'pretty_name': 'Arch Linux'}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'arch'
E
E         - arch

tests/test_distro.py:1210: AssertionError
___________________________________ TestOverallWithEtcNotReadable.test_aix72_release ___________________________________

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad0284510>

    def test_aix72_release(self) -> None:
        desired_outcome = {
            "id": "aix",
            "name": "AIX",
            "pretty_name": "AIX 7.2.0.0",
            "version": "7.2.0.0",
            "pretty_version": "7.2.0.0",
            "best_version": "7.2.0.0",
            "major_version": "7",
            "minor_version": "2",
            "build_number": "0",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:1263:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad0284510>
outcome = {'best_version': '7.2.0.0', 'build_number': '0', 'id': 'aix', 'major_version': '7', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert '' == 'aix'
E
E         - aix

tests/test_distro.py:1210: AssertionError
_________________________________ TestOverallWithEtcNotReadable.test_fedora30_release __________________________________

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad0287c10>

    def test_fedora30_release(self) -> None:
        desired_outcome = {
            "id": "fedora",
            "name": "Fedora",
            "pretty_name": "Fedora 30 (Thirty)",
            "version": "30",
            "pretty_version": "30",
            "best_version": "30",
            "codename": "",
            "major_version": "30",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:1427:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad0287c10>
outcome = {'best_version': '30', 'codename': '', 'id': 'fedora', 'major_version': '30', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
        assert self.distro.id() == outcome.get("id", "")
        assert self.distro.name() == outcome.get("name", "")
        assert self.distro.name(pretty=True) == outcome.get("pretty_name", "")
        assert self.distro.version() == outcome.get("version", "")
>       assert self.distro.version(pretty=True) == outcome.get("pretty_version", "")
E       AssertionError: assert '30 (Thirty)' == '30'
E
E         - 30
E         + 30 (Thirty)

tests/test_distro.py:1214: AssertionError
__________________________________ TestOverallWithEtcNotReadable.test_mageia5_release __________________________________

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad02855d0>

    def test_mageia5_release(self) -> None:
        desired_outcome = {
            "id": "mageia",
            "name": "Mageia",
            "pretty_name": "Mageia 5",
            "version": "5",
            "pretty_version": "5 (thornicroft)",
            "best_version": "5",
            "like": "mandriva fedora",
            # TODO: Codename differs between distro release and lsb_release.
            "codename": "thornicroft",
            "major_version": "5",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:1490:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad02855d0>
outcome = {'best_version': '5', 'codename': 'thornicroft', 'id': 'mageia', 'like': 'mandriva fedora', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
        assert self.distro.id() == outcome.get("id", "")
        assert self.distro.name() == outcome.get("name", "")
>       assert self.distro.name(pretty=True) == outcome.get("pretty_name", "")
E       AssertionError: assert 'Mageia 5 (Official)' == 'Mageia 5'
E
E         - Mageia 5
E         + Mageia 5 (Official)

tests/test_distro.py:1212: AssertionError
________________________________ TestOverallWithEtcNotReadable.test_manjaro1512_release ________________________________

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad029e350>

    def test_manjaro1512_release(self) -> None:
>       self._test_outcome(
            {
                "id": "manjaro",
                "name": "Manjaro Linux",
                "pretty_name": "Manjaro Linux",
                "version": "15.12",
                "pretty_version": "15.12 (Capella)",
                "best_version": "15.12",
                "major_version": "15",
                "minor_version": "12",
                "codename": "Capella",
            }
        )

tests/test_distro.py:1501:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad029e350>
outcome = {'best_version': '15.12', 'codename': 'Capella', 'id': 'manjaro', 'major_version': '15', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
        assert self.distro.id() == outcome.get("id", "")
        assert self.distro.name() == outcome.get("name", "")
        assert self.distro.name(pretty=True) == outcome.get("pretty_name", "")
>       assert self.distro.version() == outcome.get("version", "")
E       AssertionError: assert '' == '15.12'
E
E         - 15.12

tests/test_distro.py:1213: AssertionError
___________________________________ TestOverallWithEtcNotReadable.test_rocky_release ___________________________________

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad02aea10>

    def test_rocky_release(self) -> None:
        desired_outcome = {
            "id": "rocky",
            "name": "Rocky Linux",
            "pretty_name": "Rocky Linux 8.4 (Green Obsidian)",
            "version": "8.4",
            "pretty_version": "8.4 (Green Obsidian)",
            "best_version": "8.4",
            "like": "rhel centos fedora",
            "codename": "Green Obsidian",
            "major_version": "8",
            "minor_version": "4",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:1687:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad02aea10>
outcome = {'best_version': '8.4', 'codename': 'Green Obsidian', 'id': 'rocky', 'like': 'rhel centos fedora', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert 'centos' == 'rocky'
E
E         - rocky
E         + centos

tests/test_distro.py:1210: AssertionError
__________________________________ TestOverallWithEtcNotReadable.test_sles12_release ___________________________________

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad02aef90>

    def test_sles12_release(self) -> None:
        desired_outcome = {
            "id": "sles",
            "name": "SLES",
            "pretty_name": "SUSE Linux Enterprise Server 12 SP1",
            "version": "12.1",
            "pretty_version": "12.1 (n/a)",
            "best_version": "12.1",
            "codename": "n/a",
            "major_version": "12",
            "minor_version": "1",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:1726:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad02aef90>
outcome = {'best_version': '12.1', 'codename': 'n/a', 'id': 'sles', 'major_version': '12', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
        assert self.distro.id() == outcome.get("id", "")
        assert self.distro.name() == outcome.get("name", "")
        assert self.distro.name(pretty=True) == outcome.get("pretty_name", "")
        assert self.distro.version() == outcome.get("version", "")
>       assert self.distro.version(pretty=True) == outcome.get("pretty_version", "")
E       AssertionError: assert '12.1 (s390x)' == '12.1 (n/a)'
E
E         - 12.1 (n/a)
E         + 12.1 (s390x)

tests/test_distro.py:1214: AssertionError
_______________________________ TestOverallWithEtcNotReadable.test_mandriva2011_release ________________________________

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad03cec90>

    def test_mandriva2011_release(self) -> None:
        desired_outcome = {
            "id": "mandrivalinux",
            "name": "MandrivaLinux",
            "pretty_name": "Mandriva Linux 2011.0",
            "version": "2011.0",
            "pretty_version": "2011.0 (turtle)",
            "best_version": "2011.0",
            "major_version": "2011",
            "minor_version": "0",
            "codename": "turtle",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:1885:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad03cec90>
outcome = {'best_version': '2011.0', 'codename': 'turtle', 'id': 'mandrivalinux', 'major_version': '2011', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert 'mandrake' == 'mandrivalinux'
E
E         - mandrivalinux
E         + mandrake

tests/test_distro.py:1210: AssertionError
__________________________________ TestOverallWithEtcNotReadable.test_armbian_release __________________________________

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad03cd650>

    def test_armbian_release(self) -> None:
        desired_outcome = {
            "id": "debian",
            "codename": "buster",
            "name": "Debian GNU/Linux",
            "pretty_name": "Debian GNU/Linux 10 (buster)",
            "like": "",
            "version": "10",
            "pretty_version": "10 (buster)",
            "best_version": "23.02.2",
            "major_version": "10",
            "minor_version": "",
        }
>       self._test_outcome(desired_outcome)

tests/test_distro.py:1975:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <tests.test_distro.TestOverallWithEtcNotReadable object at 0x7f2ad03cd650>
outcome = {'best_version': '23.02.2', 'codename': 'buster', 'id': 'debian', 'like': '', ...}

    def _test_outcome(self, outcome: Dict[str, str]) -> None:
>       assert self.distro.id() == outcome.get("id", "")
E       AssertionError: assert 'armbian' == 'debian'
E
E         - debian
E         + armbian

tests/test_distro.py:1210: AssertionError
__________________________________________________ TestInfo.test_none __________________________________________________

self = <tests.test_distro.TestInfo object at 0x7f2ad03cf4d0>

    def test_none(self) -> None:
        def _test_none(info: distro.InfoDict) -> None:
            assert info["id"] == ""
            assert info["version"] == ""
            assert info["like"] == ""
            assert info["version_parts"]["major"] == ""
            assert info["version_parts"]["minor"] == ""
            assert info["version_parts"]["build_number"] == ""
            assert info["codename"] == ""

        _distro = distro.LinuxDistribution(
            include_lsb=False,
            os_release_file="path-to-non-existing-file",
            distro_release_file="path-to-non-existing-file",
        )

        info = _distro.info()
>       _test_none(info)

tests/test_distro.py:2099:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

info = {'codename': '', 'id': 'cloudlinux', 'like': '', 'version': '8', ...}

    def _test_none(info: distro.InfoDict) -> None:
>       assert info["id"] == ""
E       AssertionError: assert 'cloudlinux' == ''
E
E         + cloudlinux

tests/test_distro.py:2084: AssertionError
___________________________________________ TestInfo.test_linux_distribution ___________________________________________

self = <tests.test_distro.TestInfo object at 0x7f2ad03cf2d0>

    def test_linux_distribution(self) -> None:
        _distro = distro.LinuxDistribution(
            include_lsb=False, os_release_file=self.ubuntu14_os_release
        )
        i = _distro.linux_distribution()
        assert i == ("Ubuntu", "14.04", "Trusty Tahr")

        _distro = distro.LinuxDistribution(
            include_lsb=False, os_release_file=self.fedora30_os_release
        )
        i = _distro.linux_distribution()
>       assert i == ("Fedora", "30", "Thirty")
E       AssertionError: assert ('CloudLinux', '8', '') == ('Fedora', '30', 'Thirty')
E
E         At index 0 diff: 'CloudLinux' != 'Fedora'
E         Use -v to get more diff

tests/test_distro.py:2121: AssertionError

---------- coverage: platform linux, python 3.11.9-final-0 -----------
Name                                                         Stmts   Miss Branch BrPart  Cover   Missing
--------------------------------------------------------------------------------------------------------
.tox/py311/lib/python3.11/site-packages/distro/__init__.py       3      0      0      0   100%
.tox/py311/lib/python3.11/site-packages/distro/__main__.py       1      0      0      0   100%
.tox/py311/lib/python3.11/site-packages/distro/distro.py       378     41    139      9    88%   55-57, 634-649, 790, 853, 908, 914, 1059, 1176-1177, 1193-1201, 1223, 1242-1243, 1247, 1255->exit, 1275-1280, 1284-1288, 1401->1403
--------------------------------------------------------------------------------------------------------
TOTAL                                                          382     41    139      9    88%

=============================================== short test summary info ================================================
FAILED tests/test_distro.py::TestOSRelease::test_arch_os_release - AssertionError: assert '' == 'arch'
FAILED tests/test_distro.py::TestOSRelease::test_fedora23_os_release - AssertionError: assert '' == 'fedora'
FAILED tests/test_distro.py::TestOSRelease::test_fedora30_os_release - AssertionError: assert '' == 'fedora'
FAILED tests/test_distro.py::TestOSRelease::test_mageia5_os_release - AssertionError: assert '' == 'mageia'
FAILED tests/test_distro.py::TestOSRelease::test_rocky_os_release - AssertionError: assert '' == 'rocky'
FAILED tests/test_distro.py::TestWithRootDir::test_arch_os_release - AssertionError: assert '' == 'arch'
FAILED tests/test_distro.py::TestWithRootDir::test_fedora23_os_release - AssertionError: assert '' == 'fedora'
FAILED tests/test_distro.py::TestWithRootDir::test_fedora30_os_release - AssertionError: assert '' == 'fedora'
FAILED tests/test_distro.py::TestWithRootDir::test_mageia5_os_release - AssertionError: assert '' == 'mageia'
FAILED tests/test_distro.py::TestWithRootDir::test_rocky_os_release - AssertionError: assert '' == 'rocky'
FAILED tests/test_distro.py::TestLSBRelease::test_linuxmint17_lsb_release - AssertionError: assert '' == 'linuxmint'
FAILED tests/test_distro.py::TestLSBRelease::test_manjaro1512_lsb_release - AssertionError: assert '' == 'manjarolinux'
FAILED tests/test_distro.py::TestLSBRelease::test_cloudlinuxvm7_uname - AssertionError: assert '' == 'cloudlinux'
FAILED tests/test_distro.py::TestLSBRelease::test_cloudlinuxvm8_uname - AssertionError: assert '' == 'cloudlinux'
FAILED tests/test_distro.py::TestLSBRelease::test_cloudlinuxvm9_uname - AssertionError: assert '' == 'cloudlinux'
FAILED tests/test_distro.py::TestLSBRelease::test_openbsd62_uname - AssertionError: assert '' == 'openbsd'
FAILED tests/test_distro.py::TestLSBRelease::test_netbsd711_uname - AssertionError: assert '' == 'netbsd'
FAILED tests/test_distro.py::TestLSBRelease::test_freebsd111_uname - AssertionError: assert '' == 'freebsd'
FAILED tests/test_distro.py::TestLSBRelease::test_midnightbsd12_uname - AssertionError: assert '' == 'midnightbsd'
FAILED tests/test_distro.py::TestLSBRelease::test_ubuntu14normal_lsb_release - AssertionError: assert '' == 'ubuntu'
FAILED tests/test_distro.py::TestLSBRelease::test_ubuntu14nomodules_lsb_release - AssertionError: assert '' == 'ubuntu'
FAILED tests/test_distro.py::TestLSBRelease::test_trailingblanks_lsb_release - AssertionError: assert '' == 'ubuntu'
FAILED tests/test_distro.py::TestSpecialRelease::test_empty_release - AssertionError: assert 'CloudLinux' == ''
FAILED tests/test_distro.py::TestDistroRelease::test_arch_dist_release - AssertionError: assert 'CloudLinux' == ''
FAILED tests/test_distro.py::TestDistroRelease::test_manjaro1512_dist_release - AssertionError: assert 'Manjaro Linux 8' == 'Manjaro Linux'
FAILED tests/test_distro.py::TestOverall::test_arch_release - AssertionError: assert '' == 'arch'
FAILED tests/test_distro.py::TestOverall::test_aix72_release - AssertionError: assert '' == 'aix'
FAILED tests/test_distro.py::TestOverall::test_fedora30_release - AssertionError: assert '30 (Thirty)' == '30'
FAILED tests/test_distro.py::TestOverall::test_mageia5_release - AssertionError: assert 'Mageia 5 (Official)' == 'Mageia 5'
FAILED tests/test_distro.py::TestOverall::test_manjaro1512_release - AssertionError: assert '' == '15.12'
FAILED tests/test_distro.py::TestOverall::test_rocky_release - AssertionError: assert 'centos' == 'rocky'
FAILED tests/test_distro.py::TestOverall::test_sles12_release - AssertionError: assert '12.1 (s390x)' == '12.1 (n/a)'
FAILED tests/test_distro.py::TestOverall::test_mandriva2011_release - AssertionError: assert 'mandrake' == 'mandrivalinux'
FAILED tests/test_distro.py::TestOverall::test_armbian_release - AssertionError: assert 'armbian' == 'debian'
FAILED tests/test_distro.py::TestOverallWithEtcNotReadable::test_arch_release - AssertionError: assert '' == 'arch'
FAILED tests/test_distro.py::TestOverallWithEtcNotReadable::test_aix72_release - AssertionError: assert '' == 'aix'
FAILED tests/test_distro.py::TestOverallWithEtcNotReadable::test_fedora30_release - AssertionError: assert '30 (Thirty)' == '30'
FAILED tests/test_distro.py::TestOverallWithEtcNotReadable::test_mageia5_release - AssertionError: assert 'Mageia 5 (Official)' == 'Mageia 5'
FAILED tests/test_distro.py::TestOverallWithEtcNotReadable::test_manjaro1512_release - AssertionError: assert '' == '15.12'
FAILED tests/test_distro.py::TestOverallWithEtcNotReadable::test_rocky_release - AssertionError: assert 'centos' == 'rocky'
FAILED tests/test_distro.py::TestOverallWithEtcNotReadable::test_sles12_release - AssertionError: assert '12.1 (s390x)' == '12.1 (n/a)'
FAILED tests/test_distro.py::TestOverallWithEtcNotReadable::test_mandriva2011_release - AssertionError: assert 'mandrake' == 'mandrivalinux'
FAILED tests/test_distro.py::TestOverallWithEtcNotReadable::test_armbian_release - AssertionError: assert 'armbian' == 'debian'
FAILED tests/test_distro.py::TestInfo::test_none - AssertionError: assert 'cloudlinux' == ''
FAILED tests/test_distro.py::TestInfo::test_linux_distribution - AssertionError: assert ('CloudLinux', '8', '') == ('Fedora', '30', 'Thirty')
============================================ 45 failed, 194 passed in 7.30s ============================================
py311: exit 1 (7.70 seconds) /home/my_name/py/my_py/distro> pytest --cov-report term-missing --cov distro pid=3335402
py311: FAIL ✖ in 1 minute 7.11 seconds
py312: skipped because could not find python interpreter with spec(s): py312
py312: SKIP ⚠ in 0.01 seconds
pypy3: skipped because could not find python interpreter with spec(s): pypy3
  lint: OK (278.20=setup[50.83]+cmd[227.37] seconds)
  py36: SKIP (0.59 seconds)
  py37: SKIP (0.01 seconds)
  py38: SKIP (0.01 seconds)
  py39: SKIP (0.01 seconds)
  py310: SKIP (0.01 seconds)
  py311: FAIL code 1 (67.11=setup[59.41]+cmd[7.70] seconds)
  py312: SKIP (0.01 seconds)
  pypy3: SKIP (0.52 seconds)
  evaluation failed :( (346.55 seconds)

@HorlogeSkynet
Copy link
Member Author

Your setup procedure looks OK, no idea why all those cases fail (tests are passing in my environment, as well as in CI)...
Maybe your potato got an LSM or another security measure which prevents some scripts execution or so ?

You could also simply try running the module from sources :

cd src/
python3 -m distro -j

Thanks again ! Bye 👋

@NebularNerd
Copy link

Testing python3 -m distro -j gives:

{
    "codename": "",
    "id": "cloudlinux",
    "like": "",
    "version": "8",
    "version_parts": {
        "build_number": "",
        "major": "8",
        "minor": ""
    }
}

Truly GoDaddy 🥔's are special.

@HorlogeSkynet HorlogeSkynet added this to the v1.11.0 milestone Aug 22, 2024
@HorlogeSkynet
Copy link
Member Author

Up @python-distro/maintainers 🙏

@HorlogeSkynet
Copy link
Member Author

Up @python-distro/maintainers 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants