1
+ import datetime as dt
2
+
1
3
import pytest
2
4
from rattler import Version
3
5
4
- from minimum_versions import Spec
6
+ from minimum_versions import Policy , Release , Spec
5
7
6
8
7
9
@pytest .mark .parametrize (
@@ -23,3 +25,50 @@ def test_spec_parse(text, expected_spec, expected_name, expected_warnings):
23
25
assert actual_spec == expected_spec
24
26
assert actual_name == expected_name
25
27
assert actual_warnings == expected_warnings
28
+
29
+
30
+ @pytest .mark .parametrize (
31
+ ["package_name" , "policy" , "today" , "expected" ],
32
+ (
33
+ (
34
+ "numpy" ,
35
+ Policy ({"numpy" : 6 }, 12 , {}),
36
+ dt .date (2023 , 12 , 12 ),
37
+ Release (Version ("1.23.0" ), 0 , dt .datetime (2023 , 6 , 9 )),
38
+ ),
39
+ (
40
+ "scipy" ,
41
+ Policy ({"numpy" : 6 }, 8 , {}),
42
+ dt .date (2024 , 9 , 5 ),
43
+ Release (Version ("1.2.0" ), 0 , dt .datetime (2024 , 1 , 3 )),
44
+ ),
45
+ (
46
+ "scipy" ,
47
+ Policy ({"numpy" : 6 }, 8 , {"scipy" : Version ("1.1.1" )}),
48
+ dt .date (2024 , 9 , 5 ),
49
+ Release (Version ("1.1.1" ), 0 , dt .datetime (2023 , 12 , 1 )),
50
+ ),
51
+ ),
52
+ )
53
+ def test_policy_minimum_version (package_name , policy , today , expected ):
54
+ releases = {
55
+ "numpy" : [
56
+ Release (Version ("1.22.0" ), 0 , dt .datetime (2022 , 12 , 1 )),
57
+ Release (Version ("1.22.1" ), 0 , dt .datetime (2023 , 2 , 5 )),
58
+ Release (Version ("1.23.0" ), 0 , dt .datetime (2023 , 6 , 9 )),
59
+ Release (Version ("1.23.1" ), 0 , dt .datetime (2023 , 8 , 12 )),
60
+ Release (Version ("1.23.2" ), 0 , dt .datetime (2023 , 12 , 5 )),
61
+ ],
62
+ "scipy" : [
63
+ Release (Version ("1.0.0" ), 0 , dt .datetime (2022 , 11 , 10 )),
64
+ Release (Version ("1.0.1" ), 0 , dt .datetime (2023 , 1 , 13 )),
65
+ Release (Version ("1.1.0" ), 0 , dt .datetime (2023 , 9 , 21 )),
66
+ Release (Version ("1.1.1" ), 0 , dt .datetime (2023 , 12 , 1 )),
67
+ Release (Version ("1.2.0" ), 0 , dt .datetime (2024 , 1 , 3 )),
68
+ Release (Version ("1.2.1" ), 0 , dt .datetime (2024 , 2 , 5 )),
69
+ ],
70
+ }
71
+
72
+ actual = policy .minimum_version (today , package_name , releases [package_name ])
73
+
74
+ assert actual == expected
0 commit comments