From b34bfa81af83625e78f0bf1ee36c49762ed105ca Mon Sep 17 00:00:00 2001 From: nir0s Date: Mon, 29 Jun 2026 13:31:55 +0300 Subject: [PATCH] Add os-release tests for latest distro versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add fixtures and TestOSRelease cases for currently-released distros not yet covered: - RHEL 9.6 (Plow) and 10.0 (Coughlan) — first os-release-era RHEL fixtures - Rocky Linux 10.0 (Red Quartz) - CentOS Stream 8 and 10 - Ubuntu 25.04 (plucky), 25.10 (questing) and 26.04 LTS (resolute) - Amazon Linux 2023 - Alpine Linux 3.23 — first Alpine fixture os-release contents captured from real systems. Co-Authored-By: Claude Opus 4.8 (1M context) --- tests/resources/distros/alpine/etc/os-release | 6 + .../distros/amazon2023/etc/os-release | 12 ++ .../distros/centosstream10/etc/os-release | 14 ++ .../distros/centosstream8/etc/os-release | 13 ++ tests/resources/distros/rhel10/etc/os-release | 20 +++ tests/resources/distros/rhel9/etc/os-release | 18 +++ .../resources/distros/rocky10/etc/os-release | 19 +++ .../distros/ubuntu2504/etc/os-release | 13 ++ .../distros/ubuntu2510/etc/os-release | 13 ++ .../distros/ubuntu2604/etc/os-release | 13 ++ tests/test_distro.py | 127 ++++++++++++++++++ 11 files changed, 268 insertions(+) create mode 100644 tests/resources/distros/alpine/etc/os-release create mode 100644 tests/resources/distros/amazon2023/etc/os-release create mode 100644 tests/resources/distros/centosstream10/etc/os-release create mode 100644 tests/resources/distros/centosstream8/etc/os-release create mode 100644 tests/resources/distros/rhel10/etc/os-release create mode 100644 tests/resources/distros/rhel9/etc/os-release create mode 100644 tests/resources/distros/rocky10/etc/os-release create mode 100644 tests/resources/distros/ubuntu2504/etc/os-release create mode 100644 tests/resources/distros/ubuntu2510/etc/os-release create mode 100644 tests/resources/distros/ubuntu2604/etc/os-release diff --git a/tests/resources/distros/alpine/etc/os-release b/tests/resources/distros/alpine/etc/os-release new file mode 100644 index 0000000..5d042b2 --- /dev/null +++ b/tests/resources/distros/alpine/etc/os-release @@ -0,0 +1,6 @@ +NAME="Alpine Linux" +ID=alpine +VERSION_ID=3.23.2 +PRETTY_NAME="Alpine Linux v3.23" +HOME_URL="https://alpinelinux.org/" +BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues" diff --git a/tests/resources/distros/amazon2023/etc/os-release b/tests/resources/distros/amazon2023/etc/os-release new file mode 100644 index 0000000..6d57a23 --- /dev/null +++ b/tests/resources/distros/amazon2023/etc/os-release @@ -0,0 +1,12 @@ +NAME="Amazon Linux" +VERSION="2023" +ID="amzn" +ID_LIKE="fedora" +VERSION_ID="2023" +PLATFORM_ID="platform:al2023" +PRETTY_NAME="Amazon Linux 2023" +ANSI_COLOR="0;33" +CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023" +HOME_URL="https://aws.amazon.com/linux/" +BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023" +SUPPORT_END="2028-03-01" diff --git a/tests/resources/distros/centosstream10/etc/os-release b/tests/resources/distros/centosstream10/etc/os-release new file mode 100644 index 0000000..21ab2c1 --- /dev/null +++ b/tests/resources/distros/centosstream10/etc/os-release @@ -0,0 +1,14 @@ +NAME="CentOS Stream" +VERSION="10" +ID="centos" +ID_LIKE="rhel fedora" +VERSION_ID="10" +PLATFORM_ID="platform:el10" +PRETTY_NAME="CentOS Stream 10" +ANSI_COLOR="0;31" +LOGO="fedora-logo-icon" +CPE_NAME="cpe:/o:centos:centos:10" +HOME_URL="https://centos.org/" +BUG_REPORT_URL="https://bugzilla.redhat.com/" +REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 10" +REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream" diff --git a/tests/resources/distros/centosstream8/etc/os-release b/tests/resources/distros/centosstream8/etc/os-release new file mode 100644 index 0000000..8948e12 --- /dev/null +++ b/tests/resources/distros/centosstream8/etc/os-release @@ -0,0 +1,13 @@ +NAME="CentOS Stream" +VERSION="8" +ID="centos" +ID_LIKE="rhel fedora" +VERSION_ID="8" +PLATFORM_ID="platform:el8" +PRETTY_NAME="CentOS Stream 8" +ANSI_COLOR="0;31" +CPE_NAME="cpe:/o:centos:centos:8" +HOME_URL="https://centos.org/" +BUG_REPORT_URL="https://bugzilla.redhat.com/" +REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux 8" +REDHAT_SUPPORT_PRODUCT_VERSION="CentOS Stream" diff --git a/tests/resources/distros/rhel10/etc/os-release b/tests/resources/distros/rhel10/etc/os-release new file mode 100644 index 0000000..4690cfe --- /dev/null +++ b/tests/resources/distros/rhel10/etc/os-release @@ -0,0 +1,20 @@ +NAME="Red Hat Enterprise Linux" +VERSION="10.0 (Coughlan)" +ID="rhel" +ID_LIKE="centos fedora" +VERSION_ID="10.0" +PLATFORM_ID="platform:el10" +PRETTY_NAME="Red Hat Enterprise Linux 10.0 (Coughlan)" +ANSI_COLOR="0;31" +LOGO="fedora-logo-icon" +CPE_NAME="cpe:/o:redhat:enterprise_linux:10.0" +HOME_URL="https://www.redhat.com/" +VENDOR_NAME="Red Hat" +VENDOR_URL="https://www.redhat.com/" +DOCUMENTATION_URL="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/10" +BUG_REPORT_URL="https://issues.redhat.com/" + +REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 10" +REDHAT_BUGZILLA_PRODUCT_VERSION=10.0 +REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" +REDHAT_SUPPORT_PRODUCT_VERSION="10.0" diff --git a/tests/resources/distros/rhel9/etc/os-release b/tests/resources/distros/rhel9/etc/os-release new file mode 100644 index 0000000..030200a --- /dev/null +++ b/tests/resources/distros/rhel9/etc/os-release @@ -0,0 +1,18 @@ +NAME="Red Hat Enterprise Linux" +VERSION="9.6 (Plow)" +ID="rhel" +ID_LIKE="fedora" +VERSION_ID="9.6" +PLATFORM_ID="platform:el9" +PRETTY_NAME="Red Hat Enterprise Linux 9.6 (Plow)" +ANSI_COLOR="0;31" +LOGO="fedora-logo-icon" +CPE_NAME="cpe:/o:redhat:enterprise_linux:9::baseos" +HOME_URL="https://www.redhat.com/" +DOCUMENTATION_URL="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9" +BUG_REPORT_URL="https://issues.redhat.com/" + +REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 9" +REDHAT_BUGZILLA_PRODUCT_VERSION=9.6 +REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux" +REDHAT_SUPPORT_PRODUCT_VERSION="9.6" diff --git a/tests/resources/distros/rocky10/etc/os-release b/tests/resources/distros/rocky10/etc/os-release new file mode 100644 index 0000000..2e44b2e --- /dev/null +++ b/tests/resources/distros/rocky10/etc/os-release @@ -0,0 +1,19 @@ +NAME="Rocky Linux" +VERSION="10.0 (Red Quartz)" +ID="rocky" +ID_LIKE="rhel centos fedora" +VERSION_ID="10.0" +PLATFORM_ID="platform:el10" +PRETTY_NAME="Rocky Linux 10.0 (Red Quartz)" +ANSI_COLOR="0;32" +LOGO="fedora-logo-icon" +CPE_NAME="cpe:/o:rocky:rocky:10::baseos" +HOME_URL="https://rockylinux.org/" +VENDOR_NAME="RESF" +VENDOR_URL="https://resf.org/" +BUG_REPORT_URL="https://bugs.rockylinux.org/" +SUPPORT_END="2035-05-31" +ROCKY_SUPPORT_PRODUCT="Rocky-Linux-10" +ROCKY_SUPPORT_PRODUCT_VERSION="10.0" +REDHAT_SUPPORT_PRODUCT="Rocky Linux" +REDHAT_SUPPORT_PRODUCT_VERSION="10.0" diff --git a/tests/resources/distros/ubuntu2504/etc/os-release b/tests/resources/distros/ubuntu2504/etc/os-release new file mode 100644 index 0000000..3b823c3 --- /dev/null +++ b/tests/resources/distros/ubuntu2504/etc/os-release @@ -0,0 +1,13 @@ +PRETTY_NAME="Ubuntu 25.04" +NAME="Ubuntu" +VERSION_ID="25.04" +VERSION="25.04 (Plucky Puffin)" +VERSION_CODENAME=plucky +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=plucky +LOGO=ubuntu-logo diff --git a/tests/resources/distros/ubuntu2510/etc/os-release b/tests/resources/distros/ubuntu2510/etc/os-release new file mode 100644 index 0000000..cd67ce8 --- /dev/null +++ b/tests/resources/distros/ubuntu2510/etc/os-release @@ -0,0 +1,13 @@ +PRETTY_NAME="Ubuntu 25.10" +NAME="Ubuntu" +VERSION_ID="25.10" +VERSION="25.10 (Questing Quokka)" +VERSION_CODENAME=questing +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=questing +LOGO=ubuntu-logo diff --git a/tests/resources/distros/ubuntu2604/etc/os-release b/tests/resources/distros/ubuntu2604/etc/os-release new file mode 100644 index 0000000..e89ba54 --- /dev/null +++ b/tests/resources/distros/ubuntu2604/etc/os-release @@ -0,0 +1,13 @@ +PRETTY_NAME="Ubuntu 26.04 LTS" +NAME="Ubuntu" +VERSION_ID="26.04" +VERSION="26.04 LTS (Resolute Raccoon)" +VERSION_CODENAME=resolute +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=resolute +LOGO=ubuntu-logo diff --git a/tests/test_distro.py b/tests/test_distro.py index 4d80058..0131ba6 100644 --- a/tests/test_distro.py +++ b/tests/test_distro.py @@ -425,6 +425,32 @@ def test_rhel7_os_release(self) -> None: } self._test_outcome(desired_outcome) + def test_rhel9_os_release(self) -> None: + desired_outcome = { + "id": "rhel", + "name": "Red Hat Enterprise Linux", + "pretty_name": "Red Hat Enterprise Linux 9.6 (Plow)", + "version": "9.6", + "pretty_version": "9.6 (Plow)", + "best_version": "9.6", + "like": "fedora", + "codename": "Plow", + } + self._test_outcome(desired_outcome) + + def test_rhel10_os_release(self) -> None: + desired_outcome = { + "id": "rhel", + "name": "Red Hat Enterprise Linux", + "pretty_name": "Red Hat Enterprise Linux 10.0 (Coughlan)", + "version": "10.0", + "pretty_version": "10.0 (Coughlan)", + "best_version": "10.0", + "like": "centos fedora", + "codename": "Coughlan", + } + self._test_outcome(desired_outcome) + def test_rocky_os_release(self) -> None: desired_outcome = { "id": "rocky", @@ -464,6 +490,19 @@ def test_rocky9_os_release(self) -> None: } self._test_outcome(desired_outcome) + def test_rocky10_os_release(self) -> None: + desired_outcome = { + "id": "rocky", + "name": "Rocky Linux", + "pretty_name": "Rocky Linux 10.0 (Red Quartz)", + "version": "10.0", + "pretty_version": "10.0 (Red Quartz)", + "best_version": "10.0", + "like": "rhel centos fedora", + "codename": "Red Quartz", + } + self._test_outcome(desired_outcome) + def test_centosstream9_os_release(self) -> None: desired_outcome = { "id": "centos", @@ -477,6 +516,32 @@ def test_centosstream9_os_release(self) -> None: } self._test_outcome(desired_outcome) + def test_centosstream8_os_release(self) -> None: + desired_outcome = { + "id": "centos", + "name": "CentOS Stream", + "pretty_name": "CentOS Stream 8", + "version": "8", + "pretty_version": "8", + "best_version": "8", + "like": "rhel fedora", + "codename": "", + } + self._test_outcome(desired_outcome) + + def test_centosstream10_os_release(self) -> None: + desired_outcome = { + "id": "centos", + "name": "CentOS Stream", + "pretty_name": "CentOS Stream 10", + "version": "10", + "pretty_version": "10", + "best_version": "10", + "like": "rhel fedora", + "codename": "", + } + self._test_outcome(desired_outcome) + def test_slackware14_os_release(self) -> None: desired_outcome = { "id": "slackware", @@ -538,6 +603,45 @@ def test_ubuntu24_os_release(self) -> None: } self._test_outcome(desired_outcome) + def test_ubuntu2504_os_release(self) -> None: + desired_outcome = { + "id": "ubuntu", + "name": "Ubuntu", + "pretty_name": "Ubuntu 25.04", + "version": "25.04", + "pretty_version": "25.04 (plucky)", + "best_version": "25.04", + "like": "debian", + "codename": "plucky", + } + self._test_outcome(desired_outcome) + + def test_ubuntu2510_os_release(self) -> None: + desired_outcome = { + "id": "ubuntu", + "name": "Ubuntu", + "pretty_name": "Ubuntu 25.10", + "version": "25.10", + "pretty_version": "25.10 (questing)", + "best_version": "25.10", + "like": "debian", + "codename": "questing", + } + self._test_outcome(desired_outcome) + + def test_ubuntu2604_os_release(self) -> None: + desired_outcome = { + "id": "ubuntu", + "name": "Ubuntu", + "pretty_name": "Ubuntu 26.04 LTS", + "version": "26.04", + "pretty_version": "26.04 (resolute)", + "best_version": "26.04", + "like": "debian", + "codename": "resolute", + } + self._test_outcome(desired_outcome) + def test_amazon2016_os_release(self) -> None: desired_outcome = { "id": "amzn", @@ -550,6 +654,29 @@ def test_amazon2016_os_release(self) -> None: } self._test_outcome(desired_outcome) + def test_amazon2023_os_release(self) -> None: + desired_outcome = { + "id": "amzn", + "name": "Amazon Linux", + "pretty_name": "Amazon Linux 2023", + "version": "2023", + "pretty_version": "2023", + "best_version": "2023", + "like": "fedora", + } + self._test_outcome(desired_outcome) + + def test_alpine_os_release(self) -> None: + desired_outcome = { + "id": "alpine", + "name": "Alpine Linux", + "pretty_name": "Alpine Linux v3.23", + "version": "3.23.2", + "pretty_version": "3.23.2", + "best_version": "3.23.2", + } + self._test_outcome(desired_outcome) + def test_scientific7_os_release(self) -> None: desired_outcome = { "id": "rhel",