diff options
author | Jacob Vosmaer <jacob@gitlab.com> | 2016-08-03 18:59:33 +0200 |
---|---|---|
committer | Jacob Vosmaer <jacob@gitlab.com> | 2016-08-03 18:59:33 +0200 |
commit | 784221bdb261c5edf9449f10e69ed8ebb5c98c03 (patch) | |
tree | 5926eb9bff5426afcdeb350d500bdf3895cc145f | |
parent | f9a55789864e30c1fed2951e26fd62768fc04bce (diff) | |
download | gitlab-shell-authorized-keys-permission-check.tar.gz |
Add permission check tests, improve checkauthorized-keys-permission-check
-rw-r--r-- | lib/gitlab_keys.rb | 6 | ||||
-rw-r--r-- | spec/gitlab_keys_spec.rb | 21 |
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') |