| # 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') |