blob: 7c393f345f34305e50ec101b75020378f3292e14 [file] [log] [blame]
# Copyright 2021 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""PMS tests."""
from chromite.utils import pms
def test_versions_eq():
"""Check equal versions compared correctly."""
assert pms.version_eq('1', '1')
assert pms.version_eq('1.000', '1.0')
assert pms.version_eq('1_alpha1_beta2_pre3_rc4_p5',
'1_alpha1_beta2_pre3_rc4_p5')
assert pms.version_eq('1.2.3.200702020000', '1.2.3.200702020000')
assert pms.version_eq('1.2.3_alpha', '1.2.3_alpha0-r0')
assert pms.version_eq('1.2.3_alpha4-r5', '1.2.3_alpha4-r5')
def test_version_lt():
"""Test a variety of unequal versions using LT."""
# Version varieties.
assert pms.version_lt('1', '2')
assert pms.version_lt('1.0', '2.0')
assert pms.version_lt('1.1.1', '1.1.1.1')
assert pms.version_lt('1.034', '1.1')
assert pms.version_lt('1.0.1', '1.002')
assert pms.version_lt('0.0.1', '0.0.2')
assert pms.version_lt('1.2.3.200702020000', '1.2.3.200702020001')
# Letter components.
assert pms.version_lt('20004', '20004a')
assert pms.version_lt('1b', '1z')
# Suffix checks.
assert pms.version_lt('2.0_pre', '2.0')
assert pms.version_lt('2.0_alpha', '2.0_beta')
assert pms.version_lt('2.0_beta', '2.0_pre')
assert pms.version_lt('2.0_pre', '2.0_rc')
assert pms.version_lt('2.0_rc', '2.0_p')
assert pms.version_lt('2.0_pre', '2.0_pre1')
assert pms.version_lt('2.0_pre', '2.0_p1234')
assert pms.version_lt('2.0_rc', '2.0')
assert pms.version_lt('2.0', '2.0_p')
assert pms.version_lt('1_alpha_beta', '1_alpha')
assert pms.version_lt('1_alpha_beta', '1_alpha1')
assert pms.version_lt('1_alpha_beta', '1_beta')
assert pms.version_lt('1_alpha_beta', '1_alpha_beta1')
assert pms.version_lt('1_alpha_beta_pre', '1_alpha_beta')
assert pms.version_lt('1_alpha_beta', '1_alpha_beta_p')
assert pms.version_lt('2.0_rc', '2.0_rc_p')
# Revisions.
assert pms.version_lt('1.0', '1.0-r1')
assert pms.version_lt('1.0-r5', '1.0-r10')
def test_version_gt():
"""Test a few of the LT cases in reverse to do a quick GT check."""
assert pms.version_gt('1.1.1.1', '1.1.1')
assert pms.version_gt('2.0_p1234', '2.0_pre')
assert pms.version_gt('2.0', '2.0_rc')
assert pms.version_gt('1_alpha_beta_p', '1_alpha_beta')