]>
Commit | Line | Data |
---|---|---|
4190fe1e | 1 | #!/usr/bin/env python |
acddc0ed | 2 | # SPDX-License-Identifier: ISC |
4190fe1e RZ |
3 | |
4 | # | |
5 | # test_version.py | |
6 | # Tests for library function: version_cmp(). | |
7 | # | |
8 | # Copyright (c) 2017 by | |
9 | # Network Device Education Foundation, Inc. ("NetDEF") | |
10 | # | |
4190fe1e RZ |
11 | |
12 | """ | |
13 | Tests for the version_cmp() function. | |
14 | """ | |
15 | ||
16 | import os | |
17 | import sys | |
18 | import pytest | |
19 | ||
20 | # Save the Current Working Directory to find lib files. | |
21 | CWD = os.path.dirname(os.path.realpath(__file__)) | |
787e7624 | 22 | sys.path.append(os.path.join(CWD, "../../")) |
4190fe1e RZ |
23 | |
24 | # pylint: disable=C0413 | |
25 | from lib.topotest import version_cmp | |
26 | ||
787e7624 | 27 | |
4190fe1e RZ |
28 | def test_valid_versions(): |
29 | "Test valid version compare results" | |
30 | ||
787e7624 | 31 | curver = "3.0" |
32 | samever = "3" | |
33 | oldver = "2.0" | |
34 | newver = "3.0.1" | |
35 | newerver = "3.0.11" | |
36 | vercustom = "3.0-dev" | |
37 | verysmallinc = "3.0.0.0.0.0.0.1" | |
4190fe1e RZ |
38 | |
39 | assert version_cmp(curver, oldver) == 1 | |
40 | assert version_cmp(curver, newver) == -1 | |
41 | assert version_cmp(curver, curver) == 0 | |
42 | assert version_cmp(curver, newerver) == -1 | |
43 | assert version_cmp(newver, newerver) == -1 | |
44 | assert version_cmp(curver, samever) == 0 | |
45 | assert version_cmp(curver, vercustom) == 0 | |
46 | assert version_cmp(vercustom, vercustom) == 0 | |
47 | assert version_cmp(vercustom, oldver) == 1 | |
48 | assert version_cmp(vercustom, newver) == -1 | |
49 | assert version_cmp(vercustom, samever) == 0 | |
50 | assert version_cmp(curver, verysmallinc) == -1 | |
51 | assert version_cmp(newver, verysmallinc) == 1 | |
52 | assert version_cmp(verysmallinc, verysmallinc) == 0 | |
53 | assert version_cmp(vercustom, verysmallinc) == -1 | |
54 | ||
787e7624 | 55 | |
4190fe1e RZ |
56 | def test_invalid_versions(): |
57 | "Test invalid version strings" | |
58 | ||
787e7624 | 59 | curver = "3.0" |
60 | badver1 = ".1" | |
61 | badver2 = "-1.0" | |
62 | badver3 = "." | |
63 | badver4 = "3.-0.3" | |
4190fe1e RZ |
64 | |
65 | with pytest.raises(ValueError): | |
66 | assert version_cmp(curver, badver1) | |
67 | assert version_cmp(curver, badver2) | |
68 | assert version_cmp(curver, badver3) | |
69 | assert version_cmp(curver, badver4) | |
034237db | 70 | |
787e7624 | 71 | |
034237db RZ |
72 | def test_regression_1(): |
73 | """ | |
74 | Test regression on the following type of comparison: '3.0.2' > '3' | |
75 | Expected result is 1. | |
76 | """ | |
787e7624 | 77 | assert version_cmp("3.0.2", "3") == 1 |