X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=spec%2Fdefines%2Fmark_spec.rb;h=e73901e95a347189e41762543ab292e2a2673ceb;hb=refs%2Fheads%2Frelease-prep;hp=0d059a51732c7ab05473a18f24fd8c3119b8dfdd;hpb=18c44ad278aef0b5644112d21ce1c2d59085b76c;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/spec/defines/mark_spec.rb b/spec/defines/mark_spec.rb index 0d059a5..e73901e 100644 --- a/spec/defines/mark_spec.rb +++ b/spec/defines/mark_spec.rb @@ -4,7 +4,7 @@ require 'spec_helper' describe 'apt::mark', type: :define do let :title do - 'my_source' + 'mysource' end let :facts do @@ -13,38 +13,94 @@ describe 'apt::mark', type: :define do family: 'Debian', name: 'Debian', release: { - major: '8', - full: '8.0', + major: '9', + full: '9.0' }, distro: { - codename: 'jessie', - id: 'Debian', - }, - }, + codename: 'stretch', + id: 'Debian' + } + } } end context 'with correct seting' do let :params do { - 'setting' => 'manual', + 'setting' => 'manual' } end it { - is_expected.to contain_exec('/usr/bin/apt-mark manual my_source') + expect(subject).to contain_exec('apt-mark manual mysource') } end describe 'with wrong setting' do let :params do { - 'setting' => 'foobar', + 'setting' => 'foobar' } end it do - is_expected.to raise_error(Puppet::PreformattedError, %r{expects a match for Enum\['auto', 'hold', 'manual', 'unhold'\], got 'foobar'}) + expect(subject).to raise_error(Puppet::PreformattedError, %r{expects a match for Enum\['auto', 'hold', 'manual', 'unhold'\], got 'foobar'}) + end + end + + [ + 'package', + 'package1', + 'package.name', + 'package-name', + 'package+name', + 'p.ackagename', + 'p+ackagename', + 'p+', + ].each do |value| + describe 'with a valid resource title' do + let :title do + value + end + + let :params do + { + 'setting' => 'manual' + } + end + + it do + expect(subject).to contain_exec("apt-mark manual #{title}") + end + end + end + + # packagenames starting with + are not valid as the title according to puppet + # good thing this is also an illegal name for debian packages + [ + '|| ls -la ||', + 'packakge with space', + 'package<>|', + '|| touch /tmp/foo.txt ||', + 'package_name', + 'PackageName', + '.p', + 'p', + ].each do |value| + describe "with an invalid resource title [#{value}]" do + let :title do + value + end + + let :params do + { + 'setting' => 'manual' + } + end + + it do + expect(subject).to raise_error(Puppet::PreformattedError, %r{Invalid package name: #{title}}) + end end end end