-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtest_version_parsing.py
More file actions
48 lines (41 loc) · 1.69 KB
/
test_version_parsing.py
File metadata and controls
48 lines (41 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
"""Unit tests for CouchbaseVersion parsing (SyncGatewayVersion / EdgeServerVersion)
and GreenboardUploader version handling."""
import pytest
from cbltest.api.edgeserver import EdgeServerVersion
from cbltest.api.syncgateway import SyncGatewayVersion
class TestSyncGatewayVersionParse:
"""Tests for SyncGatewayVersion.parse()"""
@pytest.mark.parametrize(
"version_string, expected_version, expected_build",
[
("3.3.3(271;abc123)", "3.3.3", 271),
("4.0.0(350;def456)", "4.0.0", 350),
("4.0.0", "4.0.0", 0),
("4.0.0(271)", "4.0.0", 271),
("(271;abc)", "unknown", 271),
("4.0.0(abc;def)", "4.0.0", 0),
("4.0.0 (271;commit)", "4.0.0", 271),
("", "unknown", 0),
("4.0.0(271;commit) EE", "4.0.0", 271),
],
)
def test_parse(self, version_string, expected_version, expected_build):
v = SyncGatewayVersion(version_string)
assert v.version == expected_version
assert v.build_number == expected_build
assert v.raw == version_string
class TestEdgeServerVersionParse:
"""Tests for EdgeServerVersion.parse() — same logic as SyncGatewayVersion."""
@pytest.mark.parametrize(
"version_string, expected_version, expected_build",
[
("1.2.0(100;abc)", "1.2.0", 100),
("(100;abc)", "unknown", 100),
("1.0.0(xyz;abc)", "1.0.0", 0),
("1.0.0", "unknown", 0),
],
)
def test_parse(self, version_string, expected_version, expected_build):
v = EdgeServerVersion(version_string)
assert v.version == expected_version
assert v.build_number == expected_build