For review: Integration tests for support for windows users

0 views
Skip to first unread message

joel r

unread,
Jun 6, 2009, 11:06:41 AM6/6/09
to puppet-dev
Like groups, integration tests for windows users were affected by
changes to the windows test helper code.

diff --git a/spec/integration/provider/user/useradd_win.rb
b/spec/integration/provider/user/useradd_win.rb
new file mode 100644
index 0000000..41be784
--- /dev/null
+++ b/spec/integration/provider/user/useradd_win.rb
@@ -0,0 +1,95 @@
+#!/usr/bin/env ruby
+
+require File.dirname(__FILE__) + '/../../../spec_helper'
+
+describe "Provider for windows users" do
+ confine :true => Puppet.features.windows?
+
+ require 'windowstest'
+ include WindowsTest
+
+ before(:each) do
+ @users_to_delete = []
+ @groups_to_delete = []
+ end
+
+ after(:each) do
+ delete_test_users
+ delete_test_groups
+ end
+
+ def user_provider(resource_configuration)
+ provider = Puppet::Type.type(:user).provider(:useradd_win).new
+ provider.resource = resource_configuration
+ return provider
+ end
+
+ it 'should create a user with the given password and group membership' do
+ expected_groups = ["randomgroup1", "randomgroup2"]
+ username = "testuser"
+ password = "1234"
+
+ create_test_groups(expected_groups)
+ delete_user_later username
+
+ provider = user_provider :name => username, :password =>
password, :groups => expected_groups.join(",")
+ provider.create
+
+ testuser = user(username)
+ testuser.password_is?(password).should be_true
+
+ users_groups = testuser.groups
+
+ users_groups.sort.should be_eql(expected_groups.sort)
+ end
+
+ describe "when a user belongs to groups named randomgroup1,
randomgroup2," do
+ before do
+ @users_to_delete = []
+ @groups_to_delete = []
+
+ expected_groups = ["randomgroup1", "randomgroup2"]
+ username = "testuser"
+
+ create_test_groups expected_groups
+ create_test_users username
+
+ @provider = user_provider :name => username
+ @provider.groups = expected_groups.join(",")
+
+ groups = @provider.groups.split(',').collect {|group| group.strip }
+ groups.length.should be_eql(expected_groups.length)
+ groups.each {|group|
expected_groups.include?(group).should be_true }
+ end
+
+ after do
+ delete_test_users
+ delete_test_groups
+ end
+
+ describe "after setting membership to randomgroup1 only, " do
+ before do
+ @provider.groups = "randomgroup1"
+ end
+
+ it "the user should no more be a member of randomgroup 2" do
+ groups = @provider.groups
+
+ groups.index(',').should be_nil
+ groups.should be_eql("randomgroup1")
+ end
+ end
+ end
+
+ it 'should set a users password' do
+ username = "testuser"
+ password = "11112222"
+
+ testuser = create_test_user username, password
+
+ provider = user_provider :name => username, :password => password
+ provider.password = password
+
+ testuser.password_is?(password).should be_true
+ end
+end

Luke Kanies

unread,
Jun 10, 2009, 3:42:17 PM6/10/09
to puppe...@googlegroups.com
+1
--
Don't hit at all if it is honorably possible to avoid hitting; but
never hit soft! -- Theodore Roosevelt
---------------------------------------------------------------------
Luke Kanies | http://reductivelabs.com | http://madstop.com

James Turnbull

unread,
Jun 10, 2009, 5:58:23 PM6/10/09
to puppe...@googlegroups.com
Luke

So does this mean you're happy to push the Windows code?

Cheers

James

--
Author of:
* Pro Linux Systems Administration
(http://tinyurl.com/linuxadmin)
* Pulling Strings with Puppet
(http://tinyurl.com/pupbook)
* Pro Nagios 2.0
(http://tinyurl.com/pronagios)
* Hardening Linux
(http://tinyurl.com/hardeninglinux)

signature.asc

Luke Kanies

unread,
Jun 10, 2009, 10:55:29 PM6/10/09
to puppe...@googlegroups.com

On Jun 10, 2009, at 4:58 PM, James Turnbull wrote:

> Luke
>
> So does this mean you're happy to push the Windows code?

I'd like confirmation from someone that they've tested it and it seems
to work. I don't have a Windows box, so I can't test it.

Paul, you were doing some testing -- is it all working now?

--
Health is merely the slowest possible rate at which one can die.

Reply all
Reply to author
Forward
0 new messages