From: Joel Rosario <[email protected]>
Signed-off-by: James Turnbull <[email protected]> --- Local-branch: tickets/master/6693 spec/integration/provider/group/groupadd_win.rb | 29 ++++-- spec/integration/provider/user/useradd_win.rb | 45 ++++++--- spec/lib/windowstest.rb | 116 +++++++---------------- 3 files changed, 80 insertions(+), 110 deletions(-) diff --git a/spec/integration/provider/group/groupadd_win.rb b/spec/integration/provider/group/groupadd_win.rb index 11ea597..0de01ce 100644 --- a/spec/integration/provider/group/groupadd_win.rb +++ b/spec/integration/provider/group/groupadd_win.rb @@ -7,41 +7,48 @@ describe "Provider for windows groups" do require 'windowstest' include WindowsTest + + Puppet::Type.type(:user).provider(:useradd_win) + + before(:each) do + @users_to_delete = [] + @groups_to_delete = [] + end + + after(:each) do + delete_test_users + delete_test_groups + end def group_provider(resource_configuration) - #provider = Puppet::Type::Group::ProviderGroupadd_win.new provider = Puppet::Type.type(:group).provider(:groupadd_win).new provider.resource = resource_configuration return provider end - after(:each) do - clear - end - it 'should create a group with configured members' do groupname = "randomgroup" - register_group groupname + delete_group_later groupname expected_members = ["test1", "test2"] - mkusers(expected_members) + create_test_users expected_members provider = group_provider :name => groupname, :members => ['test1', 'test2'] provider.create - should_have_no_missing_member(group(groupname), expected_members) + group(groupname).members.sort.should be_eql(expected_members.sort) end it 'should set a groups members' do groupname = "randomgroup" expected_members = ["test1", "test2"] - testgroup = mkgroup(groupname) - mkusers(expected_members) + testgroup = create_test_groups(groupname) + create_test_users(expected_members) provider = group_provider :name => groupname, :members => ['test1', 'test2'] provider.members = ['test1', 'test2'] - should_have_no_missing_member(testgroup, expected_members) + group(groupname).members.sort.should be_eql(expected_members.sort) end end diff --git a/spec/integration/provider/user/useradd_win.rb b/spec/integration/provider/user/useradd_win.rb index 55cd094..41be784 100644 --- a/spec/integration/provider/user/useradd_win.rb +++ b/spec/integration/provider/user/useradd_win.rb @@ -8,23 +8,29 @@ describe "Provider for windows users" do 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 - after(:each) do - clear - end - - it 'should add a user with the given password and group membership' do + it 'should create a user with the given password and group membership' do expected_groups = ["randomgroup1", "randomgroup2"] username = "testuser" password = "1234" - mkgroups(expected_groups) - register_user username + create_test_groups(expected_groups) + delete_user_later username provider = user_provider :name => username, :password => password, :groups => expected_groups.join(",") provider.create @@ -32,19 +38,21 @@ describe "Provider for windows users" do testuser = user(username) testuser.password_is?(password).should be_true - groups = testuser.groups + users_groups = testuser.groups - expected_groups.each {|expected_group| groups.include?(expected_group).should be_true } - expected_groups.length.should be_eql(groups.length) + users_groups.sort.should be_eql(expected_groups.sort) end describe "when a user belongs to groups named randomgroup1, randomgroup2," do - before(:all) do + before do + @users_to_delete = [] + @groups_to_delete = [] + expected_groups = ["randomgroup1", "randomgroup2"] username = "testuser" - mkgroups expected_groups - mkuser username + create_test_groups expected_groups + create_test_users username @provider = user_provider :name => username @provider.groups = expected_groups.join(",") @@ -53,9 +61,14 @@ describe "Provider for windows users" do 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(:all) do + before do @provider.groups = "randomgroup1" end @@ -72,7 +85,7 @@ describe "Provider for windows users" do username = "testuser" password = "11112222" - testuser = mkuser username, password + testuser = create_test_user username, password provider = user_provider :name => username, :password => password provider.password = password diff --git a/spec/lib/windowstest.rb b/spec/lib/windowstest.rb index 8bd9d3e..d160fda 100644 --- a/spec/lib/windowstest.rb +++ b/spec/lib/windowstest.rb @@ -4,107 +4,57 @@ require File.dirname(__FILE__) + '/../../lib/puppet/util/windows_system.rb' module WindowsTest include Puppet::Util::Windows - class List - def initialize - @list = [] - end - - def clear - destroy - @list = [] - end - - def register(item) - @list << item - end + def group(name) + Group.new(name) end - class Groups < List - include Puppet::Util::Windows - - def destroy - @list.each {|group| - begin - Group.delete(group) - rescue - puts "Group #{group} not found" - end - } - end + def user(name) + User.new(name) end - class Users < List - include Puppet::Util::Windows - - def destroy - @list.each {|user| - begin - User.delete(user) - rescue - puts "User #{user} not found" - end - } + def create_test_groups(groupnames) + list = groupnames.collect do |name| + group = Puppet::Util::Windows::Group.create(name) + delete_group_later name + group end - end - - def helper_users - @users = Users.new if @users == nil - @users - end - def helper_groups - @groups = Groups.new if @groups == nil - @groups + return list[0] if list.length == 1 + return list end - def clear - helper_groups.clear - helper_users.clear + def create_test_user(username, password) + user = Puppet::Util::Windows::User.create(username, password) + @users_to_delete << username + return user end - def register_group(name) - helper_groups.register name - end - - def register_user(name) - helper_users.register name - end - - def mkuser(name, password = "1234567") - User.create(name, password) { register_user name } - end - - def mkgroup(name) - Group.create(name) { register_group name } - end - - def mkusers(names) - names.collect {|name| mkuser name } - end + def create_test_users(*usernames) + password = "qwertyuiop" + + list = usernames.flatten.collect do |name| + create_test_user(name, password) + end - def mkgroups(names) - names.collect {|name| mkgroup name } + return list[0] if list.length == 1 + return list end - def group(name) - Group.new(name) - end - - def user(name) - User.new(name) + def delete_test_users + @users_to_delete.each {|name| Puppet::Util::Windows::User.delete(name) } + @users_to_delete = [] end - def assert_no_missing_member(group, expected_members) - members = group.members - expected_members.each {|member| assert(members.include?(member), "#{member} should be a member") } + def delete_test_groups + @groups_to_delete.each {|name| Puppet::Util::Windows::Group.delete(name) } + @groups_to_delete = [] end - def should_have_no_missing_member(testgroup, expected_members) - members = testgroup.members - expected_members.each {|member| members.include?(member).should be_true } + def delete_group_later(groupname) + @groups_to_delete << groupname end - def teardown - clear + def delete_user_later(username) + @users_to_delete << username end end -- 1.7.1 -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.
