1010
1111
1212@pytest .fixture (scope = "module" )
13- def black_repository () -> Repository :
13+ def repository () -> Repository :
1414 repo = Repository ("repo" )
15+
16+ # latest version pre-release
17+ repo .add_package (get_package ("foo" , "1.0" ))
18+ repo .add_package (get_package ("foo" , "2.0.b0" ))
19+
20+ # latest version yanked
1521 repo .add_package (get_package ("black" , "19.10b0" ))
1622 repo .add_package (get_package ("black" , "21.11b0" , yanked = "reason" ))
23+
1724 return repo
1825
1926
27+ @pytest .mark .parametrize (
28+ ("allow_prereleases" , "constraint" , "expected" ),
29+ [
30+ (None , ">=1.0" , ["1.0" ]),
31+ (False , ">=1.0" , ["1.0" ]),
32+ (True , ">=1.0" , ["1.0" , "2.0.b0" ]),
33+ (None , ">=1.5" , ["2.0.b0" ]),
34+ (False , ">=1.5" , []),
35+ (True , ">=1.5" , ["2.0.b0" ]),
36+ ],
37+ )
38+ def test_find_packages_allow_prereleases (
39+ repository : Repository ,
40+ allow_prereleases : bool | None ,
41+ constraint : str ,
42+ expected : list [str ],
43+ ) -> None :
44+ packages = repository .find_packages (
45+ Factory .create_dependency (
46+ "foo" , {"version" : constraint , "allow-prereleases" : allow_prereleases }
47+ )
48+ )
49+
50+ assert [str (p .version ) for p in packages ] == expected
51+
52+
2053@pytest .mark .parametrize (
2154 ["constraint" , "expected" ],
2255 [
@@ -29,11 +62,9 @@ def black_repository() -> Repository:
2962 ],
3063)
3164def test_find_packages_yanked (
32- black_repository : Repository , constraint : str , expected : list [str ]
65+ repository : Repository , constraint : str , expected : list [str ]
3366) -> None :
34- packages = black_repository .find_packages (
35- Factory .create_dependency ("black" , constraint )
36- )
67+ packages = repository .find_packages (Factory .create_dependency ("black" , constraint ))
3768
3869 assert [str (p .version ) for p in packages ] == expected
3970
@@ -46,13 +77,13 @@ def test_find_packages_yanked(
4677 ],
4778)
4879def test_package_yanked (
49- black_repository : Repository ,
80+ repository : Repository ,
5081 package_name : str ,
5182 version : str ,
5283 yanked : bool ,
5384 yanked_reason : str ,
5485) -> None :
55- package = black_repository .package (package_name , Version .parse (version ))
86+ package = repository .package (package_name , Version .parse (version ))
5687
5788 assert package .name == package_name
5889 assert str (package .version ) == version
0 commit comments