diff --git a/manifests/requirements.pp b/manifests/requirements.pp index e8c253fa..9d245be3 100644 --- a/manifests/requirements.pp +++ b/manifests/requirements.pp @@ -88,8 +88,11 @@ replace => false, content => '# Puppet will install and/or update pip packages listed here', } + + $local_subscribe = File[$requirements] + } else { + $local_subscribe = undef } - $local_subscribe = File[$requirements] exec { "python_requirements${name}": provider => shell, diff --git a/spec/acceptance/declared_requirements_install_spec.rb b/spec/acceptance/declared_requirements_install_spec.rb new file mode 100644 index 00000000..185e6db2 --- /dev/null +++ b/spec/acceptance/declared_requirements_install_spec.rb @@ -0,0 +1,24 @@ +require 'spec_helper_acceptance' + +describe 'requirements' do + it 'checks declared requirements file is installed to venv' do + pp = <<-EOS + file { '/tmp/requirements.txt': + ensure => 'present', + content => 'requests', + } + + python::pyvenv { '/tmp/pyvenv': + ensure => 'present', + } + + python::requirements { '/tmp/requirements.txt': + virtualenv => '/tmp/pyvenv' + } + EOS + + apply_manifest(pp, catch_failures: true) + + expect(shell('/tmp/pyvenv/bin/pip3 list --no-index | grep requests').stdout).to match(%r{requests +\d+.\d+.\d+}) + end +end