diff options
author | Josh Cooper <josh@puppet.com> | 2018-07-09 21:29:43 -0700 |
---|---|---|
committer | Josh Cooper <josh@puppet.com> | 2018-07-10 11:03:14 -0700 |
commit | eea84d976a8dcbb1415f694557f3d30a002b66d8 (patch) | |
tree | 5738129d2aee88fc800a8060d3d5f2bba1edb7e5 /spec/unit/provider | |
parent | fc2256e48c4afcf70486b439f8a85ef31243830b (diff) | |
download | puppet-hosts_core-eea84d976a8dcbb1415f694557f3d30a002b66d8.tar.gz puppet-hosts_core-eea84d976a8dcbb1415f694557f3d30a002b66d8.tar.bz2 |
Remove RSpec/InstanceVariable violations
Use `let` instead.
Diffstat (limited to 'spec/unit/provider')
-rw-r--r-- | spec/unit/provider/host/parsed_spec.rb | 82 |
1 files changed, 38 insertions, 44 deletions
diff --git a/spec/unit/provider/host/parsed_spec.rb b/spec/unit/provider/host/parsed_spec.rb index 493648b..da796eb 100644 --- a/spec/unit/provider/host/parsed_spec.rb +++ b/spec/unit/provider/host/parsed_spec.rb @@ -3,31 +3,29 @@ require 'shared_behaviours/all_parsedfile_providers' require 'puppet_spec/files' -provider_class = Puppet::Type.type(:host).provider(:parsed) - -describe provider_class do +describe Puppet::Type.type(:host).provider(:parsed) do include PuppetSpec::Files + let(:provider) { described_class } + let(:hostfile) { tmpfile('hosts') } + before(:each) do - @host_class = Puppet::Type.type(:host) - @provider = @host_class.provider(:parsed) - @hostfile = tmpfile('hosts') - @provider.any_instance.stubs(:target).returns @hostfile + provider.any_instance.stubs(:target).returns hostfile end after :each do - @provider.initvars + provider.initvars end def mkhost(args) hostresource = Puppet::Type::Host.new(name: args[:name]) - hostresource.stubs(:should).with(:target).returns @hostfile + hostresource.stubs(:should).with(:target).returns hostfile # Using setters of provider to build our testobject # Note: We already proved, that in case of host_aliases # the provider setter "host_aliases=(value)" will be # called with the joined array, so we just simulate that - host = @provider.new(hostresource) + host = provider.new(hostresource) args.each do |property, value| value = value.join(' ') if property == :host_aliases && value.is_a?(Array) host.send("#{property}=", value) @@ -36,126 +34,122 @@ describe provider_class do end def genhost(host) - @provider.stubs(:filetype).returns(Puppet::Util::FileType::FileTypeRam) + provider.stubs(:filetype).returns(Puppet::Util::FileType::FileTypeRam) File.stubs(:chown) File.stubs(:chmod) Puppet::Util::SUIDManager.stubs(:asuser).yields host.flush - @provider.target_object(@hostfile).read + provider.target_object(hostfile).read end describe 'when parsing on incomplete line' do it 'works for only ip' do - expect(@provider.parse_line('127.0.0.1')[:line]).to eq('127.0.0.1') + expect(provider.parse_line('127.0.0.1')[:line]).to eq('127.0.0.1') end it 'works for only hostname' do - expect(@provider.parse_line('www.example.com')[:line]).to eq('www.example.com') + expect(provider.parse_line('www.example.com')[:line]).to eq('www.example.com') end it 'works for ip and space' do - expect(@provider.parse_line('127.0.0.1 ')[:line]).to eq('127.0.0.1 ') + expect(provider.parse_line('127.0.0.1 ')[:line]).to eq('127.0.0.1 ') end it 'works for hostname and space' do - expect(@provider.parse_line('www.example.com ')[:line]).to eq('www.example.com ') + expect(provider.parse_line('www.example.com ')[:line]).to eq('www.example.com ') end it 'works for hostname and host_aliases' do - expect(@provider.parse_line('www.example.com www xyz')[:line]).to eq('www.example.com www xyz') + expect(provider.parse_line('www.example.com www xyz')[:line]).to eq('www.example.com www xyz') end it 'works for ip and comment' do - expect(@provider.parse_line('127.0.0.1 #www xyz')[:line]).to eq('127.0.0.1 #www xyz') + expect(provider.parse_line('127.0.0.1 #www xyz')[:line]).to eq('127.0.0.1 #www xyz') end it 'works for hostname and comment' do - expect(@provider.parse_line('xyz #www test123')[:line]).to eq('xyz #www test123') + expect(provider.parse_line('xyz #www test123')[:line]).to eq('xyz #www test123') end it 'works for crazy incomplete lines' do - expect(@provider.parse_line("%th1s is a\t cr$zy !incompl1t line")[:line]).to eq("%th1s is a\t cr$zy !incompl1t line") + expect(provider.parse_line("%th1s is a\t cr$zy !incompl1t line")[:line]).to eq("%th1s is a\t cr$zy !incompl1t line") end end describe 'when parsing a line with ip and hostname' do it 'parses an ipv4 from the first field' do - expect(@provider.parse_line('127.0.0.1 localhost')[:ip]).to eq('127.0.0.1') + expect(provider.parse_line('127.0.0.1 localhost')[:ip]).to eq('127.0.0.1') end it 'parses an ipv6 from the first field' do - expect(@provider.parse_line('::1 localhost')[:ip]).to eq('::1') + expect(provider.parse_line('::1 localhost')[:ip]).to eq('::1') end it 'parses the name from the second field' do - expect(@provider.parse_line('::1 localhost')[:name]).to eq('localhost') + expect(provider.parse_line('::1 localhost')[:name]).to eq('localhost') end it 'sets an empty comment' do - expect(@provider.parse_line('::1 localhost')[:comment]).to eq('') + expect(provider.parse_line('::1 localhost')[:comment]).to eq('') end it 'sets host_aliases to :absent' do - expect(@provider.parse_line('::1 localhost')[:host_aliases]).to eq(:absent) + expect(provider.parse_line('::1 localhost')[:host_aliases]).to eq(:absent) end end describe 'when parsing a line with ip, hostname and comment' do - before(:each) do - @testline = '127.0.0.1 localhost # A comment with a #-char' - end + let(:testline) { '127.0.0.1 localhost # A comment with a #-char' } it 'parses the ip from the first field' do - expect(@provider.parse_line(@testline)[:ip]).to eq('127.0.0.1') + expect(provider.parse_line(testline)[:ip]).to eq('127.0.0.1') end it 'parses the hostname from the second field' do - expect(@provider.parse_line(@testline)[:name]).to eq('localhost') + expect(provider.parse_line(testline)[:name]).to eq('localhost') end it "parses the comment after the first '#' character" do - expect(@provider.parse_line(@testline)[:comment]).to eq('A comment with a #-char') + expect(provider.parse_line(testline)[:comment]).to eq('A comment with a #-char') end end describe 'when parsing a line with ip, hostname and aliases' do it 'parses alias from the third field' do - expect(@provider.parse_line('127.0.0.1 localhost localhost.localdomain')[:host_aliases]).to eq('localhost.localdomain') + expect(provider.parse_line('127.0.0.1 localhost localhost.localdomain')[:host_aliases]).to eq('localhost.localdomain') end it 'parses multiple aliases' do - expect(@provider.parse_line('127.0.0.1 host alias1 alias2')[:host_aliases]).to eq('alias1 alias2') - expect(@provider.parse_line("127.0.0.1 host alias1\talias2")[:host_aliases]).to eq('alias1 alias2') - expect(@provider.parse_line("127.0.0.1 host alias1\talias2 alias3")[:host_aliases]).to eq('alias1 alias2 alias3') + expect(provider.parse_line('127.0.0.1 host alias1 alias2')[:host_aliases]).to eq('alias1 alias2') + expect(provider.parse_line("127.0.0.1 host alias1\talias2")[:host_aliases]).to eq('alias1 alias2') + expect(provider.parse_line("127.0.0.1 host alias1\talias2 alias3")[:host_aliases]).to eq('alias1 alias2 alias3') end end describe 'when parsing a line with ip, hostname, aliases and comment' do - before(:each) do - # Just playing with a few different delimiters - @testline = "127.0.0.1\t host alias1\talias2 alias3 # A comment with a #-char" - end + # Just playing with a few different delimiters + let(:testline) { "127.0.0.1\t host alias1\talias2 alias3 # A comment with a #-char" } it 'parses the ip from the first field' do - expect(@provider.parse_line(@testline)[:ip]).to eq('127.0.0.1') + expect(provider.parse_line(testline)[:ip]).to eq('127.0.0.1') end it 'parses the hostname from the second field' do - expect(@provider.parse_line(@testline)[:name]).to eq('host') + expect(provider.parse_line(testline)[:name]).to eq('host') end it 'parses all host_aliases from the third field' do - expect(@provider.parse_line(@testline)[:host_aliases]).to eq('alias1 alias2 alias3') + expect(provider.parse_line(testline)[:host_aliases]).to eq('alias1 alias2 alias3') end it "parses the comment after the first '#' character" do - expect(@provider.parse_line(@testline)[:comment]).to eq('A comment with a #-char') + expect(provider.parse_line(testline)[:comment]).to eq('A comment with a #-char') end end describe 'when operating on /etc/hosts like files' do it_behaves_like 'all parsedfile providers', - provider_class, my_fixtures('valid*') + described_class, my_fixtures('valid*') it 'is able to generate a simple hostfile entry' do host = mkhost( |