HEX
Server: LiteSpeed
System: Linux srv1.dhviews.com 5.14.0-570.23.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jun 24 11:27:16 EDT 2025 x86_64
User: bdedition (1723)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: //proc/self/root/usr/local/lib/python3.9/site-packages/wordfence/util/test_versioning.py
import unittest

from .versioning import compare_php_versions


class TestPhpVersions(unittest.TestCase):

    def _expect_comparison(
                self,
                a: str,
                b: str,
                expected: int
            ) -> None:
        self.assertEqual(
                compare_php_versions(a, b),
                expected
            )

    def test_numeric(self):
        self._expect_comparison('1.0.0', '1.0.0', 0)
        self._expect_comparison('2.0.0', '3.0.0', -1)
        self._expect_comparison('5.0.0', '4.0.0', 1)

    def test_short(self):
        self._expect_comparison('1.0', '1.0.0', 0)
        self._expect_comparison('2.0.0', '2', 0)
        self._expect_comparison('1', '2', -1)

    def test_dev_versions(self):
        self._expect_comparison('1.0.0-rc1', '1.0.0', -1)
        self._expect_comparison('2.0.dev', '2.0', -1)
        self._expect_comparison('1.0.0-test', '1.0.0-dev', -1)
        self._expect_comparison('1.0.0-alpha', '1.0.0-dev', 1)
        self._expect_comparison('3.45.beta', '3.45.alpha', 1)
        self._expect_comparison('5.0.0.beta', '5.0.0.rc', -1)
        self._expect_comparison('9.0.0', '9.0.0rc1', 1)
        self._expect_comparison('10.0.0', '10.0.0pl', -1)
        self._expect_comparison('1.0-dev', '1.0.0-dev', -1)
        self._expect_comparison('1.0.0-rc', '1.0.0-RC', 0)
        self._expect_comparison('1.0.0-alpha', '1.0.0-a', 0)
        self._expect_comparison('1.0.0-beta', '1.0.0b', 0)
        self._expect_comparison('1.0.0-pl', '1.0.0-p', 0)