Skip to content

Commit d91f26b

Browse files
authored
Merge pull request #537 from pjonesIDBS/patch-1
Fixes for virtualenv_version fact when virtualenv > 20.x
2 parents 6ea41a1 + 56f5199 commit d91f26b

File tree

2 files changed

+29
-4
lines changed

2 files changed

+29
-4
lines changed

lib/facter/virtualenv_version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Facter.add('virtualenv_version') do
44
setcode do
55
if Facter::Util::Resolution.which('virtualenv')
6-
Facter::Util::Resolution.exec('virtualenv --version 2>&1').match(%r{^(\d+\.\d+\.?\d*).*$})[0]
6+
Facter::Util::Resolution.exec('virtualenv --version 2>&1').match(%r{(\d+\.\d+\.?\d*).*$})[1]
77
end
88
end
99
end

spec/unit/facter/virtualenv_version_spec.rb

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,24 @@
55
Facter.clear
66
end
77

8-
let(:virtualenv_version_output) do
8+
let(:virtualenv_old_version_output) do
99
<<-EOS
1010
12.0.7
1111
EOS
1212
end
1313

14-
describe 'virtualenv_version' do
14+
let(:virtualenv_new_version_output) do
15+
<<-EOS
16+
virtualenv 20.0.17 from /opt/python/lib/python3.5/site-packages/virtualenv/__init__.py
17+
EOS
18+
end
19+
20+
describe 'virtualenv_version old' do
1521
context 'returns virtualenv version when virtualenv present' do
1622
it do
1723
Facter::Util::Resolution.stubs(:exec)
1824
Facter::Util::Resolution.expects(:which).with('virtualenv').returns(true)
19-
Facter::Util::Resolution.expects(:exec).with('virtualenv --version 2>&1').returns(virtualenv_version_output)
25+
Facter::Util::Resolution.expects(:exec).with('virtualenv --version 2>&1').returns(virtualenv_old_version_output)
2026
expect(Facter.value(:virtualenv_version)).to eq('12.0.7')
2127
end
2228
end
@@ -29,4 +35,23 @@
2935
end
3036
end
3137
end
38+
39+
describe 'virtualenv_version new' do
40+
context 'returns virtualenv version when virtualenv present' do
41+
it do
42+
Facter::Util::Resolution.stubs(:exec)
43+
Facter::Util::Resolution.expects(:which).with('virtualenv').returns(true)
44+
Facter::Util::Resolution.expects(:exec).with('virtualenv --version 2>&1').returns(virtualenv_new_version_output)
45+
expect(Facter.value(:virtualenv_version)).to eq('20.0.17')
46+
end
47+
end
48+
49+
context 'returns nil when virtualenv not present' do
50+
it do
51+
Facter::Util::Resolution.stubs(:exec)
52+
Facter::Util::Resolution.expects(:which).with('virtualenv').returns(false)
53+
expect(Facter.value(:virtualenv_version)).to eq(nil)
54+
end
55+
end
56+
end
3257
end

0 commit comments

Comments
 (0)