summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Vosmaer <jacob@gitlab.com>2016-08-03 18:59:33 +0200
committerJacob Vosmaer <jacob@gitlab.com>2016-08-03 18:59:33 +0200
commit784221bdb261c5edf9449f10e69ed8ebb5c98c03 (patch)
tree5926eb9bff5426afcdeb350d500bdf3895cc145f
parentf9a55789864e30c1fed2951e26fd62768fc04bce (diff)
downloadgitlab-shell-authorized-keys-permission-check.tar.gz
Add permission check tests, improve checkauthorized-keys-permission-check
-rw-r--r--lib/gitlab_keys.rb6
-rw-r--r--spec/gitlab_keys_spec.rb21
2 files changed, 23 insertions, 4 deletions
diff --git a/lib/gitlab_keys.rb b/lib/gitlab_keys.rb
index 446ae9d..c719e8d 100644
--- a/lib/gitlab_keys.rb
+++ b/lib/gitlab_keys.rb
@@ -94,9 +94,9 @@ class GitlabKeys
end
def check_permissions
- open_auth_file('r+') { return true }
- rescue
- puts "error: could not open #{auth_file}"
+ open_auth_file('r+') { true }
+ rescue => ex
+ puts "error: could not open #{auth_file}: #{ex}"
if File.exist?(auth_file)
system('ls', '-l', auth_file)
else
diff --git a/spec/gitlab_keys_spec.rb b/spec/gitlab_keys_spec.rb
index 5afa467..d761cc4 100644
--- a/spec/gitlab_keys_spec.rb
+++ b/spec/gitlab_keys_spec.rb
@@ -15,7 +15,6 @@ describe GitlabKeys do
it { gitlab_keys.instance_variable_get(:@key_id).should == 'key-741' }
end
-
describe :add_key do
let(:gitlab_keys) { build_gitlab_keys('add-key', 'key-741', 'ssh-rsa AAAAB3NzaDAxx2E') }
@@ -145,6 +144,20 @@ describe GitlabKeys do
end
end
+ describe :check_permissions do
+ let(:gitlab_keys) { build_gitlab_keys('check-permissions') }
+
+ it 'returns true when the file can be opened' do
+ create_authorized_keys_fixture
+ expect(gitlab_keys.exec).to eq(true)
+ end
+
+ it 'returns false if opening raises an exception' do
+ gitlab_keys.should_receive(:open_auth_file).and_raise("imaginary error")
+ expect(gitlab_keys.exec).to eq(false)
+ end
+ end
+
describe :exec do
it 'add-key arg should execute add_key method' do
gitlab_keys = build_gitlab_keys('add-key')
@@ -170,6 +183,12 @@ describe GitlabKeys do
gitlab_keys.exec
end
+ it 'check-permissions arg should execute check_permissions method' do
+ gitlab_keys = build_gitlab_keys('check-permissions')
+ gitlab_keys.should_receive(:check_permissions)
+ gitlab_keys.exec
+ end
+
it 'should puts message if unknown command arg' do
gitlab_keys = build_gitlab_keys('change-key')
gitlab_keys.should_receive(:puts).with('not allowed')