summaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authorNick Lewis <nick@puppetlabs.com>2010-09-08 11:07:20 -0700
committerMarkus Roberts <Markus@reality.com>2010-09-29 15:32:28 -0700
commit0b4ce0898652268a772bfa1cb66cf67f41963d2b (patch)
tree9ba5e396efe2e18df9dd44620d63c1e4675f5343 /spec
parente9f9d26ff24f0a951819c5300dbc482fabb0e82d (diff)
downloadpuppet-0b4ce0898652268a772bfa1cb66cf67f41963d2b.tar.gz
puppet-0b4ce0898652268a772bfa1cb66cf67f41963d2b.tar.xz
puppet-0b4ce0898652268a772bfa1cb66cf67f41963d2b.zip
Adds #3046 - support for password min/max age
This adds a new feature to user providers "manages_password_age", along with properties password_min_age and password_max_age to the user type. These represent password min and max age in days. The useradd and user_role_add providers now support these new properties.
Diffstat (limited to 'spec')
-rw-r--r--spec/unit/provider/user/user_role_add_spec.rb19
-rwxr-xr-xspec/unit/provider/user/useradd_spec.rb10
-rwxr-xr-xspec/unit/type/user_spec.rb6
3 files changed, 33 insertions, 2 deletions
diff --git a/spec/unit/provider/user/user_role_add_spec.rb b/spec/unit/provider/user/user_role_add_spec.rb
index 211f4260a..b3244f19d 100644
--- a/spec/unit/provider/user/user_role_add_spec.rb
+++ b/spec/unit/provider/user/user_role_add_spec.rb
@@ -56,7 +56,7 @@ describe provider_class do
it "should use the add command when the user is not a role" do
@provider.stubs(:is_role?).returns(false)
@provider.expects(:addcmd).returns("useradd")
- @provider.expects(:run)
+ @provider.expects(:run).at_least_once
@provider.create
end
@@ -66,6 +66,15 @@ describe provider_class do
@provider.expects(:run)
@provider.create
end
+
+ it "should set password age rules" do
+ @resource = Puppet::Type.type(:user).new :name => "myuser", :password_min_age => 5, :password_max_age => 10, :provider => :user_role_add
+ @provider = provider_class.new(@resource)
+ @provider.stubs(:user_attributes)
+ @provider.stubs(:execute)
+ @provider.expects(:execute).with { |cmd, *args| args == ["-m", 5, "-M", 10, "myuser"] }
+ @provider.create
+ end
end
describe "when calling destroy" do
@@ -107,6 +116,7 @@ describe provider_class do
before do
@resource.expects(:allowdupe?).returns true
@provider.stubs(:is_role?).returns(false)
+ @provider.stubs(:execute)
@provider.expects(:execute).with { |args| args.include?("-o") }
end
@@ -246,4 +256,11 @@ describe provider_class do
@provider.password=("hashedpassword")
end
end
+
+ describe "#shadow_entry" do
+ it "should return the line for the right user" do
+ File.stubs(:readlines).returns(["someuser:!:10:5:20:7:1::\n", "fakeval:*:20:10:30:7:2::\n", "testuser:*:30:15:40:7:3::\n"])
+ @provider.shadow_entry.should == ["fakeval", "*", "20", "10", "30", "7", "2"]
+ end
+ end
end
diff --git a/spec/unit/provider/user/useradd_spec.rb b/spec/unit/provider/user/useradd_spec.rb
index 9869ba935..26367c584 100755
--- a/spec/unit/provider/user/useradd_spec.rb
+++ b/spec/unit/provider/user/useradd_spec.rb
@@ -15,6 +15,7 @@ describe provider_class do
# #1360
it "should add -o when allowdupe is enabled and the user is being created" do
@resource.expects(:allowdupe?).returns true
+ @provider.stubs(:execute)
@provider.expects(:execute).with { |args| args.include?("-o") }
@provider.create
end
@@ -26,6 +27,15 @@ describe provider_class do
@provider.uid = 150
end
+ it "should set password age rules" do
+ provider_class.has_feature :manages_password_age
+ @resource = Puppet::Type.type(:user).new :name => "myuser", :password_min_age => 5, :password_max_age => 10, :provider => :useradd
+ @provider = provider_class.new(@resource)
+ @provider.stubs(:execute)
+ @provider.expects(:execute).with { |cmd, *args| args == ["-m", 5, "-M", 10, "myuser"] }
+ @provider.create
+ end
+
describe "when checking to add allow dup" do
it "should check allow dup" do
@resource.expects(:allowdupe?)
diff --git a/spec/unit/type/user_spec.rb b/spec/unit/type/user_spec.rb
index f978b309c..ccea9ee4c 100755
--- a/spec/unit/type/user_spec.rb
+++ b/spec/unit/type/user_spec.rb
@@ -39,6 +39,10 @@ describe user do
user.provider_feature(:manages_expiry).should_not be_nil
end
+ it "should have a manages_password_age feature" do
+ user.provider_feature(:manages_password_age).should_not be_nil
+ end
+
describe "instances" do
it "should have a valid provider" do
user.new(:name => "foo").provider.class.ancestors.should be_include(Puppet::Provider)
@@ -51,7 +55,7 @@ describe user do
end
end
- properties = [:ensure, :uid, :gid, :home, :comment, :shell, :password, :groups, :roles, :auths, :profiles, :project, :keys, :expiry]
+ properties = [:ensure, :uid, :gid, :home, :comment, :shell, :password, :password_min_age, :password_max_age, :groups, :roles, :auths, :profiles, :project, :keys, :expiry]
properties.each do |property|
it "should have a #{property} property" do