@@ -516,15 +516,14 @@ def test_specifiers(self, version: str, spec_str: str, expected: bool) -> None:
516516 ("spec_str" , "version" , "expected" ),
517517 [
518518 ("==1.0" , "not a valid version" , False ),
519+ ("==1.*" , "not a valid version" , False ),
519520 (">=1.0" , "not a valid version" , False ),
520521 (">1.0" , "not a valid version" , False ),
521522 ("<=1.0" , "not a valid version" , False ),
522523 ("<1.0" , "not a valid version" , False ),
523524 ("~=1.0" , "not a valid version" , False ),
524- # Test invalid versions with != (should pass as "not equal")
525- ("!=1.0" , "not a valid version" , True ),
526- ("!=1.0" , "not a valid version" , True ),
527- ("!=2.0.*" , "not a valid version" , True ),
525+ ("!=1.0" , "not a valid version" , False ),
526+ ("!=1.*" , "not a valid version" , False ),
528527 # Test with arbitrary equality (===)
529528 ("===invalid" , "invalid" , True ),
530529 ("===foobar" , "invalid" , False ),
@@ -753,24 +752,24 @@ def test_specifiers_prereleases(
753752 ["foobar" ],
754753 ),
755754 ("===1.0" , None , None , ["1.0" , "foobar" , "invalid" , "1.0.0" ], ["1.0" ]),
756- # Test != with invalid versions (should pass through as " not equal" )
757- ("!=1.0" , None , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
758- ("!=1.0" , None , None , ["1.0" , "invalid" , "2.0" ], ["invalid" , " 2.0" ]),
755+ # Test != with invalid versions (should not pass as versions are not valid )
756+ ("!=1.0" , None , None , ["invalid" , "foobar" ], []),
757+ ("!=1.0" , None , None , ["1.0" , "invalid" , "2.0" ], ["2.0" ]),
759758 (
760759 "!=2.0.*" ,
761760 None ,
762761 None ,
763762 ["invalid" , "foobar" , "2.0" ],
764- ["invalid" , "foobar" ],
763+ []
765764 ),
766- ("!=2.0.*" , None , None , ["1.0" , "invalid" , "2.0.0" ], ["1.0" , "invalid" ]),
765+ ("!=2.0.*" , None , None , ["1.0" , "invalid" , "2.0.0" ], ["1.0" ]),
767766 # Test that !== ignores prereleases parameter for non-PEP 440 versions
768- ("!=1.0" , None , True , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
769- ("!=1.0" , None , False , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
770- ("!=1.0" , True , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
771- ("!=1.0" , False , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
772- ("!=1.0" , True , True , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
773- ("!=1.0" , False , False , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
767+ ("!=1.0" , None , True , ["invalid" , "foobar" ], []),
768+ ("!=1.0" , None , False , ["invalid" , "foobar" ], []),
769+ ("!=1.0" , True , None , ["invalid" , "foobar" ], []),
770+ ("!=1.0" , False , None , ["invalid" , "foobar" ], []),
771+ ("!=1.0" , True , True , ["invalid" , "foobar" ], []),
772+ ("!=1.0" , False , False , ["invalid" , "foobar" ], []),
774773 # Test that === ignores prereleases parameter for non-PEP 440 versions
775774 ("===foobar" , None , True , ["foobar" , "foo" ], ["foobar" ]),
776775 ("===foobar" , None , False , ["foobar" , "foo" ], ["foobar" ]),
@@ -1118,7 +1117,7 @@ def test_specifier_contains_installed_prereleases(
11181117 ("===1.0" , None , None , ["1.0" , "1.0+downstream1" ], ["1.0" ]),
11191118 # Test === combined with other operators (arbitrary string)
11201119 (">=1.0,===foobar" , None , None , ["foobar" , "1.0" , "2.0" ], []),
1121- ("!= 2.0,===foobar" , None , None , ["foobar" , "2.0" , "bar" ], ["foobar" ]),
1120+ ("!=2.0,===foobar" , None , None , ["foobar" , "2.0" , "bar" ], []),
11221121 # Test === combined with other operators (version string)
11231122 (">=1.0,===1.5" , None , None , ["1.0" , "1.5" , "2.0" ], ["1.5" ]),
11241123 (">=2.0,===1.5" , None , None , ["1.0" , "1.5" , "2.0" ], []),
@@ -1133,23 +1132,23 @@ def test_specifier_contains_installed_prereleases(
11331132 ("===1.0" , None , None , ["1.0" , "foobar" , "invalid" , "1.0.0" ], ["1.0" ]),
11341133 (">=1.0,===1.5" , None , None , ["1.5" , "foobar" , "invalid" ], ["1.5" ]),
11351134 # Test != with invalid versions (should pass through as "not equal")
1136- ("!=1.0" , None , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1137- ("!=1.0" , None , None , ["1.0" , "invalid" , "2.0" ], ["invalid" , " 2.0" ]),
1135+ ("!=1.0" , None , None , ["invalid" , "foobar" ], []),
1136+ ("!=1.0" , None , None , ["1.0" , "invalid" , "2.0" ], ["2.0" ]),
11381137 (
11391138 "!=2.0.*" ,
11401139 None ,
11411140 None ,
11421141 ["invalid" , "foobar" , "2.0" ],
1143- ["invalid" , "foobar" ],
1142+ [],
11441143 ),
1145- ("!=2.0.*" , None , None , ["1.0" , "invalid" , "2.0.0" ], ["1.0" , "invalid" ]),
1144+ ("!=2.0.*" , None , None , ["1.0" , "invalid" , "2.0.0" ], ["1.0" ]),
11461145 # Test != with invalid versions combined with other operators
11471146 (
11481147 "!=1.0,!=2.0" ,
11491148 None ,
11501149 None ,
11511150 ["invalid" , "1.0" , "2.0" , "3.0" ],
1152- ["invalid" , " 3.0" ],
1151+ ["3.0" ],
11531152 ),
11541153 (
11551154 ">=1.0,!=2.0" ,
@@ -1158,13 +1157,6 @@ def test_specifier_contains_installed_prereleases(
11581157 ["invalid" , "1.0" , "2.0" , "3.0" ],
11591158 ["1.0" , "3.0" ],
11601159 ),
1161- # Test that != ignores prereleases parameter for non-PEP 440 versions
1162- ("!=1.0" , None , True , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1163- ("!=1.0" , None , False , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1164- ("!=1.0" , True , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1165- ("!=1.0" , False , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1166- ("!=1.0" , True , True , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1167- ("!=1.0" , False , False , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
11681160 # Test that === ignores prereleases parameter for non-PEP 440 versions
11691161 ("===foobar" , None , True , ["foobar" , "foo" ], ["foobar" ]),
11701162 ("===foobar" , None , False , ["foobar" , "foo" ], ["foobar" ]),
@@ -1581,19 +1573,19 @@ def test_contains_rejects_invalid_specifier(
15811573 ("1.0" , "===1.0+downstream1" , False ),
15821574 ("1.0+downstream1" , "===1.0" , False ),
15831575 # Test === combined with other operators (arbitrary string)
1584- ("foobar" , "===foobar,!=1.0" , True ),
1576+ ("foobar" , "===foobar,!=1.0" , False ),
15851577 ("1.0" , "===foobar,!=1.0" , False ),
15861578 ("foobar" , ">=1.0,===foobar" , False ),
15871579 # Test === combined with other operators (version string)
15881580 ("1.5" , ">=1.0,===1.5" , True ),
15891581 ("1.5" , ">=2.0,===1.5" , False ), # Doesn't meet >=2.0
15901582 ("2.5" , ">=1.0,===2.5" , True ),
1591- # Test != with invalid versions (should pass as " not equal" )
1592- ("invalid" , "!=1.0" , True ),
1593- ("foobar" , "!=1.0" , True ),
1594- ("invalid" , "!=2.0.*" , True ),
1583+ # Test != with invalid versions (should not pass as not valid versions )
1584+ ("invalid" , "!=1.0" , False ),
1585+ ("foobar" , "!=1.0" , False ),
1586+ ("invalid" , "!=2.0.*" , False ),
15951587 # Test != with invalid versions combined with other operators
1596- ("invalid" , "!=1.0,!=2.0" , True ),
1588+ ("invalid" , "!=1.0,!=2.0" , False ),
15971589 ("foobar" , ">=1.0,!=2.0" , False ),
15981590 ("1.5" , ">=1.0,!=2.0" , True ),
15991591 ],
0 commit comments