summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith84@gmail.com>2019-08-07 15:29:59 -0700
committerTim Smith <tsmith84@gmail.com>2019-09-04 14:48:41 -0700
commitfeb180858d1d144faa681692becc0ed460ab4ef3 (patch)
tree2b6b91384872dbae02a50db425d936507bfc6802
parent6561791a7b8ec8d4981649479788517364f7d605 (diff)
downloadohai-feb180858d1d144faa681692becc0ed460ab4ef3.tar.gz
Minor cleanup to the passwd specs
These needed a bit of love Signed-off-by: Tim Smith <tsmith@chef.io>
-rw-r--r--lib/ohai/plugins/passwd.rb4
-rw-r--r--spec/unit/plugins/passwd_spec.rb29
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