spec/unit/provider/ssh_authorized_key/parsed.rb in puppet-0.25.0 vs spec/unit/provider/ssh_authorized_key/parsed.rb in puppet-0.25.1

- old
+ new

@@ -39,16 +39,16 @@ key.flush text = @provider.target_object(file).read return text end - it "should be able to parse each example" do - fakedata("data/providers/ssh_authorized_key/parsed").each { |file| + PuppetTest.fakedata("data/providers/ssh_authorized_key/parsed").each { |file| + it "should be able to parse example data in #{file}" do puts "Parsing %s" % file fakedataparse(file) - } - end + end + } it "should be able to generate a basic authorized_keys file" do key = mkkey({ :name => "Just Testing", :key => "AAAAfsfddsjldjgksdflgkjsfdlgkj", @@ -93,89 +93,65 @@ Dir.stubs(:mkdir) File.stubs(:chmod) File.stubs(:chown) end - describe "and a user has been specified" do + describe "and both a user and a target have been specified" do before :each do - @resource.stubs(:should).with(:user).returns "nobody" - target = File.expand_path("~nobody/.ssh/authorized_keys") + Puppet::Util.stubs(:uid).with("random_bob").returns 12345 + @resource.stubs(:should).with(:user).returns "random_bob" + target = "/tmp/.ssh_dir/place_to_put_authorized_keys" @resource.stubs(:should).with(:target).returns target end it "should create the directory" do - Dir.expects(:mkdir).with(File.expand_path("~nobody/.ssh"), 0700) + File.stubs(:exist?).with("/tmp/.ssh_dir").returns false + Dir.expects(:mkdir).with("/tmp/.ssh_dir", 0700) @provider.flush end it "should chown the directory to the user" do - uid = Puppet::Util.uid("nobody") - File.expects(:chown).with(uid, nil, File.expand_path("~nobody/.ssh")) + uid = Puppet::Util.uid("random_bob") + File.expects(:chown).with(uid, nil, "/tmp/.ssh_dir") @provider.flush end it "should chown the key file to the user" do - uid = Puppet::Util.uid("nobody") - File.expects(:chown).with(uid, nil, File.expand_path("~nobody/.ssh/authorized_keys")) + uid = Puppet::Util.uid("random_bob") + File.expects(:chown).with(uid, nil, "/tmp/.ssh_dir/place_to_put_authorized_keys") @provider.flush end it "should chmod the key file to 0600" do - File.expects(:chmod).with(0600, File.expand_path("~nobody/.ssh/authorized_keys")) + File.expects(:chmod).with(0600, "/tmp/.ssh_dir/place_to_put_authorized_keys") @provider.flush end end - describe "and a target has been specified" do + describe "and a user has been specified with no target" do before :each do - @resource.stubs(:should).with(:user).returns nil - @resource.stubs(:should).with(:target).returns "/tmp/.ssh/authorized_keys" - end - - it "should make the directory" do - Dir.expects(:mkdir).with("/tmp/.ssh", 0755) - @provider.flush - end - - it "should chmod the key file to 0644" do - File.expects(:chmod).with(0644, "/tmp/.ssh/authorized_keys") - @provider.flush - end - end - - end -end - -describe provider_class do - before :each do - @resource = stub("resource", :name => "foo") - @resource.stubs(:[]).returns "foo" - @provider = provider_class.new(@resource) - end - - describe "when flushing" do - before :each do - # Stub file and directory operations - Dir.stubs(:mkdir) - File.stubs(:chmod) - File.stubs(:chown) - end - - describe "and a user has been specified" do - before :each do @resource.stubs(:should).with(:user).returns "nobody" @resource.stubs(:should).with(:target).returns nil + # + # I'd like to use random_bob here and something like + # + # File.stubs(:expand_path).with("~random_bob/.ssh").returns "/users/r/random_bob/.ssh" + # + # but mocha objects strenuously to stubbing File.expand_path + # so I'm left with using nobody. + @dir = File.expand_path("~nobody/.ssh") end it "should create the directory" do - Dir.expects(:mkdir).with(File.expand_path("~nobody/.ssh"), 0700) + File.stubs(:exist?).with(@dir).returns false + Dir.expects(:mkdir).with(@dir,0700) @provider.flush end it "should chown the directory to the user" do uid = Puppet::Util.uid("nobody") - File.expects(:chown).with(uid, nil, File.expand_path("~nobody/.ssh")) + File.expects(:chown).with(uid, nil, @dir) @provider.flush end it "should chown the key file to the user" do uid = Puppet::Util.uid("nobody") @@ -187,22 +163,23 @@ File.expects(:chmod).with(0600, File.expand_path("~nobody/.ssh/authorized_keys")) @provider.flush end end - describe "and a target has been specified" do + describe "and a target has been specified with no user" do before :each do @resource.stubs(:should).with(:user).returns nil - @resource.stubs(:should).with(:target).returns "/tmp/.ssh/authorized_keys" + @resource.stubs(:should).with(:target).returns("/tmp/.ssh_dir/place_to_put_authorized_keys") end it "should make the directory" do - Dir.expects(:mkdir).with("/tmp/.ssh", 0755) + File.stubs(:exist?).with("/tmp/.ssh_dir").returns false + Dir.expects(:mkdir).with("/tmp/.ssh_dir", 0755) @provider.flush end it "should chmod the key file to 0644" do - File.expects(:chmod).with(0644, "/tmp/.ssh/authorized_keys") + File.expects(:chmod).with(0644, "/tmp/.ssh_dir/place_to_put_authorized_keys") @provider.flush end end end