@@ -498,15 +498,14 @@ def test_specifiers(self, version, spec, expected):
498498 ("spec" , "version" , "expected" ),
499499 [
500500 ("==1.0" , "not a valid version" , False ),
501+ ("==1.*" , "not a valid version" , False ),
501502 (">=1.0" , "not a valid version" , False ),
502503 (">1.0" , "not a valid version" , False ),
503504 ("<=1.0" , "not a valid version" , False ),
504505 ("<1.0" , "not a valid version" , False ),
505506 ("~=1.0" , "not a valid version" , False ),
506- # Test invalid versions with != (should pass as "not equal")
507- ("!=1.0" , "not a valid version" , True ),
508- ("!=1.0" , "not a valid version" , True ),
509- ("!=2.0.*" , "not a valid version" , True ),
507+ ("!=1.0" , "not a valid version" , False ),
508+ ("!=1.*" , "not a valid version" , False ),
510509 # Test with arbitrary equality (===)
511510 ("===invalid" , "invalid" , True ),
512511 ("===foobar" , "invalid" , False ),
@@ -686,24 +685,24 @@ def test_specifiers_prereleases(
686685 ["foobar" ],
687686 ),
688687 ("===1.0" , None , None , ["1.0" , "foobar" , "invalid" , "1.0.0" ], ["1.0" ]),
689- # Test != with invalid versions (should pass through as " not equal" )
690- ("!=1.0" , None , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
691- ("!=1.0" , None , None , ["1.0" , "invalid" , "2.0" ], ["invalid" , " 2.0" ]),
688+ # Test != with invalid versions (should not pass as versions are not valid )
689+ ("!=1.0" , None , None , ["invalid" , "foobar" ], []),
690+ ("!=1.0" , None , None , ["1.0" , "invalid" , "2.0" ], ["2.0" ]),
692691 (
693692 "!=2.0.*" ,
694693 None ,
695694 None ,
696695 ["invalid" , "foobar" , "2.0" ],
697- ["invalid" , "foobar" ],
696+ []
698697 ),
699- ("!=2.0.*" , None , None , ["1.0" , "invalid" , "2.0.0" ], ["1.0" , "invalid" ]),
698+ ("!=2.0.*" , None , None , ["1.0" , "invalid" , "2.0.0" ], ["1.0" ]),
700699 # Test that !== ignores prereleases parameter for non-PEP 440 versions
701- ("!=1.0" , None , True , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
702- ("!=1.0" , None , False , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
703- ("!=1.0" , True , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
704- ("!=1.0" , False , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
705- ("!=1.0" , True , True , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
706- ("!=1.0" , False , False , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
700+ ("!=1.0" , None , True , ["invalid" , "foobar" ], []),
701+ ("!=1.0" , None , False , ["invalid" , "foobar" ], []),
702+ ("!=1.0" , True , None , ["invalid" , "foobar" ], []),
703+ ("!=1.0" , False , None , ["invalid" , "foobar" ], []),
704+ ("!=1.0" , True , True , ["invalid" , "foobar" ], []),
705+ ("!=1.0" , False , False , ["invalid" , "foobar" ], []),
707706 # Test that === ignores prereleases parameter for non-PEP 440 versions
708707 ("===foobar" , None , True , ["foobar" , "foo" ], ["foobar" ]),
709708 ("===foobar" , None , False , ["foobar" , "foo" ], ["foobar" ]),
@@ -1052,7 +1051,7 @@ def test_specifier_contains_installed_prereleases(
10521051 ("===1.0" , None , None , ["1.0" , "1.0+downstream1" ], ["1.0" ]),
10531052 # Test === combined with other operators (arbitrary string)
10541053 (">=1.0,===foobar" , None , None , ["foobar" , "1.0" , "2.0" ], []),
1055- ("!= 2.0,===foobar" , None , None , ["foobar" , "2.0" , "bar" ], ["foobar" ]),
1054+ ("!=2.0,===foobar" , None , None , ["foobar" , "2.0" , "bar" ], []),
10561055 # Test === combined with other operators (version string)
10571056 (">=1.0,===1.5" , None , None , ["1.0" , "1.5" , "2.0" ], ["1.5" ]),
10581057 (">=2.0,===1.5" , None , None , ["1.0" , "1.5" , "2.0" ], []),
@@ -1067,23 +1066,23 @@ def test_specifier_contains_installed_prereleases(
10671066 ("===1.0" , None , None , ["1.0" , "foobar" , "invalid" , "1.0.0" ], ["1.0" ]),
10681067 (">=1.0,===1.5" , None , None , ["1.5" , "foobar" , "invalid" ], ["1.5" ]),
10691068 # Test != with invalid versions (should pass through as "not equal")
1070- ("!=1.0" , None , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1071- ("!=1.0" , None , None , ["1.0" , "invalid" , "2.0" ], ["invalid" , " 2.0" ]),
1069+ ("!=1.0" , None , None , ["invalid" , "foobar" ], []),
1070+ ("!=1.0" , None , None , ["1.0" , "invalid" , "2.0" ], ["2.0" ]),
10721071 (
10731072 "!=2.0.*" ,
10741073 None ,
10751074 None ,
10761075 ["invalid" , "foobar" , "2.0" ],
1077- ["invalid" , "foobar" ],
1076+ [],
10781077 ),
1079- ("!=2.0.*" , None , None , ["1.0" , "invalid" , "2.0.0" ], ["1.0" , "invalid" ]),
1078+ ("!=2.0.*" , None , None , ["1.0" , "invalid" , "2.0.0" ], ["1.0" ]),
10801079 # Test != with invalid versions combined with other operators
10811080 (
10821081 "!=1.0,!=2.0" ,
10831082 None ,
10841083 None ,
10851084 ["invalid" , "1.0" , "2.0" , "3.0" ],
1086- ["invalid" , " 3.0" ],
1085+ ["3.0" ],
10871086 ),
10881087 (
10891088 ">=1.0,!=2.0" ,
@@ -1092,13 +1091,6 @@ def test_specifier_contains_installed_prereleases(
10921091 ["invalid" , "1.0" , "2.0" , "3.0" ],
10931092 ["1.0" , "3.0" ],
10941093 ),
1095- # Test that != ignores prereleases parameter for non-PEP 440 versions
1096- ("!=1.0" , None , True , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1097- ("!=1.0" , None , False , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1098- ("!=1.0" , True , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1099- ("!=1.0" , False , None , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1100- ("!=1.0" , True , True , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
1101- ("!=1.0" , False , False , ["invalid" , "foobar" ], ["invalid" , "foobar" ]),
11021094 # Test that === ignores prereleases parameter for non-PEP 440 versions
11031095 ("===foobar" , None , True , ["foobar" , "foo" ], ["foobar" ]),
11041096 ("===foobar" , None , False , ["foobar" , "foo" ], ["foobar" ]),
@@ -1502,19 +1494,19 @@ def test_contains_rejects_invalid_specifier(self, specifier, input):
15021494 ("1.0" , "===1.0+downstream1" , False ),
15031495 ("1.0+downstream1" , "===1.0" , False ),
15041496 # Test === combined with other operators (arbitrary string)
1505- ("foobar" , "===foobar,!=1.0" , True ),
1497+ ("foobar" , "===foobar,!=1.0" , False ),
15061498 ("1.0" , "===foobar,!=1.0" , False ),
15071499 ("foobar" , ">=1.0,===foobar" , False ),
15081500 # Test === combined with other operators (version string)
15091501 ("1.5" , ">=1.0,===1.5" , True ),
15101502 ("1.5" , ">=2.0,===1.5" , False ), # Doesn't meet >=2.0
15111503 ("2.5" , ">=1.0,===2.5" , True ),
1512- # Test != with invalid versions (should pass as " not equal" )
1513- ("invalid" , "!=1.0" , True ),
1514- ("foobar" , "!=1.0" , True ),
1515- ("invalid" , "!=2.0.*" , True ),
1504+ # Test != with invalid versions (should not pass as not valid versions )
1505+ ("invalid" , "!=1.0" , False ),
1506+ ("foobar" , "!=1.0" , False ),
1507+ ("invalid" , "!=2.0.*" , False ),
15161508 # Test != with invalid versions combined with other operators
1517- ("invalid" , "!=1.0,!=2.0" , True ),
1509+ ("invalid" , "!=1.0,!=2.0" , False ),
15181510 ("foobar" , ">=1.0,!=2.0" , False ),
15191511 ("1.5" , ">=1.0,!=2.0" , True ),
15201512 ],
0 commit comments