From 9985fceb63a5e07d05ea2c7b6ffc26a4e287568e Mon Sep 17 00:00:00 2001 From: Thibault Jouan Date: Mon, 26 Aug 2013 14:02:35 +0000 Subject: [PATCH] Extract logic for current target ssh user name: Add Remote#user_name method, with code returning which user name will be used for SSH authentication. --- lib/producer/core/remote.rb | 6 +++++- spec/producer/core/remote_spec.rb | 10 ++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/producer/core/remote.rb b/lib/producer/core/remote.rb index bed2936..1f4d2bc 100644 --- a/lib/producer/core/remote.rb +++ b/lib/producer/core/remote.rb @@ -11,7 +11,11 @@ module Producer end def session - @session ||= Net::SSH.start(@hostname, Etc.getlogin) + @session ||= Net::SSH.start(@hostname, user_name) + end + + def user_name + Etc.getlogin end def fs diff --git a/spec/producer/core/remote_spec.rb b/spec/producer/core/remote_spec.rb index 817fab3..1000e65 100644 --- a/spec/producer/core/remote_spec.rb +++ b/spec/producer/core/remote_spec.rb @@ -12,8 +12,8 @@ module Producer::Core end describe '#session' do - it 'builds a new SSH session to the remote host' do - expect(Net::SSH).to receive(:start).with(hostname, Etc.getlogin) + it 'builds a new SSH session to the remote host with #user_name' do + expect(Net::SSH).to receive(:start).with(hostname, remote.user_name) remote.session end @@ -29,6 +29,12 @@ module Producer::Core end end + describe '#user_name' do + it 'returns the name of the user currently logged in' do + expect(remote.user_name).to eq Etc.getlogin + end + end + describe '#fs' do it 'builds a new FS' do expect(Remote::FS).to receive(:new)