File tree 2 files changed +11
-0
lines changed
lib/puppet/provider/package
spec/unit/provider/package
2 files changed +11
-0
lines changed Original file line number Diff line number Diff line change @@ -99,9 +99,12 @@ def self.instances(target_command = nil)
99
99
100
100
# Parse lines of output from `pip freeze`, which are structured as:
101
101
# _package_==_version_ or _package_===_version_
102
+ # or _package_ @ someURL@_version_
102
103
def self . parse ( line )
103
104
if line . chomp =~ /^([^=]+)===?([^=]+)$/
104
105
{ :ensure => $2, :name => $1, :provider => name }
106
+ elsif line . chomp =~ /^([^@]+) @ [^@]+@(.+)$/
107
+ { :ensure => Regexp . last_match ( 2 ) , :name => Regexp . last_match ( 1 ) , :provider => name }
105
108
end
106
109
end
107
110
Original file line number Diff line number Diff line change 38
38
} )
39
39
end
40
40
41
+ it "should correctly parse URL format" do
42
+ expect ( described_class . parse ( "real_package @ git+https://github.com/example/test.git@6b4e203b66c1de7345984882e2b13bf87c700095" ) ) . to eq ( {
43
+ :ensure => "6b4e203b66c1de7345984882e2b13bf87c700095" ,
44
+ :name => "real_package" ,
45
+ :provider => :pip ,
46
+ } )
47
+ end
48
+
41
49
it "should return nil on invalid input" do
42
50
expect ( described_class . parse ( "foo" ) ) . to eq ( nil )
43
51
end
You can’t perform that action at this time.
0 commit comments