summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-11-25 16:05:33 +0000
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-11-25 16:05:33 +0000
commita1f2c95f519e15926fe91afb49bd5c979c8689ee (patch)
tree829e1a517ae6e8fd079089c88fd528c7fdddf6a2
parent098e5a68fc2830543062f8f900fd460d98c52e89 (diff)
parentd7e1deb195edbce8d4557b07c9f89e612c999ff2 (diff)
downloadgitlab-shell-a1f2c95f519e15926fe91afb49bd5c979c8689ee.tar.gz
Merge branch 'gitlab_keys_return_values' of /home/git/repositories/gitlab/gitlab-shell
-rw-r--r--lib/gitlab_keys.rb3
-rw-r--r--spec/gitlab_keys_spec.rb73
2 files changed, 52 insertions, 24 deletions
diff --git a/lib/gitlab_keys.rb b/lib/gitlab_keys.rb
index bc00867..0098578 100644
--- a/lib/gitlab_keys.rb
+++ b/lib/gitlab_keys.rb
@@ -31,6 +31,7 @@ class GitlabKeys
$logger.info "Adding key #{@key_id} => #{@key.inspect}"
auth_line = "command=\"#{ROOT_PATH}/bin/gitlab-shell #{@key_id}\",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty #{@key}"
open(auth_file, 'a') { |file| file.puts(auth_line) }
+ true
end
def rm_key
@@ -44,9 +45,11 @@ class GitlabKeys
temp.close
FileUtils.cp(temp.path, auth_file)
end
+ true
end
def clear
open(auth_file, 'w') { |file| file.puts '# Managed by gitlab-shell' }
+ true
end
end
diff --git a/spec/gitlab_keys_spec.rb b/spec/gitlab_keys_spec.rb
index 89438fc..e86874a 100644
--- a/spec/gitlab_keys_spec.rb
+++ b/spec/gitlab_keys_spec.rb
@@ -14,46 +14,65 @@ describe GitlabKeys do
it { gitlab_keys.instance_variable_get(:@key_id).should == 'key-741' }
end
- context "file writing tests" do
- before do
- FileUtils.mkdir_p(File.dirname(tmp_authorized_keys_path))
- open(tmp_authorized_keys_path, 'w') { |file| file.puts('existing content') }
- gitlab_keys.stub(auth_file: tmp_authorized_keys_path)
- end
- describe :add_key do
- let(:gitlab_keys) { build_gitlab_keys('add-key', 'key-741', 'ssh-rsa AAAAB3NzaDAxx2E') }
+ describe :add_key do
+ let(:gitlab_keys) { build_gitlab_keys('add-key', 'key-741', 'ssh-rsa AAAAB3NzaDAxx2E') }
- it "adds a line at the end of the file" do
- gitlab_keys.send :add_key
- auth_line = "command=\"#{ROOT_PATH}/bin/gitlab-shell key-741\",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaDAxx2E"
- File.read(tmp_authorized_keys_path).should == "existing content\n#{auth_line}\n"
- end
+ it "adds a line at the end of the file" do
+ create_authorized_keys_fixture
+ gitlab_keys.send :add_key
+ auth_line = "command=\"#{ROOT_PATH}/bin/gitlab-shell key-741\",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaDAxx2E"
+ File.read(tmp_authorized_keys_path).should == "existing content\n#{auth_line}\n"
+ end
+
+ context "without file writing" do
+ before { gitlab_keys.stub(:open) }
it "should log an add-key event" do
$logger.should_receive(:info).with('Adding key key-741 => "ssh-rsa AAAAB3NzaDAxx2E"')
- gitlab_keys.stub(:open)
gitlab_keys.send :add_key
end
+
+ it "should return true" do
+ gitlab_keys.send(:add_key).should be_true
+ end
end
+ end
- describe :rm_key do
- let(:gitlab_keys) { build_gitlab_keys('rm-key', 'key-741', 'ssh-rsa AAAAB3NzaDAxx2E') }
+ describe :rm_key do
+ let(:gitlab_keys) { build_gitlab_keys('rm-key', 'key-741', 'ssh-rsa AAAAB3NzaDAxx2E') }
- it "removes the right line" do
- other_line = "command=\"#{ROOT_PATH}/bin/gitlab-shell key-742\",options ssh-rsa AAAAB3NzaDAxx2E"
- open(tmp_authorized_keys_path, 'a') do |auth_file|
- auth_file.puts "command=\"#{ROOT_PATH}/bin/gitlab-shell key-741\",options ssh-rsa AAAAB3NzaDAxx2E"
- auth_file.puts other_line
- end
- gitlab_keys.send :rm_key
- File.read(tmp_authorized_keys_path).should == "existing content\n#{other_line}\n"
+ it "removes the right line" do
+ create_authorized_keys_fixture
+ other_line = "command=\"#{ROOT_PATH}/bin/gitlab-shell key-742\",options ssh-rsa AAAAB3NzaDAxx2E"
+ open(tmp_authorized_keys_path, 'a') do |auth_file|
+ auth_file.puts "command=\"#{ROOT_PATH}/bin/gitlab-shell key-741\",options ssh-rsa AAAAB3NzaDAxx2E"
+ auth_file.puts other_line
end
+ gitlab_keys.send :rm_key
+ File.read(tmp_authorized_keys_path).should == "existing content\n#{other_line}\n"
+ end
+
+ context "without file writing" do
+ before { Tempfile.stub(:open) }
it "should log an rm-key event" do
$logger.should_receive(:info).with('Removing key key-741')
gitlab_keys.send :rm_key
end
+
+ it "should return true" do
+ gitlab_keys.send(:rm_key).should be_true
+ end
+ end
+ end
+
+ describe :clear do
+ let(:gitlab_keys) { build_gitlab_keys('clear') }
+
+ it "should return true" do
+ gitlab_keys.stub(:open)
+ gitlab_keys.send(:clear).should be_true
end
end
@@ -95,6 +114,12 @@ describe GitlabKeys do
end
end
+ def create_authorized_keys_fixture
+ FileUtils.mkdir_p(File.dirname(tmp_authorized_keys_path))
+ open(tmp_authorized_keys_path, 'w') { |file| file.puts('existing content') }
+ gitlab_keys.stub(auth_file: tmp_authorized_keys_path)
+ end
+
def tmp_authorized_keys_path
File.join(ROOT_PATH, 'tmp', 'authorized_keys')
end