From 9c95f74a3f7f2d91fc03084899c17a119595f714 Mon Sep 17 00:00:00 2001 From: Alex Cullen Date: Thu, 26 Aug 2021 16:38:30 -0400 Subject: [PATCH 01/13] add declared requirements install test --- .../declared_requirements_install.rb | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 spec/acceptance/declared_requirements_install.rb diff --git a/spec/acceptance/declared_requirements_install.rb b/spec/acceptance/declared_requirements_install.rb new file mode 100644 index 00000000..5eb97a74 --- /dev/null +++ b/spec/acceptance/declared_requirements_install.rb @@ -0,0 +1,25 @@ +require 'spec_helper' + +describe 'requirements' do + it 'checks declared requirements file is installed to venv' do + pp = <<-EOS + class {'/tmp/requirements.txt': + ensure => 'present', + content => 'requests' + } + + python::venv {'/tmp/pyvenv': + ensure => 'present', + version => ${facts['python_version']} + } + + python::requirements {'/tmp/requirements.txt': + virtualenv => '/tmp/pyvenv' + } + EOS + + apply_manifest(pp, catch_failures: true) + + expect(shell('/bin/pip3 list --no-index | grep requests'.stdout).to match(%r{requests: \(\d+.\d+.\d+\)})) + end +end From 2f0f66285df6537d877fa56635045facf6a99913 Mon Sep 17 00:00:00 2001 From: Alex Cullen Date: Thu, 26 Aug 2021 16:46:33 -0400 Subject: [PATCH 02/13] fix nested parentheses --- spec/acceptance/declared_requirements_install.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/acceptance/declared_requirements_install.rb b/spec/acceptance/declared_requirements_install.rb index 5eb97a74..ea9a77ac 100644 --- a/spec/acceptance/declared_requirements_install.rb +++ b/spec/acceptance/declared_requirements_install.rb @@ -20,6 +20,6 @@ class {'/tmp/requirements.txt': apply_manifest(pp, catch_failures: true) - expect(shell('/bin/pip3 list --no-index | grep requests'.stdout).to match(%r{requests: \(\d+.\d+.\d+\)})) + expect(shell('/bin/pip3 list --no-index | grep requests').stdout).to match(%r{requests: \(\d+.\d+.\d+\)}) end end From f11f3be0f717a60df549c7e7b66f271b78f5640b Mon Sep 17 00:00:00 2001 From: Alex Cullen Date: Fri, 27 Aug 2021 09:31:22 -0400 Subject: [PATCH 03/13] Test fixes + rename --- ...rements_install.rb => declared_requirements_install_spec.rb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename spec/acceptance/{declared_requirements_install.rb => declared_requirements_install_spec.rb} (80%) diff --git a/spec/acceptance/declared_requirements_install.rb b/spec/acceptance/declared_requirements_install_spec.rb similarity index 80% rename from spec/acceptance/declared_requirements_install.rb rename to spec/acceptance/declared_requirements_install_spec.rb index ea9a77ac..86e39842 100644 --- a/spec/acceptance/declared_requirements_install.rb +++ b/spec/acceptance/declared_requirements_install_spec.rb @@ -20,6 +20,6 @@ class {'/tmp/requirements.txt': apply_manifest(pp, catch_failures: true) - expect(shell('/bin/pip3 list --no-index | grep requests').stdout).to match(%r{requests: \(\d+.\d+.\d+\)}) + expect(shell('/tmp/pyvenv/bin/pip3 list --no-index | grep requests').stdout).to match(%r{requests: \(\d+.\d+.\d+\)}) end end From e6bab96203ed16482ff99e456f4dc7cdc992610f Mon Sep 17 00:00:00 2001 From: Alex Cullen Date: Fri, 27 Aug 2021 09:37:53 -0400 Subject: [PATCH 04/13] require spec_helper_acceptance (not spec_helper) --- spec/acceptance/declared_requirements_install_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/acceptance/declared_requirements_install_spec.rb b/spec/acceptance/declared_requirements_install_spec.rb index 86e39842..5643377f 100644 --- a/spec/acceptance/declared_requirements_install_spec.rb +++ b/spec/acceptance/declared_requirements_install_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_acceptance' describe 'requirements' do it 'checks declared requirements file is installed to venv' do From 7c6d05e3479ca886d3b09abf589d542f8fe1db53 Mon Sep 17 00:00:00 2001 From: Alex Cullen Date: Fri, 27 Aug 2021 09:49:45 -0400 Subject: [PATCH 05/13] class -> file --- spec/acceptance/declared_requirements_install_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/acceptance/declared_requirements_install_spec.rb b/spec/acceptance/declared_requirements_install_spec.rb index 5643377f..175cee0a 100644 --- a/spec/acceptance/declared_requirements_install_spec.rb +++ b/spec/acceptance/declared_requirements_install_spec.rb @@ -3,7 +3,7 @@ describe 'requirements' do it 'checks declared requirements file is installed to venv' do pp = <<-EOS - class {'/tmp/requirements.txt': + file {'/tmp/requirements.txt': ensure => 'present', content => 'requests' } From fcaaf7ea2dfd430227c219e038dffcffacff3692 Mon Sep 17 00:00:00 2001 From: Alex Cullen Date: Fri, 27 Aug 2021 09:59:01 -0400 Subject: [PATCH 06/13] minor syntax fixes --- spec/acceptance/declared_requirements_install_spec.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/acceptance/declared_requirements_install_spec.rb b/spec/acceptance/declared_requirements_install_spec.rb index 175cee0a..95c15f44 100644 --- a/spec/acceptance/declared_requirements_install_spec.rb +++ b/spec/acceptance/declared_requirements_install_spec.rb @@ -4,13 +4,13 @@ it 'checks declared requirements file is installed to venv' do pp = <<-EOS file {'/tmp/requirements.txt': - ensure => 'present', - content => 'requests' + ensure => 'present', + content => 'requests', } python::venv {'/tmp/pyvenv': - ensure => 'present', - version => ${facts['python_version']} + ensure => 'present', + version => ${facts['python_version']}, } python::requirements {'/tmp/requirements.txt': From 9bd4c5388aa6c62648affd1a3b9b09f8d08054fd Mon Sep 17 00:00:00 2001 From: Alex Cullen Date: Fri, 27 Aug 2021 10:09:39 -0400 Subject: [PATCH 07/13] fix syntax error in facts --- spec/acceptance/declared_requirements_install_spec.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/acceptance/declared_requirements_install_spec.rb b/spec/acceptance/declared_requirements_install_spec.rb index 95c15f44..5937df35 100644 --- a/spec/acceptance/declared_requirements_install_spec.rb +++ b/spec/acceptance/declared_requirements_install_spec.rb @@ -3,17 +3,17 @@ describe 'requirements' do it 'checks declared requirements file is installed to venv' do pp = <<-EOS - file {'/tmp/requirements.txt': + file { '/tmp/requirements.txt': ensure => 'present', content => 'requests', } - python::venv {'/tmp/pyvenv': + python::venv { '/tmp/pyvenv': ensure => 'present', - version => ${facts['python_version']}, + version => $facts['python_version'], } - python::requirements {'/tmp/requirements.txt': + python::requirements { '/tmp/requirements.txt': virtualenv => '/tmp/pyvenv' } EOS From f1620f56d1249d17982d605676e8218cefd2495a Mon Sep 17 00:00:00 2001 From: Alex Cullen Date: Fri, 27 Aug 2021 10:18:11 -0400 Subject: [PATCH 08/13] venv -> pyvenv --- spec/acceptance/declared_requirements_install_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/acceptance/declared_requirements_install_spec.rb b/spec/acceptance/declared_requirements_install_spec.rb index 5937df35..bdd0dcda 100644 --- a/spec/acceptance/declared_requirements_install_spec.rb +++ b/spec/acceptance/declared_requirements_install_spec.rb @@ -8,7 +8,7 @@ content => 'requests', } - python::venv { '/tmp/pyvenv': + python::pyvenv { '/tmp/pyvenv': ensure => 'present', version => $facts['python_version'], } From 6d8e1feeee2b92921e278dc86a9973c26c33b34a Mon Sep 17 00:00:00 2001 From: Alex Cullen Date: Fri, 27 Aug 2021 11:08:02 -0400 Subject: [PATCH 09/13] use 'system' python for pyvenv --- spec/acceptance/declared_requirements_install_spec.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/spec/acceptance/declared_requirements_install_spec.rb b/spec/acceptance/declared_requirements_install_spec.rb index bdd0dcda..173c4fe6 100644 --- a/spec/acceptance/declared_requirements_install_spec.rb +++ b/spec/acceptance/declared_requirements_install_spec.rb @@ -10,7 +10,6 @@ python::pyvenv { '/tmp/pyvenv': ensure => 'present', - version => $facts['python_version'], } python::requirements { '/tmp/requirements.txt': From 9d6ac34eb6c80ac26730b7d2ee6598a5b43b7e06 Mon Sep 17 00:00:00 2001 From: Alex Cullen Date: Fri, 27 Aug 2021 11:15:43 -0400 Subject: [PATCH 10/13] remove : from regex --- spec/acceptance/declared_requirements_install_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/acceptance/declared_requirements_install_spec.rb b/spec/acceptance/declared_requirements_install_spec.rb index 173c4fe6..b8eb6174 100644 --- a/spec/acceptance/declared_requirements_install_spec.rb +++ b/spec/acceptance/declared_requirements_install_spec.rb @@ -19,6 +19,6 @@ 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+\)}) + expect(shell('/tmp/pyvenv/bin/pip3 list --no-index | grep requests').stdout).to match(%r{requests \(\d+.\d+.\d+\)}) end end From 3baf6c72473c7c94244611e980d93edf6f7dbe1c Mon Sep 17 00:00:00 2001 From: Alex Cullen Date: Fri, 27 Aug 2021 11:25:39 -0400 Subject: [PATCH 11/13] accept arbitrary # of spaces (may still need to remove parentheses) --- spec/acceptance/declared_requirements_install_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/acceptance/declared_requirements_install_spec.rb b/spec/acceptance/declared_requirements_install_spec.rb index b8eb6174..198cc3dd 100644 --- a/spec/acceptance/declared_requirements_install_spec.rb +++ b/spec/acceptance/declared_requirements_install_spec.rb @@ -19,6 +19,6 @@ 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+\)}) + expect(shell('/tmp/pyvenv/bin/pip3 list --no-index | grep requests').stdout).to match(%r{requests +\(\d+.\d+.\d+\)}) end end From 5299bb233caab29753503d949775a61eeb85112f Mon Sep 17 00:00:00 2001 From: Alex Cullen Date: Fri, 27 Aug 2021 11:41:25 -0400 Subject: [PATCH 12/13] remove parentheses in regex match --- spec/acceptance/declared_requirements_install_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/acceptance/declared_requirements_install_spec.rb b/spec/acceptance/declared_requirements_install_spec.rb index 198cc3dd..185e6db2 100644 --- a/spec/acceptance/declared_requirements_install_spec.rb +++ b/spec/acceptance/declared_requirements_install_spec.rb @@ -19,6 +19,6 @@ 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+\)}) + expect(shell('/tmp/pyvenv/bin/pip3 list --no-index | grep requests').stdout).to match(%r{requests +\d+.\d+.\d+}) end end From 0d389aae10ac70996b591f947a41546972b46ce3 Mon Sep 17 00:00:00 2001 From: Alex Cullen Date: Fri, 27 Aug 2021 11:55:22 -0400 Subject: [PATCH 13/13] Revert "If user declares their own requirements, don't set subscribe to undef." This reverts commit 8591aed9e8ba0a24a64914f8c302ffc4a8178f6d. --- manifests/requirements.pp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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,