summaryrefslogtreecommitdiff
path: root/spec/functional/resource/group_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/functional/resource/group_spec.rb')
-rw-r--r--spec/functional/resource/group_spec.rb78
1 files changed, 60 insertions, 18 deletions
diff --git a/spec/functional/resource/group_spec.rb b/spec/functional/resource/group_spec.rb
index 98ec77a01b..b8369d087b 100644
--- a/spec/functional/resource/group_spec.rb
+++ b/spec/functional/resource/group_spec.rb
@@ -20,7 +20,11 @@
require 'spec_helper'
require 'functional/resource/base'
-describe Chef::Resource::Group, :requires_root_or_running_windows do
+# Chef::Resource::Group are turned off on Mac OS X 10.6 due to caching
+# issues around Etc.getgrnam() not picking up the group membership
+# changes that are done on the system. Etc.endgrent is not functioning
+# correctly on certain 10.6 boxes.
+describe Chef::Resource::Group, :requires_root_or_running_windows, :not_supported_on_mac_osx_106 do
def group_should_exist(group)
case ohai[:platform_family]
when "debian", "fedora", "rhel", "suse", "gentoo", "slackware", "arch"
@@ -55,6 +59,9 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
def user(username)
usr = Chef::Resource::User.new("#{username}", run_context)
+ if ohai[:platform_family] == "windows"
+ usr.password("ComplexPass11!")
+ end
usr
end
@@ -101,24 +108,24 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
end
describe "when append is not set" do
- let(:included_members) { ["group-spec-Eric"] }
+ let(:included_members) { ["spec-Eric"] }
before do
- create_user("group-spec-Eric")
- create_user("group-spec-Gordon")
- add_members_to_group(["group-spec-Gordon"])
+ create_user("spec-Eric")
+ create_user("spec-Gordon")
+ add_members_to_group(["spec-Gordon"])
end
after do
- remove_user("group-spec-Eric")
- remove_user("group-spec-Gordon")
+ remove_user("spec-Eric")
+ remove_user("spec-Gordon")
end
it "should remove the existing users and add the new users to the group" do
group_resource.run_action(tested_action)
- user_exist_in_group?("group-spec-Eric").should == true
- user_exist_in_group?("group-spec-Gordon").should == false
+ user_exist_in_group?("spec-Eric").should == true
+ user_exist_in_group?("spec-Gordon").should == false
end
end
@@ -153,7 +160,7 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
describe "when group contains some users" do
before(:each) do
- add_members_to_group([ "group-spec-Gordon", "group-spec-Anthony" ])
+ add_members_to_group([ "spec-Gordon", "spec-Anthony" ])
end
it "should add the included users and remove excluded users" do
@@ -185,7 +192,7 @@ describe Chef::Resource::Group, :requires_root_or_running_windows do
end
end
- let(:group_name) { "chef-rspec-test-#{SecureRandom.random_number(9999)}" }
+ let(:group_name) { "cheftest-#{SecureRandom.random_number(9999)}" }
let(:included_members) { nil }
let(:excluded_members) { nil }
let(:group_resource) {
@@ -234,7 +241,8 @@ downthestreetalwayshadagoodsmileonhisfacetheoldmanwalkingdownthestreeQQQQQQ" }
end
end
- describe "should raise an error when same member is included in the members and excluded_members" do
+ # not_supported_on_solaris because of the use of excluded_members
+ describe "should raise an error when same member is included in the members and excluded_members", :not_supported_on_solaris do
it "should raise an error" do
invalid_resource = group_resource.dup
invalid_resource.members(["Jack"])
@@ -265,9 +273,9 @@ downthestreetalwayshadagoodsmileonhisfacetheoldmanwalkingdownthestreeQQQQQQ" }
end
end
- describe "group modify action" do
- let(:included_members) { ["group-spec-Gordon", "group-spec-Eric"] }
- let(:excluded_members) { ["group-spec-Anthony"] }
+ describe "group modify action", :not_supported_on_solaris do
+ let(:included_members) { ["spec-Gordon", "spec-Eric"] }
+ let(:excluded_members) { ["spec-Anthony"] }
let(:tested_action) { :modify }
describe "when there is no group" do
@@ -281,9 +289,9 @@ downthestreetalwayshadagoodsmileonhisfacetheoldmanwalkingdownthestreeQQQQQQ" }
end
end
- describe "group manage action" do
- let(:included_members) { ["group-spec-Gordon", "group-spec-Eric"] }
- let(:excluded_members) { ["group-spec-Anthony"] }
+ describe "group manage action", :not_supported_on_solaris do
+ let(:included_members) { ["spec-Gordon", "spec-Eric"] }
+ let(:excluded_members) { ["spec-Anthony"] }
let(:tested_action) { :manage }
describe "when there is no group" do
@@ -297,5 +305,39 @@ downthestreetalwayshadagoodsmileonhisfacetheoldmanwalkingdownthestreeQQQQQQ" }
it_behaves_like "correct group management"
end
end
+
+ describe "group resource with Usermod provider", :solaris_only do
+ describe "when excluded_members is set" do
+ let(:excluded_members) { ["spec-Anthony"] }
+
+ it ":manage should raise an error" do
+ lambda {group_resource.run_action(:manage) }.should raise_error
+ end
+
+ it ":modify should raise an error" do
+ lambda {group_resource.run_action(:modify) }.should raise_error
+ end
+
+ it ":create should raise an error" do
+ lambda {group_resource.run_action(:create) }.should raise_error
+ end
+ end
+
+ describe "when append is not set" do
+ let(:included_members) { ["spec-Gordon", "spec-Eric"] }
+
+ before(:each) do
+ group_resource.append(false)
+ end
+
+ it ":manage should raise an error" do
+ lambda {group_resource.run_action(:manage) }.should raise_error
+ end
+
+ it ":modify should raise an error" do
+ lambda {group_resource.run_action(:modify) }.should raise_error
+ end
+ end
+ end
end