File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -54,7 +54,12 @@ def get_extra_data_from_requirements(requirements_file="requirements.txt") -> It
5454
5555def is_requirement_pinned (requirement : Requirement ) -> bool :
5656 specifiers = requirement .specifier
57- return specifiers and len (specifiers ) == 1 and next (iter (specifiers )).operator in {"==" , "===" }
57+ if len (specifiers ) != 1 :
58+ return False
59+ specifier = next (iter (specifiers ))
60+ return specifier .operator == "===" or (
61+ specifier .operator == "==" and not specifier .version .endswith (".*" )
62+ )
5863
5964
6065def get_dependency (specifier ) -> DependentPackage :
Original file line number Diff line number Diff line change 1+ import pytest
2+
3+ from packvers .requirements import Requirement
4+ from python_inspector .dependencies import get_dependency
5+ from python_inspector .dependencies import is_requirement_pinned
6+
7+ @pytest .mark .parametrize (
8+ "text,expected" ,
9+ [
10+ ("demo" , False ),
11+ ("demo==1.2.*" , False ),
12+ ("demo>=1" , False ),
13+ ("demo==1.2" , True ),
14+ ("demo===1.2" , True ),
15+ ("demo===1.2.*" , True ),
16+ ],
17+ )
18+ def test_requirement_pins (text , expected ):
19+ assert is_requirement_pinned (Requirement (text )) is expected
20+
21+
22+ def test_wildcard_dependency_has_no_exact_version ():
23+ dependency = get_dependency ("demo==1.2.*" )
24+ assert dependency .purl == "pkg:pypi/demo"
25+ assert dependency .is_resolved is False
You can’t perform that action at this time.
0 commit comments