From feb180858d1d144faa681692becc0ed460ab4ef3 Mon Sep 17 00:00:00 2001 From: Tim Smith Date: Wed, 7 Aug 2019 15:29:59 -0700 Subject: Minor cleanup to the passwd specs These needed a bit of love Signed-off-by: Tim Smith --- lib/ohai/plugins/passwd.rb | 4 ++++ spec/unit/plugins/passwd_spec.rb | 29 ++++++++++++++--------------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/lib/ohai/plugins/passwd.rb b/lib/ohai/plugins/passwd.rb index 5519adc6..2c43d73b 100644 --- a/lib/ohai/plugins/passwd.rb +++ b/lib/ohai/plugins/passwd.rb @@ -4,6 +4,10 @@ Ohai.plugin(:Passwd) do provides "etc", "current_user" optional true + # @param [String] str + # + # @return [String] + # def fix_encoding(str) str.force_encoding(Encoding.default_external) if str.respond_to?(:force_encoding) str diff --git a/spec/unit/plugins/passwd_spec.rb b/spec/unit/plugins/passwd_spec.rb index 12400b42..c84e27cb 100644 --- a/spec/unit/plugins/passwd_spec.rb +++ b/spec/unit/plugins/passwd_spec.rb @@ -1,5 +1,6 @@ # # License:: Apache License, Version 2.0 +# Copyright:: 2019 Chef Software, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,9 +18,7 @@ require "spec_helper" describe Ohai::System, "plugin etc", :unix_only do - before do - @plugin = get_plugin("passwd") - end + let(:plugin) { get_plugin("passwd") } PasswdEntry = Struct.new(:name, :uid, :gid, :dir, :shell, :gecos) GroupEntry = Struct.new(:name, :gid, :mem) @@ -27,30 +26,30 @@ describe Ohai::System, "plugin etc", :unix_only do it "includes a list of all users" do expect(Etc).to receive(:passwd).and_yield(PasswdEntry.new("root", 1, 1, "/root", "/bin/zsh", "BOFH")) .and_yield(PasswdEntry.new("www", 800, 800, "/var/www", "/bin/false", "Serving the web since 1970")) - @plugin.run - expect(@plugin[:etc][:passwd]["root"]).to eq(Mash.new(shell: "/bin/zsh", gecos: "BOFH", gid: 1, uid: 1, dir: "/root")) - expect(@plugin[:etc][:passwd]["www"]).to eq(Mash.new(shell: "/bin/false", gecos: "Serving the web since 1970", gid: 800, uid: 800, dir: "/var/www")) + plugin.run + expect(plugin[:etc][:passwd]["root"]).to eq(Mash.new(shell: "/bin/zsh", gecos: "BOFH", gid: 1, uid: 1, dir: "/root")) + expect(plugin[:etc][:passwd]["www"]).to eq(Mash.new(shell: "/bin/false", gecos: "Serving the web since 1970", gid: 800, uid: 800, dir: "/var/www")) end it "ignores duplicate users" do expect(Etc).to receive(:passwd).and_yield(PasswdEntry.new("root", 1, 1, "/root", "/bin/zsh", "BOFH")) .and_yield(PasswdEntry.new("root", 1, 1, "/", "/bin/false", "I do not belong")) - @plugin.run - expect(@plugin[:etc][:passwd]["root"]).to eq(Mash.new(shell: "/bin/zsh", gecos: "BOFH", gid: 1, uid: 1, dir: "/root")) + plugin.run + expect(plugin[:etc][:passwd]["root"]).to eq(Mash.new(shell: "/bin/zsh", gecos: "BOFH", gid: 1, uid: 1, dir: "/root")) end it "sets the current user" do expect(Process).to receive(:euid).and_return("31337") expect(Etc).to receive(:getpwuid).and_return(PasswdEntry.new("chef", 31337, 31337, "/home/chef", "/bin/ksh", "Julia Child")) - @plugin.run - expect(@plugin[:current_user]).to eq("chef") + plugin.run + expect(plugin[:current_user]).to eq("chef") end it "sets the available groups" do expect(Etc).to receive(:group).and_yield(GroupEntry.new("admin", 100, %w{root chef})).and_yield(GroupEntry.new("www", 800, %w{www deploy})) - @plugin.run - expect(@plugin[:etc][:group]["admin"]).to eq(Mash.new(gid: 100, members: %w{root chef})) - expect(@plugin[:etc][:group]["www"]).to eq(Mash.new(gid: 800, members: %w{www deploy})) + plugin.run + expect(plugin[:etc][:group]["admin"]).to eq(Mash.new(gid: 100, members: %w{root chef})) + expect(plugin[:etc][:group]["www"]).to eq(Mash.new(gid: 800, members: %w{www deploy})) end if "".respond_to?(:force_encoding) @@ -58,8 +57,8 @@ describe Ohai::System, "plugin etc", :unix_only do fields = ["root", 1, 1, "/root", "/bin/zsh", "BOFH"] fields.each { |f| f.force_encoding(Encoding::ASCII_8BIT) if f.respond_to?(:force_encoding) } allow(Etc).to receive(:passwd).and_yield(PasswdEntry.new(*fields)) - @plugin.run - root = @plugin[:etc][:passwd]["root"] + plugin.run + root = plugin[:etc][:passwd]["root"] expect(root["gecos"].encoding).to eq(Encoding.default_external) end end -- cgit v1.2.1