From b2783c85f2e35b6558ac2d4eedfee3409704c8e4 Mon Sep 17 00:00:00 2001 From: nir0s Date: Fri, 14 Nov 2025 20:48:45 +0200 Subject: [PATCH 1/7] Add test support for Ubuntu 24.04 LTS (Noble Numbat) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds test resources and test case for Ubuntu 24.04.3 LTS, the latest Ubuntu LTS release as of 2025. Includes os-release, lsb-release, and debian_version files for proper distribution identification. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../distros/ubuntu24/etc/debian_version | 1 + .../distros/ubuntu24/etc/lsb-release | 4 +++ .../resources/distros/ubuntu24/etc/os-release | 13 ++++++++ tests/test_distro.py | 33 +++++++++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 tests/resources/distros/ubuntu24/etc/debian_version create mode 100644 tests/resources/distros/ubuntu24/etc/lsb-release create mode 100644 tests/resources/distros/ubuntu24/etc/os-release diff --git a/tests/resources/distros/ubuntu24/etc/debian_version b/tests/resources/distros/ubuntu24/etc/debian_version new file mode 100644 index 0000000..201ac20 --- /dev/null +++ b/tests/resources/distros/ubuntu24/etc/debian_version @@ -0,0 +1 @@ +trixie/sid diff --git a/tests/resources/distros/ubuntu24/etc/lsb-release b/tests/resources/distros/ubuntu24/etc/lsb-release new file mode 100644 index 0000000..6169539 --- /dev/null +++ b/tests/resources/distros/ubuntu24/etc/lsb-release @@ -0,0 +1,4 @@ +DISTRIB_ID=Ubuntu +DISTRIB_RELEASE=24.04 +DISTRIB_CODENAME=noble +DISTRIB_DESCRIPTION="Ubuntu 24.04.3 LTS" diff --git a/tests/resources/distros/ubuntu24/etc/os-release b/tests/resources/distros/ubuntu24/etc/os-release new file mode 100644 index 0000000..d8528ec --- /dev/null +++ b/tests/resources/distros/ubuntu24/etc/os-release @@ -0,0 +1,13 @@ +PRETTY_NAME="Ubuntu 24.04.3 LTS" +NAME="Ubuntu" +VERSION_ID="24.04" +VERSION="24.04.3 LTS (Noble Numbat)" +VERSION_CODENAME=noble +ID=ubuntu +ID_LIKE=debian +HOME_URL="https://www.ubuntu.com/" +SUPPORT_URL="https://help.ubuntu.com/" +BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" +PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" +UBUNTU_CODENAME=noble +LOGO=ubuntu-logo diff --git a/tests/test_distro.py b/tests/test_distro.py index 439a152..f77601e 100644 --- a/tests/test_distro.py +++ b/tests/test_distro.py @@ -462,6 +462,19 @@ def test_ubuntu16_os_release(self) -> None: } self._test_outcome(desired_outcome) + def test_ubuntu24_os_release(self) -> None: + desired_outcome = { + "id": "ubuntu", + "name": "Ubuntu", + "pretty_name": "Ubuntu 24.04.3 LTS", + "version": "24.04", + "pretty_version": "24.04 (noble)", + "best_version": "24.04.3", + "like": "debian", + "codename": "noble", + } + self._test_outcome(desired_outcome) + def test_amazon2016_os_release(self) -> None: desired_outcome = { "id": "amzn", @@ -1752,6 +1765,26 @@ def test_ubuntu16_release(self) -> None: # release file: self._test_non_existing_release_file() + def test_ubuntu24_release(self) -> None: + desired_outcome = { + "id": "ubuntu", + "name": "Ubuntu", + "pretty_name": "Ubuntu 24.04.3 LTS", + "version": "24.04", + "pretty_version": "24.04 (noble)", + "best_version": "24.04.3", + "like": "debian", + "codename": "noble", + "major_version": "24", + "minor_version": "04", + } + self._test_outcome(desired_outcome) + + # Test the info from the searched distro release file + # Does not have one; /etc/debian_version is not considered a distro + # release file: + self._test_non_existing_release_file() + def test_amazon2016_release(self) -> None: desired_outcome = { "id": "amzn", From 528341627492aac4d121cf96135bfcad0fd63baa Mon Sep 17 00:00:00 2001 From: nir0s Date: Fri, 14 Nov 2025 20:49:21 +0200 Subject: [PATCH 2/7] Add test support for Debian 13 (Trixie) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds test resources and test case for Debian 13 "Trixie", the current stable release as of 2025. Includes os-release, debian_version, and lsb_release script for proper distribution identification. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../distros/debian13/bin/lsb_release | 21 +++++++++++++++ .../distros/debian13/etc/debian_version | 1 + .../resources/distros/debian13/etc/os-release | 10 +++++++ tests/test_distro.py | 26 +++++++++++++++++++ 4 files changed, 58 insertions(+) create mode 100644 tests/resources/distros/debian13/bin/lsb_release create mode 100644 tests/resources/distros/debian13/etc/debian_version create mode 100644 tests/resources/distros/debian13/etc/os-release diff --git a/tests/resources/distros/debian13/bin/lsb_release b/tests/resources/distros/debian13/bin/lsb_release new file mode 100644 index 0000000..fa82ab8 --- /dev/null +++ b/tests/resources/distros/debian13/bin/lsb_release @@ -0,0 +1,21 @@ +#!/bin/bash +# +# lsb_release command for testing the ld module. +# Only the -a option is supported. +# +# This version of the lsb_release command works without a corresponding +# etc/lsb-release file. +# + +if [[ "$@" != "-a" ]]; then + echo "Usage: lsb_release -a" + exit 2 +fi + +echo "No LSB modules are available." +echo "Distributor ID: Debian" +echo "Description: Debian GNU/Linux 13 (trixie)" +echo "Release: 13" +echo "Codename: trixie" + +exit 0 diff --git a/tests/resources/distros/debian13/etc/debian_version b/tests/resources/distros/debian13/etc/debian_version new file mode 100644 index 0000000..cdb4ac4 --- /dev/null +++ b/tests/resources/distros/debian13/etc/debian_version @@ -0,0 +1 @@ +13.1 diff --git a/tests/resources/distros/debian13/etc/os-release b/tests/resources/distros/debian13/etc/os-release new file mode 100644 index 0000000..3325e87 --- /dev/null +++ b/tests/resources/distros/debian13/etc/os-release @@ -0,0 +1,10 @@ +PRETTY_NAME="Debian GNU/Linux 13 (trixie)" +NAME="Debian GNU/Linux" +VERSION_ID="13" +VERSION="13 (trixie)" +VERSION_CODENAME=trixie +DEBIAN_VERSION_FULL=13.1 +ID=debian +HOME_URL="https://www.debian.org/" +SUPPORT_URL="https://www.debian.org/support" +BUG_REPORT_URL="https://bugs.debian.org/" diff --git a/tests/test_distro.py b/tests/test_distro.py index f77601e..aa79a1c 100644 --- a/tests/test_distro.py +++ b/tests/test_distro.py @@ -233,6 +233,18 @@ def test_debian10_os_release(self) -> None: } self._test_outcome(desired_outcome) + def test_debian13_os_release(self) -> None: + desired_outcome = { + "id": "debian", + "name": "Debian GNU/Linux", + "pretty_name": "Debian GNU/Linux 13 (trixie)", + "version": "13", + "pretty_version": "13 (trixie)", + "best_version": "13.1", + "codename": "trixie", + } + self._test_outcome(desired_outcome) + def test_debiantesting_os_release(self) -> None: desired_outcome = { "id": "debian", @@ -1341,6 +1353,20 @@ def test_debian10_release(self) -> None: self._test_outcome(desired_outcome) self._test_non_existing_release_file() + def test_debian13_release(self) -> None: + desired_outcome = { + "id": "debian", + "name": "Debian GNU/Linux", + "pretty_name": "Debian GNU/Linux 13 (trixie)", + "version": "13", + "pretty_version": "13 (trixie)", + "best_version": "13.1", + "codename": "trixie", + "major_version": "13", + } + self._test_outcome(desired_outcome) + self._test_non_existing_release_file() + def test_debiantesting_release(self) -> None: desired_outcome = { "id": "debian", From d979265282bed7fab7b63701568050e3bd33a38f Mon Sep 17 00:00:00 2001 From: nir0s Date: Fri, 14 Nov 2025 20:49:57 +0200 Subject: [PATCH 3/7] Add test support for Fedora 42 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds test resources and test case for Fedora 42, released in April 2025. Includes fedora-release and os-release files with metadata for this modern Fedora release. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../distros/fedora42/etc/fedora-release | 1 + .../distros/fedora42/usr/lib/os-release | 20 +++++++++++ tests/test_distro.py | 33 +++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 tests/resources/distros/fedora42/etc/fedora-release create mode 100644 tests/resources/distros/fedora42/usr/lib/os-release diff --git a/tests/resources/distros/fedora42/etc/fedora-release b/tests/resources/distros/fedora42/etc/fedora-release new file mode 100644 index 0000000..fe9897e --- /dev/null +++ b/tests/resources/distros/fedora42/etc/fedora-release @@ -0,0 +1 @@ +Fedora release 42 (Forty Two) diff --git a/tests/resources/distros/fedora42/usr/lib/os-release b/tests/resources/distros/fedora42/usr/lib/os-release new file mode 100644 index 0000000..8a9e09e --- /dev/null +++ b/tests/resources/distros/fedora42/usr/lib/os-release @@ -0,0 +1,20 @@ +NAME="Fedora Linux" +VERSION="42 (Forty Two)" +ID=fedora +VERSION_ID=42 +VERSION_CODENAME="" +PLATFORM_ID="platform:f42" +PRETTY_NAME="Fedora Linux 42 (Forty Two)" +ANSI_COLOR="0;38;2;60;110;180" +LOGO=fedora-logo-icon +CPE_NAME="cpe:/o:fedoraproject:fedora:42" +DEFAULT_HOSTNAME="fedora" +HOME_URL="https://fedoraproject.org/" +DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f42/" +SUPPORT_URL="https://ask.fedoraproject.org/" +BUG_REPORT_URL="https://bugzilla.redhat.com/" +REDHAT_BUGZILLA_PRODUCT="Fedora" +REDHAT_BUGZILLA_PRODUCT_VERSION=42 +REDHAT_SUPPORT_PRODUCT="Fedora" +REDHAT_SUPPORT_PRODUCT_VERSION=42 +SUPPORT_END=2026-05-13 diff --git a/tests/test_distro.py b/tests/test_distro.py index aa79a1c..0a950c1 100644 --- a/tests/test_distro.py +++ b/tests/test_distro.py @@ -297,6 +297,18 @@ def test_fedora30_os_release(self) -> None: } self._test_outcome(desired_outcome) + def test_fedora42_os_release(self) -> None: + desired_outcome = { + "id": "fedora", + "name": "Fedora Linux", + "pretty_name": "Fedora Linux 42 (Forty Two)", + "version": "42", + "pretty_version": "42", + "best_version": "42", + "codename": "", + } + self._test_outcome(desired_outcome) + def test_guix_os_release(self) -> None: desired_outcome = { "id": "guix", @@ -1452,6 +1464,27 @@ def test_fedora30_release(self) -> None: } self._test_release_file_info("fedora-release", desired_info) + def test_fedora42_release(self) -> None: + desired_outcome = { + "id": "fedora", + "name": "Fedora Linux", + "pretty_name": "Fedora Linux 42 (Forty Two)", + "version": "42", + "pretty_version": "42", + "best_version": "42", + "codename": "", + "major_version": "42", + } + self._test_outcome(desired_outcome) + + desired_info = { + "id": "fedora", + "name": "Fedora", + "version_id": "42", + "codename": "Forty Two", + } + self._test_release_file_info("fedora-release", desired_info) + def test_kvmibm1_release(self) -> None: desired_outcome = { "id": "kvmibm", From 60b448f2f8199f28709114098059000a46a0c22d Mon Sep 17 00:00:00 2001 From: nir0s Date: Fri, 14 Nov 2025 20:51:06 +0200 Subject: [PATCH 4/7] Add test support for AlmaLinux 10 (Purple Lion) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds test resources and test case for AlmaLinux 10.0, the latest major release as of 2025. This RHEL-compatible distribution includes support extending until 2035. Includes release files, os-release, and CPE metadata for proper identification. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../distros/almalinux10/etc/almalinux-release | 1 + .../etc/almalinux-release-upstream | 1 + .../distros/almalinux10/etc/centos-release | 1 + .../distros/almalinux10/etc/os-release | 1 + .../distros/almalinux10/etc/redhat-release | 1 + .../distros/almalinux10/etc/system-release | 1 + .../almalinux10/etc/system-release-cpe | 1 + .../almalinux10/usr/lib/almalinux-release | 1 + .../distros/almalinux10/usr/lib/os-release | 21 +++++++++++ tests/test_distro.py | 36 +++++++++++++++++++ 10 files changed, 65 insertions(+) create mode 100644 tests/resources/distros/almalinux10/etc/almalinux-release create mode 100644 tests/resources/distros/almalinux10/etc/almalinux-release-upstream create mode 120000 tests/resources/distros/almalinux10/etc/centos-release create mode 120000 tests/resources/distros/almalinux10/etc/os-release create mode 120000 tests/resources/distros/almalinux10/etc/redhat-release create mode 120000 tests/resources/distros/almalinux10/etc/system-release create mode 100644 tests/resources/distros/almalinux10/etc/system-release-cpe create mode 100644 tests/resources/distros/almalinux10/usr/lib/almalinux-release create mode 100644 tests/resources/distros/almalinux10/usr/lib/os-release diff --git a/tests/resources/distros/almalinux10/etc/almalinux-release b/tests/resources/distros/almalinux10/etc/almalinux-release new file mode 100644 index 0000000..c028fda --- /dev/null +++ b/tests/resources/distros/almalinux10/etc/almalinux-release @@ -0,0 +1 @@ +AlmaLinux release 10.0 (Purple Lion) diff --git a/tests/resources/distros/almalinux10/etc/almalinux-release-upstream b/tests/resources/distros/almalinux10/etc/almalinux-release-upstream new file mode 100644 index 0000000..41cb96d --- /dev/null +++ b/tests/resources/distros/almalinux10/etc/almalinux-release-upstream @@ -0,0 +1 @@ +Derived from Red Hat Enterprise Linux 10.0 diff --git a/tests/resources/distros/almalinux10/etc/centos-release b/tests/resources/distros/almalinux10/etc/centos-release new file mode 120000 index 0000000..1fe6ce0 --- /dev/null +++ b/tests/resources/distros/almalinux10/etc/centos-release @@ -0,0 +1 @@ +almalinux-release \ No newline at end of file diff --git a/tests/resources/distros/almalinux10/etc/os-release b/tests/resources/distros/almalinux10/etc/os-release new file mode 120000 index 0000000..c4c75b4 --- /dev/null +++ b/tests/resources/distros/almalinux10/etc/os-release @@ -0,0 +1 @@ +../usr/lib/os-release \ No newline at end of file diff --git a/tests/resources/distros/almalinux10/etc/redhat-release b/tests/resources/distros/almalinux10/etc/redhat-release new file mode 120000 index 0000000..1fe6ce0 --- /dev/null +++ b/tests/resources/distros/almalinux10/etc/redhat-release @@ -0,0 +1 @@ +almalinux-release \ No newline at end of file diff --git a/tests/resources/distros/almalinux10/etc/system-release b/tests/resources/distros/almalinux10/etc/system-release new file mode 120000 index 0000000..1fe6ce0 --- /dev/null +++ b/tests/resources/distros/almalinux10/etc/system-release @@ -0,0 +1 @@ +almalinux-release \ No newline at end of file diff --git a/tests/resources/distros/almalinux10/etc/system-release-cpe b/tests/resources/distros/almalinux10/etc/system-release-cpe new file mode 100644 index 0000000..44ce5c2 --- /dev/null +++ b/tests/resources/distros/almalinux10/etc/system-release-cpe @@ -0,0 +1 @@ +cpe:/o:almalinux:almalinux:10::baseos diff --git a/tests/resources/distros/almalinux10/usr/lib/almalinux-release b/tests/resources/distros/almalinux10/usr/lib/almalinux-release new file mode 100644 index 0000000..c028fda --- /dev/null +++ b/tests/resources/distros/almalinux10/usr/lib/almalinux-release @@ -0,0 +1 @@ +AlmaLinux release 10.0 (Purple Lion) diff --git a/tests/resources/distros/almalinux10/usr/lib/os-release b/tests/resources/distros/almalinux10/usr/lib/os-release new file mode 100644 index 0000000..9dec234 --- /dev/null +++ b/tests/resources/distros/almalinux10/usr/lib/os-release @@ -0,0 +1,21 @@ +NAME="AlmaLinux" +VERSION="10.0 (Purple Lion)" +ID="almalinux" +ID_LIKE="rhel centos fedora" +VERSION_ID="10.0" +PLATFORM_ID="platform:el10" +PRETTY_NAME="AlmaLinux 10.0 (Purple Lion)" +ANSI_COLOR="0;34" +LOGO="fedora-logo-icon" +CPE_NAME="cpe:/o:almalinux:almalinux:10::baseos" +HOME_URL="https://almalinux.org/" +DOCUMENTATION_URL="https://wiki.almalinux.org/" +VENDOR_NAME="AlmaLinux" +VENDOR_URL="https://almalinux.org/" +BUG_REPORT_URL="https://bugs.almalinux.org/" + +ALMALINUX_MANTISBT_PROJECT="AlmaLinux-10" +ALMALINUX_MANTISBT_PROJECT_VERSION="10.0" +REDHAT_SUPPORT_PRODUCT="AlmaLinux" +REDHAT_SUPPORT_PRODUCT_VERSION="10.0" +SUPPORT_END=2035-06-01 diff --git a/tests/test_distro.py b/tests/test_distro.py index 0a950c1..caa6404 100644 --- a/tests/test_distro.py +++ b/tests/test_distro.py @@ -438,6 +438,19 @@ def test_rocky_os_release(self) -> None: } self._test_outcome(desired_outcome) + def test_almalinux10_os_release(self) -> None: + desired_outcome = { + "id": "almalinux", + "name": "AlmaLinux", + "pretty_name": "AlmaLinux 10.0 (Purple Lion)", + "version": "10.0", + "pretty_version": "10.0 (Purple Lion)", + "best_version": "10.0", + "like": "rhel centos fedora", + "codename": "Purple Lion", + } + self._test_outcome(desired_outcome) + def test_slackware14_os_release(self) -> None: desired_outcome = { "id": "slackware", @@ -1745,6 +1758,29 @@ def test_rocky_release(self) -> None: } self._test_release_file_info("centos-release", desired_info) + def test_almalinux10_release(self) -> None: + desired_outcome = { + "id": "almalinux", + "name": "AlmaLinux", + "pretty_name": "AlmaLinux 10.0 (Purple Lion)", + "version": "10.0", + "pretty_version": "10.0 (Purple Lion)", + "best_version": "10.0", + "like": "rhel centos fedora", + "codename": "Purple Lion", + "major_version": "10", + "minor_version": "0", + } + self._test_outcome(desired_outcome) + + desired_info = { + "id": "almalinux", + "name": "AlmaLinux", + "version_id": "10.0", + "codename": "Purple Lion", + } + self._test_release_file_info("almalinux-release", desired_info) + def test_slackware14_release(self) -> None: desired_outcome = { "id": "slackware", From 01e407d7fe9be9facf53ef07f7e09e8f90a21c49 Mon Sep 17 00:00:00 2001 From: nir0s Date: Fri, 14 Nov 2025 20:51:29 +0200 Subject: [PATCH 5/7] Add test support for Rocky Linux 9.3 (Blue Onyx) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds test resources and test case for Rocky Linux 9.3, a stable RHEL clone with support until 2032. Includes rocky-release files, upstream attribution, CPE metadata, and os-release for proper distribution identification. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../distros/rocky9/etc/centos-release | 1 + tests/resources/distros/rocky9/etc/os-release | 1 + .../distros/rocky9/etc/redhat-release | 1 + .../distros/rocky9/etc/rocky-release | 1 + .../distros/rocky9/etc/rocky-release-upstream | 1 + .../distros/rocky9/etc/system-release | 1 + .../distros/rocky9/etc/system-release-cpe | 1 + .../distros/rocky9/usr/lib/os-release | 17 +++++++++ .../distros/rocky9/usr/lib/rocky-release | 1 + tests/test_distro.py | 36 +++++++++++++++++++ 10 files changed, 61 insertions(+) create mode 120000 tests/resources/distros/rocky9/etc/centos-release create mode 120000 tests/resources/distros/rocky9/etc/os-release create mode 120000 tests/resources/distros/rocky9/etc/redhat-release create mode 100644 tests/resources/distros/rocky9/etc/rocky-release create mode 100644 tests/resources/distros/rocky9/etc/rocky-release-upstream create mode 120000 tests/resources/distros/rocky9/etc/system-release create mode 100644 tests/resources/distros/rocky9/etc/system-release-cpe create mode 100644 tests/resources/distros/rocky9/usr/lib/os-release create mode 100644 tests/resources/distros/rocky9/usr/lib/rocky-release diff --git a/tests/resources/distros/rocky9/etc/centos-release b/tests/resources/distros/rocky9/etc/centos-release new file mode 120000 index 0000000..780b78a --- /dev/null +++ b/tests/resources/distros/rocky9/etc/centos-release @@ -0,0 +1 @@ +rocky-release \ No newline at end of file diff --git a/tests/resources/distros/rocky9/etc/os-release b/tests/resources/distros/rocky9/etc/os-release new file mode 120000 index 0000000..c4c75b4 --- /dev/null +++ b/tests/resources/distros/rocky9/etc/os-release @@ -0,0 +1 @@ +../usr/lib/os-release \ No newline at end of file diff --git a/tests/resources/distros/rocky9/etc/redhat-release b/tests/resources/distros/rocky9/etc/redhat-release new file mode 120000 index 0000000..780b78a --- /dev/null +++ b/tests/resources/distros/rocky9/etc/redhat-release @@ -0,0 +1 @@ +rocky-release \ No newline at end of file diff --git a/tests/resources/distros/rocky9/etc/rocky-release b/tests/resources/distros/rocky9/etc/rocky-release new file mode 100644 index 0000000..a969ec0 --- /dev/null +++ b/tests/resources/distros/rocky9/etc/rocky-release @@ -0,0 +1 @@ +Rocky Linux release 9.3 (Blue Onyx) diff --git a/tests/resources/distros/rocky9/etc/rocky-release-upstream b/tests/resources/distros/rocky9/etc/rocky-release-upstream new file mode 100644 index 0000000..09d42ab --- /dev/null +++ b/tests/resources/distros/rocky9/etc/rocky-release-upstream @@ -0,0 +1 @@ +Derived from Red Hat Enterprise Linux 9.3 diff --git a/tests/resources/distros/rocky9/etc/system-release b/tests/resources/distros/rocky9/etc/system-release new file mode 120000 index 0000000..780b78a --- /dev/null +++ b/tests/resources/distros/rocky9/etc/system-release @@ -0,0 +1 @@ +rocky-release \ No newline at end of file diff --git a/tests/resources/distros/rocky9/etc/system-release-cpe b/tests/resources/distros/rocky9/etc/system-release-cpe new file mode 100644 index 0000000..c5c8e62 --- /dev/null +++ b/tests/resources/distros/rocky9/etc/system-release-cpe @@ -0,0 +1 @@ +cpe:/o:rocky:rocky:9::baseos diff --git a/tests/resources/distros/rocky9/usr/lib/os-release b/tests/resources/distros/rocky9/usr/lib/os-release new file mode 100644 index 0000000..615382d --- /dev/null +++ b/tests/resources/distros/rocky9/usr/lib/os-release @@ -0,0 +1,17 @@ +NAME="Rocky Linux" +VERSION="9.3 (Blue Onyx)" +ID="rocky" +ID_LIKE="rhel centos fedora" +VERSION_ID="9.3" +PLATFORM_ID="platform:el9" +PRETTY_NAME="Rocky Linux 9.3 (Blue Onyx)" +ANSI_COLOR="0;32" +LOGO="fedora-logo-icon" +CPE_NAME="cpe:/o:rocky:rocky:9::baseos" +HOME_URL="https://rockylinux.org/" +BUG_REPORT_URL="https://bugs.rockylinux.org/" +SUPPORT_END="2032-05-31" +ROCKY_SUPPORT_PRODUCT="Rocky-Linux-9" +ROCKY_SUPPORT_PRODUCT_VERSION="9.3" +REDHAT_SUPPORT_PRODUCT="Rocky Linux" +REDHAT_SUPPORT_PRODUCT_VERSION="9.3" diff --git a/tests/resources/distros/rocky9/usr/lib/rocky-release b/tests/resources/distros/rocky9/usr/lib/rocky-release new file mode 100644 index 0000000..a969ec0 --- /dev/null +++ b/tests/resources/distros/rocky9/usr/lib/rocky-release @@ -0,0 +1 @@ +Rocky Linux release 9.3 (Blue Onyx) diff --git a/tests/test_distro.py b/tests/test_distro.py index caa6404..86d8318 100644 --- a/tests/test_distro.py +++ b/tests/test_distro.py @@ -451,6 +451,19 @@ def test_almalinux10_os_release(self) -> None: } self._test_outcome(desired_outcome) + def test_rocky9_os_release(self) -> None: + desired_outcome = { + "id": "rocky", + "name": "Rocky Linux", + "pretty_name": "Rocky Linux 9.3 (Blue Onyx)", + "version": "9.3", + "pretty_version": "9.3 (Blue Onyx)", + "best_version": "9.3", + "like": "rhel centos fedora", + "codename": "Blue Onyx", + } + self._test_outcome(desired_outcome) + def test_slackware14_os_release(self) -> None: desired_outcome = { "id": "slackware", @@ -1781,6 +1794,29 @@ def test_almalinux10_release(self) -> None: } self._test_release_file_info("almalinux-release", desired_info) + def test_rocky9_release(self) -> None: + desired_outcome = { + "id": "rocky", + "name": "Rocky Linux", + "pretty_name": "Rocky Linux 9.3 (Blue Onyx)", + "version": "9.3", + "pretty_version": "9.3 (Blue Onyx)", + "best_version": "9.3", + "like": "rhel centos fedora", + "codename": "Blue Onyx", + "major_version": "9", + "minor_version": "3", + } + self._test_outcome(desired_outcome) + + desired_info = { + "id": "rocky", + "name": "Rocky Linux", + "version_id": "9.3", + "codename": "Blue Onyx", + } + self._test_release_file_info("rocky-release", desired_info) + def test_slackware14_release(self) -> None: desired_outcome = { "id": "slackware", From be2c037f39a320b35cd794e380a6af13dc2fc580 Mon Sep 17 00:00:00 2001 From: nir0s Date: Fri, 14 Nov 2025 20:51:51 +0200 Subject: [PATCH 6/7] Add test support for CentOS Stream 9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds test resources and test case for CentOS Stream 9, the upstream development platform for RHEL 9. Includes centos-release and os-release files for proper distribution identification. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../distros/centosstream9/etc/centos-release | 1 + .../distros/centosstream9/etc/os-release | 14 ++++++++ tests/test_distro.py | 34 +++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 tests/resources/distros/centosstream9/etc/centos-release create mode 100644 tests/resources/distros/centosstream9/etc/os-release diff --git a/tests/resources/distros/centosstream9/etc/centos-release b/tests/resources/distros/centosstream9/etc/centos-release new file mode 100644 index 0000000..81fb0fa --- /dev/null +++ b/tests/resources/distros/centosstream9/etc/centos-release @@ -0,0 +1 @@ +CentOS Stream release 9 diff --git a/tests/resources/distros/centosstream9/etc/os-release b/tests/resources/distros/centosstream9/etc/os-release new file mode 100644 index 0000000..3ed2a15 --- /dev/null +++ b/tests/resources/distros/centosstream9/etc/os-release @@ -0,0 +1,14 @@ +NAME="CentOS Stream" +VERSION="9" +ID="centos" +ID_LIKE="rhel fedora" +VERSION_ID="9" +PLATFORM_ID="platform:el9" +PRETTY_NAME="CentOS Stream 9" +ANSI_COLOR="0;31" +LOGO="fedora-logo-icon" +CPE_NAME="cpe:/o:centos:centos:9" +HOME_URL="https://centos.org/" +BUG_REPORT_URL="https://issues.redhat.com/" +REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 9" +REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream" diff --git a/tests/test_distro.py b/tests/test_distro.py index 86d8318..4935d5b 100644 --- a/tests/test_distro.py +++ b/tests/test_distro.py @@ -464,6 +464,19 @@ def test_rocky9_os_release(self) -> None: } self._test_outcome(desired_outcome) + def test_centosstream9_os_release(self) -> None: + desired_outcome = { + "id": "centos", + "name": "CentOS Stream", + "pretty_name": "CentOS Stream 9", + "version": "9", + "pretty_version": "9", + "best_version": "9", + "like": "rhel fedora", + "codename": "", + } + self._test_outcome(desired_outcome) + def test_slackware14_os_release(self) -> None: desired_outcome = { "id": "slackware", @@ -1817,6 +1830,27 @@ def test_rocky9_release(self) -> None: } self._test_release_file_info("rocky-release", desired_info) + def test_centosstream9_release(self) -> None: + desired_outcome = { + "id": "centos", + "name": "CentOS Stream", + "pretty_name": "CentOS Stream 9", + "version": "9", + "pretty_version": "9", + "best_version": "9", + "like": "rhel fedora", + "codename": "", + "major_version": "9", + } + self._test_outcome(desired_outcome) + + desired_info = { + "id": "centos", + "name": "CentOS Stream", + "version_id": "9", + } + self._test_release_file_info("centos-release", desired_info) + def test_slackware14_release(self) -> None: desired_outcome = { "id": "slackware", From 7fd5c32f2b6e08615e514800bfe6d9e36402add6 Mon Sep 17 00:00:00 2001 From: nir0s Date: Fri, 14 Nov 2025 23:56:57 +0200 Subject: [PATCH 7/7] Fix AlmaLinux 10 and Rocky Linux 9 test expectations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adjusts test expectations for AlmaLinux 10 and Rocky Linux 9 to account for alphabetical ordering of release files. When /etc is listable, almalinux-release is found before centos-release, but when /etc is not listable (TestOverallWithEtcNotReadable), centos-release is found first due to the distro library's probing order. Rocky Linux 9 similarly finds centos-release before rocky-release in both scenarios. Adds override of test_almalinux10_release in TestOverallWithEtcNotReadable to test the different behavior when /etc is not listable. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- tests/test_distro.py | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/tests/test_distro.py b/tests/test_distro.py index 4935d5b..4d80058 100644 --- a/tests/test_distro.py +++ b/tests/test_distro.py @@ -1823,12 +1823,12 @@ def test_rocky9_release(self) -> None: self._test_outcome(desired_outcome) desired_info = { - "id": "rocky", + "id": "centos", "name": "Rocky Linux", "version_id": "9.3", "codename": "Blue Onyx", } - self._test_release_file_info("rocky-release", desired_info) + self._test_release_file_info("centos-release", desired_info) def test_centosstream9_release(self) -> None: desired_outcome = { @@ -2180,6 +2180,30 @@ def teardown_method(self, test_method: FunctionType) -> None: if os.listdir is _bad_os_listdir: os.listdir = self._old_listdir + def test_almalinux10_release(self) -> None: + # When /etc is not listable, centos-release is found before almalinux-release + desired_outcome = { + "id": "almalinux", + "name": "AlmaLinux", + "pretty_name": "AlmaLinux 10.0 (Purple Lion)", + "version": "10.0", + "pretty_version": "10.0 (Purple Lion)", + "best_version": "10.0", + "like": "rhel centos fedora", + "codename": "Purple Lion", + "major_version": "10", + "minor_version": "0", + } + self._test_outcome(desired_outcome) + + desired_info = { + "id": "centos", + "name": "AlmaLinux", + "version_id": "10.0", + "codename": "Purple Lion", + } + self._test_release_file_info("centos-release", desired_info) + @pytest.mark.skipif(not IS_LINUX, reason="Irrelevant on non-linux") class TestGetAttr(DistroTestCase):