Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 9193867

Browse files
committed
Add user/group to pip_requirements.
1 parent a3e9a84 commit 9193867

File tree

4 files changed

+41
-6
lines changed

4 files changed

+41
-6
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Poise-Python Changelog
22

3+
## v1.2.0
4+
5+
* Add support for passing `user` and `group` to `pip_requirements`.
6+
* Allow passing a virtualenv resource object to the `virtualenv` property.
7+
38
## v1.1.2
49

510
* Fix `PythonPackage#response_file_variables` for the Chef 12.6 initializer.

lib/poise_python/resources/pip_requirements.rb

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,14 @@ class Resource < Chef::Resource
4444
# requirements file.
4545
# @return [String]
4646
attribute(:path, kind_of: String, name_attribute: true)
47+
# @!attribute group
48+
# System group to install the package.
49+
# @return [String, Integer, nil]
50+
attribute(:group, kind_of: [String, Integer, NilClass])
51+
# @!attribute user
52+
# System user to install the package.
53+
# @return [String, Integer, nil]
54+
attribute(:user, kind_of: [String, Integer, NilClass])
4755
end
4856

4957
# The default provider for `pip_requirements`.
@@ -80,7 +88,7 @@ def install_requirements(upgrade: false)
8088
cmd << '--upgrade' if upgrade
8189
cmd << '--requirement'
8290
cmd << requirements_path
83-
output = python_shell_out!(cmd).stdout
91+
output = python_shell_out!(cmd, user: new_resource.user, group: new_resource.group).stdout
8492
if output.include?('Successfully installed')
8593
new_resource.updated_by_last_action(true)
8694
end

lib/poise_python/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@
1616

1717

1818
module PoisePython
19-
VERSION = '1.1.3.pre'
19+
VERSION = '1.2.0.pre'
2020
end

test/spec/resources/pip_requirements_spec.rb

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,20 @@
1717
require 'spec_helper'
1818

1919
describe PoisePython::Resources::PipRequirements do
20-
let(:pip_cmd) { }
20+
let(:pip_cmd) { %w{-m pip.__main__ install --requirement /test/requirements.txt} }
2121
let(:pip_output) { '' }
22+
let(:pip_user) { nil }
23+
let(:pip_group) { nil }
2224
step_into(:pip_requirements)
2325
before do
2426
allow(File).to receive(:directory?).and_return(false)
2527
allow(File).to receive(:directory?).with('/test').and_return(true)
2628
end
2729
before do
28-
expect_any_instance_of(PoisePython::Resources::PipRequirements::Provider).to receive(:python_shell_out!).with(pip_cmd).and_return(double(stdout: pip_output))
30+
expect_any_instance_of(PoisePython::Resources::PipRequirements::Provider).to receive(:python_shell_out!).with(pip_cmd, {user: pip_user, group: pip_group}).and_return(double(stdout: pip_output))
2931
end
3032

3133
context 'with a directory' do
32-
let(:pip_cmd) { %w{-m pip.__main__ install --requirement /test/requirements.txt} }
3334
recipe do
3435
pip_requirements '/test'
3536
end
@@ -46,6 +47,28 @@
4647
it { is_expected.to install_pip_requirements('/test/reqs.txt') }
4748
end # /context with a file
4849

50+
context 'with a user' do
51+
let(:pip_user) { 'testuser' }
52+
recipe do
53+
pip_requirements '/test' do
54+
user 'testuser'
55+
end
56+
end
57+
58+
it { is_expected.to install_pip_requirements('/test') }
59+
end # /context with a user
60+
61+
context 'with a group' do
62+
let(:pip_group) { 'testgroup' }
63+
recipe do
64+
pip_requirements '/test' do
65+
group 'testgroup'
66+
end
67+
end
68+
69+
it { is_expected.to install_pip_requirements('/test') }
70+
end # /context with a group
71+
4972
context 'action :upgrade' do
5073
let(:pip_cmd) { %w{-m pip.__main__ install --upgrade --requirement /test/requirements.txt} }
5174
recipe do
@@ -58,7 +81,6 @@
5881
end # /context action :upgrade
5982

6083
context 'with output' do
61-
let(:pip_cmd) { %w{-m pip.__main__ install --requirement /test/requirements.txt} }
6284
let(:pip_output) { 'Successfully installed' }
6385
recipe do
6486
pip_requirements '/test'

0 commit comments

Comments
 (0)