Fix required_plugins with prereleases (#8469)

* Fix required_plugins with prereleases

Fixes #8456

* Fix existing tests

* Update changelog/8456.bugfix.rst

Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>

Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>
This commit is contained in:
Florian Bruhin
2021-03-21 22:51:12 +01:00
committed by GitHub
parent 35df3e68d5
commit bc055e8e69
3 changed files with 30 additions and 9 deletions

View File

@@ -1270,14 +1270,16 @@ class Config:
missing_plugins = []
for required_plugin in required_plugins:
try:
spec = Requirement(required_plugin)
req = Requirement(required_plugin)
except InvalidRequirement:
missing_plugins.append(required_plugin)
continue
if spec.name not in plugin_dist_info:
if req.name not in plugin_dist_info:
missing_plugins.append(required_plugin)
elif Version(plugin_dist_info[spec.name]) not in spec.specifier:
elif not req.specifier.contains(
Version(plugin_dist_info[req.name]), prereleases=True
):
missing_plugins.append(required_plugin)
if missing_plugins: