1
1
# Copyright (c) Microsoft Corporation. All rights reserved.
2
2
# Licensed under the MIT License.
3
3
4
+ import datetime
4
5
import json
5
6
6
7
import freezegun
7
8
import pytest
8
9
import update_ext_version
9
10
10
- TEST_DATETIME = "2022-03-14 01:23:45"
11
+
12
+ CURRENT_YEAR = datetime .datetime .now ().year
13
+ TEST_DATETIME = f"{ CURRENT_YEAR } -03-14 01:23:45"
11
14
12
15
# The build ID is calculated via:
13
16
# "1" + datetime.datetime.strptime(TEST_DATETIME,"%Y-%m-%d %H:%M:%S").strftime('%j%H%M')
@@ -31,14 +34,21 @@ def run_test(tmp_path, version, args, expected):
31
34
@pytest .mark .parametrize (
32
35
"version, args" ,
33
36
[
34
- ("1.0.0-rc" , []),
35
- ("1.1.0-rc" , ["--release" ]),
36
- ("1.0.0-rc" , ["--release" , "--build-id" , "-1" ]),
37
- ("1.0.0-rc" , ["--release" , "--for-publishing" , "--build-id" , "-1" ]),
38
- ("1.0.0-rc" , ["--release" , "--for-publishing" , "--build-id" , "999999999999" ]),
39
- ("1.1.0-rc" , ["--build-id" , "-1" ]),
40
- ("1.1.0-rc" , ["--for-publishing" , "--build-id" , "-1" ]),
41
- ("1.1.0-rc" , ["--for-publishing" , "--build-id" , "999999999999" ]),
37
+ ("2000.1.0" , []), # Wrong year for CalVer
38
+ (f"{ CURRENT_YEAR } .0.0-rc" , []),
39
+ (f"{ CURRENT_YEAR } .1.0-rc" , ["--release" ]),
40
+ (f"{ CURRENT_YEAR } .0.0-rc" , ["--release" , "--build-id" , "-1" ]),
41
+ (
42
+ f"{ CURRENT_YEAR } .0.0-rc" ,
43
+ ["--release" , "--for-publishing" , "--build-id" , "-1" ],
44
+ ),
45
+ (
46
+ f"{ CURRENT_YEAR } .0.0-rc" ,
47
+ ["--release" , "--for-publishing" , "--build-id" , "999999999999" ],
48
+ ),
49
+ (f"{ CURRENT_YEAR } .1.0-rc" , ["--build-id" , "-1" ]),
50
+ (f"{ CURRENT_YEAR } .1.0-rc" , ["--for-publishing" , "--build-id" , "-1" ]),
51
+ (f"{ CURRENT_YEAR } .1.0-rc" , ["--for-publishing" , "--build-id" , "999999999999" ]),
42
52
],
43
53
)
44
54
def test_invalid_args (tmp_path , version , args ):
@@ -49,56 +59,68 @@ def test_invalid_args(tmp_path, version, args):
49
59
@pytest .mark .parametrize (
50
60
"version, args, expected" ,
51
61
[
52
- ("1.1.0-rc" , ["--build-id" , "12345" ], ("1" , "1" , "12345" , "rc" )),
53
- ("1.0.0-rc" , ["--release" , "--build-id" , "12345" ], ("1" , "0" , "12345" , "" )),
54
62
(
55
- "1.1.0-rc" ,
63
+ f"{ CURRENT_YEAR } .1.0-rc" ,
64
+ ["--build-id" , "12345" ],
65
+ (f"{ CURRENT_YEAR } " , "1" , "12345" , "rc" ),
66
+ ),
67
+ (
68
+ f"{ CURRENT_YEAR } .0.0-rc" ,
69
+ ["--release" , "--build-id" , "12345" ],
70
+ (f"{ CURRENT_YEAR } " , "0" , "12345" , "" ),
71
+ ),
72
+ (
73
+ f"{ CURRENT_YEAR } .1.0-rc" ,
56
74
["--for-publishing" , "--build-id" , "12345" ],
57
- ("1 " , "1" , "12345" , "" ),
75
+ (f" { CURRENT_YEAR } " , "1" , "12345" , "" ),
58
76
),
59
77
(
60
- "1 .0.0-rc" ,
78
+ f" { CURRENT_YEAR } .0.0-rc" ,
61
79
["--release" , "--for-publishing" , "--build-id" , "12345" ],
62
- ("1 " , "0" , "12345" , "" ),
80
+ (f" { CURRENT_YEAR } " , "0" , "12345" , "" ),
63
81
),
64
82
(
65
- "1 .0.0-rc" ,
83
+ f" { CURRENT_YEAR } .0.0-rc" ,
66
84
["--release" , "--build-id" , "999999999999" ],
67
- ("1 " , "0" , "999999999999" , "" ),
85
+ (f" { CURRENT_YEAR } " , "0" , "999999999999" , "" ),
68
86
),
69
87
(
70
- "1 .1.0-rc" ,
88
+ f" { CURRENT_YEAR } .1.0-rc" ,
71
89
["--build-id" , "999999999999" ],
72
- ("1" , "1" , "999999999999" , "rc" ),
90
+ (f"{ CURRENT_YEAR } " , "1" , "999999999999" , "rc" ),
91
+ ),
92
+ (
93
+ f"{ CURRENT_YEAR } .1.0-rc" ,
94
+ [],
95
+ (f"{ CURRENT_YEAR } " , "1" , EXPECTED_BUILD_ID , "rc" ),
73
96
),
74
- ("1.1.0-rc" , [], ("1" , "1" , EXPECTED_BUILD_ID , "rc" )),
75
97
(
76
- "1 .0.0-rc" ,
98
+ f" { CURRENT_YEAR } .0.0-rc" ,
77
99
["--release" ],
78
- ("1 " , "0" , "0" , "" ),
100
+ (f" { CURRENT_YEAR } " , "0" , "0" , "" ),
79
101
),
80
102
(
81
- "1 .1.0-rc" ,
103
+ f" { CURRENT_YEAR } .1.0-rc" ,
82
104
["--for-publishing" ],
83
- ("1 " , "1" , EXPECTED_BUILD_ID , "" ),
105
+ (f" { CURRENT_YEAR } " , "1" , EXPECTED_BUILD_ID , "" ),
84
106
),
85
107
(
86
- "1 .0.0-rc" ,
108
+ f" { CURRENT_YEAR } .0.0-rc" ,
87
109
["--release" , "--for-publishing" ],
88
- ("1 " , "0" , "0" , "" ),
110
+ (f" { CURRENT_YEAR } " , "0" , "0" , "" ),
89
111
),
90
112
(
91
- "1 .0.0-rc" ,
113
+ f" { CURRENT_YEAR } .0.0-rc" ,
92
114
["--release" ],
93
- ("1 " , "0" , "0" , "" ),
115
+ (f" { CURRENT_YEAR } " , "0" , "0" , "" ),
94
116
),
95
117
(
96
- "1 .1.0-rc" ,
118
+ f" { CURRENT_YEAR } .1.0-rc" ,
97
119
[],
98
- ("1 " , "1" , EXPECTED_BUILD_ID , "rc" ),
120
+ (f" { CURRENT_YEAR } " , "1" , EXPECTED_BUILD_ID , "rc" ),
99
121
),
100
122
],
101
123
)
102
- @freezegun .freeze_time ("2022 -03-14 01:23:45" )
124
+ @freezegun .freeze_time (f" { CURRENT_YEAR } -03-14 01:23:45" )
103
125
def test_update_ext_version (tmp_path , version , args , expected ):
104
126
run_test (tmp_path , version , args , expected )
0 commit comments