@@ -520,15 +520,14 @@ def test_specifiers(self, version: str, spec_str: str, expected: bool) -> None:
520520 ("spec_str" , "version" , "expected" ),
521521 [
522522 ("==1.0" , "not a valid version" , False ),
523+ ("==1.*" , "not a valid version" , False ),
523524 (">=1.0" , "not a valid version" , False ),
524525 (">1.0" , "not a valid version" , False ),
525526 ("<=1.0" , "not a valid version" , False ),
526527 ("<1.0" , "not a valid version" , False ),
527528 ("~=1.0" , "not a valid version" , False ),
528- # Test invalid versions with != (should pass as "not equal")
529- ("!=1.0" , "not a valid version" , True ),
530- ("!=1.0" , "not a valid version" , True ),
531- ("!=2.0.*" , "not a valid version" , True ),
529+ ("!=1.0" , "not a valid version" , False ),
530+ ("!=1.*" , "not a valid version" , False ),
532531 # Test with arbitrary equality (===)
533532 ("===invalid" , "invalid" , True ),
534533 ("===foobar" , "invalid" , False ),
@@ -757,24 +756,24 @@ def test_specifiers_prereleases(
757756 ["foobar" ],
758757 ),
759758 ("===1.0" , None , None , ["1.0" , "foobar" , "invalid" , "1.0.0" ], ["1.0" ]),
760- # Test != with invalid versions (should pass through as " not equal" )
761- ("!=1.0" , None , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
762- ("!=1.0" , None , None , ["1.0" , "invalid" , "2.0" ], ["invalid" , " 2.0" ]),
759+ # Test != with invalid versions (should not pass as versions are not valid )
760+ ("!=1.0" , None , None , ["invalid" , "foobar" ], []),
761+ ("!=1.0" , None , None , ["1.0" , "invalid" , "2.0" ], ["2.0" ]),
763762 (
764763 "!=2.0.*" ,
765764 None ,
766765 None ,
767766 ["invalid" , "foobar" , "2.0" ],
768- ["invalid" , "foobar" ],
767+ []
769768 ),
770- ("!=2.0.*" , None , None , ["1.0" , "invalid" , "2.0.0" ], ["1.0" , "invalid" ]),
769+ ("!=2.0.*" , None , None , ["1.0" , "invalid" , "2.0.0" ], ["1.0" ]),
771770 # Test that !== ignores prereleases parameter for non-PEP 440 versions
772- ("!=1.0" , None , True , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
773- ("!=1.0" , None , False , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
774- ("!=1.0" , True , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
775- ("!=1.0" , False , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
776- ("!=1.0" , True , True , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
777- ("!=1.0" , False , False , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
771+ ("!=1.0" , None , True , ["invalid" , "foobar" ], []),
772+ ("!=1.0" , None , False , ["invalid" , "foobar" ], []),
773+ ("!=1.0" , True , None , ["invalid" , "foobar" ], []),
774+ ("!=1.0" , False , None , ["invalid" , "foobar" ], []),
775+ ("!=1.0" , True , True , ["invalid" , "foobar" ], []),
776+ ("!=1.0" , False , False , ["invalid" , "foobar" ], []),
778777 # Test that === ignores prereleases parameter for non-PEP 440 versions
779778 ("===foobar" , None , True , ["foobar" , "foo" ], ["foobar" ]),
780779 ("===foobar" , None , False , ["foobar" , "foo" ], ["foobar" ]),
@@ -1126,7 +1125,7 @@ def test_specifier_contains_installed_prereleases(
11261125 ("===1.0" , None , None , ["1.0" , "1.0+downstream1" ], ["1.0" ]),
11271126 # Test === combined with other operators (arbitrary string)
11281127 (">=1.0,===foobar" , None , None , ["foobar" , "1.0" , "2.0" ], []),
1129- ("!= 2.0,===foobar" , None , None , ["foobar" , "2.0" , "bar" ], ["foobar" ]),
1128+ ("!=2.0,===foobar" , None , None , ["foobar" , "2.0" , "bar" ], []),
11301129 # Test === combined with other operators (version string)
11311130 (">=1.0,===1.5" , None , None , ["1.0" , "1.5" , "2.0" ], ["1.5" ]),
11321131 (">=2.0,===1.5" , None , None , ["1.0" , "1.5" , "2.0" ], []),
@@ -1141,23 +1140,23 @@ def test_specifier_contains_installed_prereleases(
11411140 ("===1.0" , None , None , ["1.0" , "foobar" , "invalid" , "1.0.0" ], ["1.0" ]),
11421141 (">=1.0,===1.5" , None , None , ["1.5" , "foobar" , "invalid" ], ["1.5" ]),
11431142 # Test != with invalid versions (should pass through as "not equal")
1144- ("!=1.0" , None , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1145- ("!=1.0" , None , None , ["1.0" , "invalid" , "2.0" ], ["invalid" , " 2.0" ]),
1143+ ("!=1.0" , None , None , ["invalid" , "foobar" ], []),
1144+ ("!=1.0" , None , None , ["1.0" , "invalid" , "2.0" ], ["2.0" ]),
11461145 (
11471146 "!=2.0.*" ,
11481147 None ,
11491148 None ,
11501149 ["invalid" , "foobar" , "2.0" ],
1151- ["invalid" , "foobar" ],
1150+ [],
11521151 ),
1153- ("!=2.0.*" , None , None , ["1.0" , "invalid" , "2.0.0" ], ["1.0" , "invalid" ]),
1152+ ("!=2.0.*" , None , None , ["1.0" , "invalid" , "2.0.0" ], ["1.0" ]),
11541153 # Test != with invalid versions combined with other operators
11551154 (
11561155 "!=1.0,!=2.0" ,
11571156 None ,
11581157 None ,
11591158 ["invalid" , "1.0" , "2.0" , "3.0" ],
1160- ["invalid" , " 3.0" ],
1159+ ["3.0" ],
11611160 ),
11621161 (
11631162 ">=1.0,!=2.0" ,
@@ -1166,13 +1165,6 @@ def test_specifier_contains_installed_prereleases(
11661165 ["invalid" , "1.0" , "2.0" , "3.0" ],
11671166 ["1.0" , "3.0" ],
11681167 ),
1169- # Test that != ignores prereleases parameter for non-PEP 440 versions
1170- ("!=1.0" , None , True , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1171- ("!=1.0" , None , False , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1172- ("!=1.0" , True , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1173- ("!=1.0" , False , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1174- ("!=1.0" , True , True , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1175- ("!=1.0" , False , False , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
11761168 # Test that === ignores prereleases parameter for non-PEP 440 versions
11771169 ("===foobar" , None , True , ["foobar" , "foo" ], ["foobar" ]),
11781170 ("===foobar" , None , False , ["foobar" , "foo" ], ["foobar" ]),
@@ -1589,19 +1581,19 @@ def test_contains_rejects_invalid_specifier(
15891581 ("1.0" , "===1.0+downstream1" , False ),
15901582 ("1.0+downstream1" , "===1.0" , False ),
15911583 # Test === combined with other operators (arbitrary string)
1592- ("foobar" , "===foobar,!=1.0" , True ),
1584+ ("foobar" , "===foobar,!=1.0" , False ),
15931585 ("1.0" , "===foobar,!=1.0" , False ),
15941586 ("foobar" , ">=1.0,===foobar" , False ),
15951587 # Test === combined with other operators (version string)
15961588 ("1.5" , ">=1.0,===1.5" , True ),
15971589 ("1.5" , ">=2.0,===1.5" , False ), # Doesn't meet >=2.0
15981590 ("2.5" , ">=1.0,===2.5" , True ),
1599- # Test != with invalid versions (should pass as " not equal" )
1600- ("invalid" , "!=1.0" , True ),
1601- ("foobar" , "!=1.0" , True ),
1602- ("invalid" , "!=2.0.*" , True ),
1591+ # Test != with invalid versions (should not pass as not valid versions )
1592+ ("invalid" , "!=1.0" , False ),
1593+ ("foobar" , "!=1.0" , False ),
1594+ ("invalid" , "!=2.0.*" , False ),
16031595 # Test != with invalid versions combined with other operators
1604- ("invalid" , "!=1.0,!=2.0" , True ),
1596+ ("invalid" , "!=1.0,!=2.0" , False ),
16051597 ("foobar" , ">=1.0,!=2.0" , False ),
16061598 ("1.5" , ">=1.0,!=2.0" , True ),
16071599 ],
0 commit comments