conjur-cli 4.14.0 → 4.15.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -13,25 +13,25 @@ describe Conjur::DSL::Runner, logged_in: true do
13
13
  end
14
14
  }
15
15
  before {
16
- Conjur.stub(:account).and_return "the-account"
17
- runner.stub(:api).and_return api
16
+ allow(Conjur).to receive(:account).and_return "the-account"
17
+ allow(runner).to receive(:api).and_return api
18
18
  }
19
19
  it "should populate the root ownerid" do
20
- api.should_receive(:user).with("alice").and_return double("alice-exists", exists?: false)
21
- api.should_receive(:create_user).with(id: "alice", ownerid: "user:bob").and_return alice
20
+ expect(api).to receive(:user).with("alice").and_return double("alice-exists", exists?: false)
21
+ expect(api).to receive(:create_user).with(id: "alice", ownerid: "user:bob").and_return alice
22
22
 
23
23
  runner.owner = "user:bob"
24
24
  runner.execute
25
25
  end
26
26
  it "should store the api_key in the context keyed by roleid" do
27
- api.should_receive(:user).with("alice").and_return double("alice-exists", exists?: false)
28
- api.should_receive(:create_user).with(id: "alice").and_return alice
27
+ expect(api).to receive(:user).with("alice").and_return double("alice-exists", exists?: false)
28
+ expect(api).to receive(:create_user).with(id: "alice").and_return alice
29
29
 
30
30
  runner.execute
31
31
 
32
- runner.context['api_keys'].should == {
32
+ expect(runner.context['api_keys']).to eq({
33
33
  "the-account:user:alice" => "the-api-key"
34
- }
34
+ })
35
35
  end
36
36
 
37
37
  it "doesn't store default env and stack in context" do
data/spec/env_spec.rb CHANGED
@@ -7,7 +7,7 @@ describe Conjur::Env do
7
7
 
8
8
  describe "requires either :file or :yaml parameter" do
9
9
  before {
10
- Conjur::Env.any_instance.should_not_receive(:parse)
10
+ expect_any_instance_of(Conjur::Env).not_to receive(:parse)
11
11
  }
12
12
  it "fails if both options are provided" do
13
13
  expect { Conjur::Env.new(file: 'f', yaml: 'y') }.to raise_error ":file and :yaml options can not be provided together"
@@ -33,20 +33,20 @@ describe Conjur::Env do
33
33
 
34
34
  describe "if :file parameter provided" do
35
35
  it "does not catch any errors from File.read" do
36
- Conjur::Env.any_instance.should_not_receive(:parse)
37
- File.stub(:read).with('unexisting').and_return { raise "Custom error" }
36
+ expect_any_instance_of(Conjur::Env).not_to receive(:parse)
37
+ allow(File).to receive(:read).with('unexisting') { raise "Custom error" }
38
38
  expect { Conjur::Env.new(file: 'unexisting') }.to raise_error "Custom error"
39
39
  end
40
40
 
41
41
  it "if file is readable, passes contents to #parse and stores result in @definition attribute" do
42
- File.should_receive(:read).with("somefile").and_return(:file_contents)
43
- Conjur::Env.any_instance.should_receive(:parse).with(:file_contents).and_return(:stub_parsed)
44
- Conjur::Env.new(file:"somefile").instance_variable_get("@definition").should == :stub_parsed
42
+ expect(File).to receive(:read).with("somefile").and_return(:file_contents)
43
+ expect_any_instance_of(Conjur::Env).to receive(:parse).with(:file_contents).and_return(:stub_parsed)
44
+ expect(Conjur::Env.new(file:"somefile").instance_variable_get("@definition")).to eq(:stub_parsed)
45
45
  end
46
46
  end
47
47
  it "if :yaml parameter provided, passes it to #parse and stores result in @definition attribute" do
48
- Conjur::Env.any_instance.should_receive(:parse).with("custom yaml").and_return(:stub_parsed)
49
- Conjur::Env.new(yaml:"custom yaml").instance_variable_get("@definition").should == :stub_parsed
48
+ expect_any_instance_of(Conjur::Env).to receive(:parse).with("custom yaml").and_return(:stub_parsed)
49
+ expect(Conjur::Env.new(yaml:"custom yaml").instance_variable_get("@definition")).to eq(:stub_parsed)
50
50
  end
51
51
  end
52
52
  end
@@ -54,7 +54,7 @@ describe Conjur::Env do
54
54
  describe "#parse (called from 'initialize')" do
55
55
 
56
56
  it 'parses input as YAML and does not hide YAML errors' do
57
- YAML.should_receive(:load).with("custom yaml").and_return { raise "Custom error" }
57
+ expect(YAML).to receive(:load).with("custom yaml") { raise "Custom error" }
58
58
  expect { Conjur::Env.new(yaml: "custom yaml") }.to raise_error "Custom error"
59
59
  end
60
60
 
@@ -75,15 +75,15 @@ describe Conjur::Env do
75
75
 
76
76
  it "Returns hash consisting of literals, ConjurTempfile and ConjurVariable objects" do
77
77
  result = Conjur::Env.new(yaml: "{a: literal, b: !tmp 'sometmp', c: !var 'somevar'}").instance_variable_get("@definition")
78
- result.keys.sort.should == ["a","b","c"]
79
- result["a"].should == 'literal'
80
- result["b"].should be_a_kind_of(Conjur::Env::ConjurTempfile)
81
- result["c"].should be_a_kind_of(Conjur::Env::ConjurVariable)
78
+ expect(result.keys.sort).to eq(["a","b","c"])
79
+ expect(result["a"]).to eq('literal')
80
+ expect(result["b"]).to be_a_kind_of(Conjur::Env::ConjurTempfile)
81
+ expect(result["c"]).to be_a_kind_of(Conjur::Env::ConjurVariable)
82
82
  end
83
83
 
84
84
  it "Converts numbers to string literals" do
85
85
  result = Conjur::Env.new(yaml: "{a: 123}").instance_variable_get("@definition")
86
- result["a"].should == "123"
86
+ expect(result["a"]).to eq("123")
87
87
  end
88
88
 
89
89
  end
@@ -91,34 +91,34 @@ describe Conjur::Env do
91
91
  describe "#obtain", logged_in: true do
92
92
  let(:subject) { Conjur::Env.new(yaml: "{a: literal, b: !tmp tempfile, c: !var conjurvar}") }
93
93
  before {
94
- api.stub(:variable_values).with(["tempfile","conjurvar"]).and_return({"tempfile" => "stubtemp", "conjurvar" => "stubvar" })
94
+ allow(api).to receive(:variable_values).with(["tempfile","conjurvar"]).and_return({"tempfile" => "stubtemp", "conjurvar" => "stubvar" })
95
95
  }
96
96
 
97
97
  it "requests variable_values with list of !var and !tmp values" do
98
- Conjur::Env::ConjurTempfile.any_instance.stub(:evaluate).and_return(:stub_value) # avoid tempfiles creation
99
- api.should_receive(:variable_values).with(["tempfile","conjurvar"]).and_return({"tempfile" => "stub1", "conjurvar" => "stub2" })
98
+ allow_any_instance_of(Conjur::Env::ConjurTempfile).to receive(:evaluate).and_return(:stub_value) # avoid tempfiles creation
99
+ expect(api).to receive(:variable_values).with(["tempfile","conjurvar"]).and_return({"tempfile" => "stub1", "conjurvar" => "stub2" })
100
100
  subject.obtain(api)
101
101
  end
102
102
 
103
103
  it 'does not suppress api errors' do
104
- api.stub(:variable_values).and_return { raise "Custom API error" }
104
+ allow(api).to receive(:variable_values) { raise "Custom API error" }
105
105
  expect { subject.obtain(api) }.to raise_error "Custom API error"
106
106
  end
107
107
 
108
108
  describe "for !tmp creates temporary files with Conjur variable value" do
109
109
  it "in /dev/shm if it exists" do
110
110
  tempfile = double(path: '/dev/shm/newfile', close: true)
111
- File.should_receive(:directory?).with("/dev/shm").and_return(true)
112
- File.should_receive(:writable?).with("/dev/shm").and_return(true)
113
- Tempfile.should_receive(:new).with("conjur","/dev/shm").and_return(tempfile)
114
- tempfile.should_receive(:write).with("stubtemp")
111
+ expect(File).to receive(:directory?).with("/dev/shm").and_return(true)
112
+ expect(File).to receive(:writable?).with("/dev/shm").and_return(true)
113
+ expect(Tempfile).to receive(:new).with("conjur","/dev/shm").and_return(tempfile)
114
+ expect(tempfile).to receive(:write).with("stubtemp")
115
115
  subject.obtain(api)
116
116
  end
117
117
  it "otherwise uses Tempfile defaults" do
118
118
  tempfile = double(path: '/tmp/newfile', close: true)
119
- File.should_receive(:directory?).with("/dev/shm").and_return(false)
120
- Tempfile.should_receive(:new).with("conjur").and_return(tempfile)
121
- tempfile.should_receive(:write).with("stubtemp")
119
+ expect(File).to receive(:directory?).with("/dev/shm").and_return(false)
120
+ expect(Tempfile).to receive(:new).with("conjur").and_return(tempfile)
121
+ expect(tempfile).to receive(:write).with("stubtemp")
122
122
  subject.obtain(api)
123
123
  end
124
124
  end
@@ -126,20 +126,20 @@ describe Conjur::Env do
126
126
  describe "returns hash consisting of original keys and following values" do
127
127
  before {
128
128
  tempfile=double(path:"/stub/tempfile",write: true, close: true)
129
- File.stub(:directory?).with("/dev/shm").and_return(true)
130
- File.stub(:writable?).with("/dev/shm").and_return(true)
131
- Tempfile.stub(:new).with("conjur","/dev/shm").and_return(tempfile)
129
+ allow(File).to receive(:directory?).with("/dev/shm").and_return(true)
130
+ allow(File).to receive(:writable?).with("/dev/shm").and_return(true)
131
+ allow(Tempfile).to receive(:new).with("conjur","/dev/shm").and_return(tempfile)
132
132
  }
133
133
  let(:result) { subject.obtain(api) }
134
134
 
135
135
  it 'literals' do
136
- result.should include("a"=>"literal")
136
+ expect(result).to include("a"=>"literal")
137
137
  end
138
138
  it '!tmp: names of temp files' do
139
- result.should include("b"=>"/stub/tempfile")
139
+ expect(result).to include("b"=>"/stub/tempfile")
140
140
  end
141
141
  it '!var: variable values' do
142
- result.should include("c"=>"stubvar")
142
+ expect(result).to include("c"=>"stubvar")
143
143
  end
144
144
  end
145
145
  end
@@ -148,38 +148,38 @@ describe Conjur::Env do
148
148
 
149
149
  let(:subject) { Conjur::Env.new(yaml: "{a: literal, b: !tmp tempfile_b, c: !var conjurvar_c, d: !tmp tempfile_d, e: !var conjurvar_e }") }
150
150
  before {
151
- api.should_not_receive(:variable_values)
152
- Tempfile.should_not_receive(:new)
151
+ expect(api).not_to receive(:variable_values)
152
+ expect(Tempfile).not_to receive(:new)
153
153
  }
154
154
  let(:permitted) { double(permitted?:true) }
155
155
  let(:restricted) { double(permitted?:false) }
156
156
 
157
157
  it "requests resource 'execute' permission for each !var and !tmp value" do
158
- api.should_receive(:resource).with("variable:tempfile_b").and_return(permitted)
159
- api.should_receive(:resource).with("variable:conjurvar_c").and_return(permitted)
160
- api.should_receive(:resource).with("variable:tempfile_d").and_return(permitted)
161
- api.should_receive(:resource).with("variable:conjurvar_e").and_return(permitted)
162
- permitted.should_receive(:permitted?).exactly(4).times.with(:execute).and_return(true)
158
+ expect(api).to receive(:resource).with("variable:tempfile_b").and_return(permitted)
159
+ expect(api).to receive(:resource).with("variable:conjurvar_c").and_return(permitted)
160
+ expect(api).to receive(:resource).with("variable:tempfile_d").and_return(permitted)
161
+ expect(api).to receive(:resource).with("variable:conjurvar_e").and_return(permitted)
162
+ expect(permitted).to receive(:permitted?).exactly(4).times.with(:execute).and_return(true)
163
163
  subject.check(api)
164
164
  end
165
165
 
166
166
  it 'does not rescue from unexpected api errors' do
167
- api.should_receive(:resource).with("variable:tempfile_b").and_return { raise "Custom error" }
167
+ expect(api).to receive(:resource).with("variable:tempfile_b") { raise "Custom error" }
168
168
  expect { subject.check(api) }.to raise_error "Custom error"
169
169
  end
170
170
 
171
171
  it "returns Hash consisting of original keys and following statuses: :literal, :available, :unavailable" do
172
- api.should_receive(:resource).with("variable:tempfile_b").and_return(permitted)
173
- api.should_receive(:resource).with("variable:conjurvar_c").and_return(restricted)
174
- api.should_receive(:resource).with("variable:tempfile_d").and_return(restricted)
175
- api.should_receive(:resource).with("variable:conjurvar_e").and_return(permitted)
172
+ expect(api).to receive(:resource).with("variable:tempfile_b").and_return(permitted)
173
+ expect(api).to receive(:resource).with("variable:conjurvar_c").and_return(restricted)
174
+ expect(api).to receive(:resource).with("variable:tempfile_d").and_return(restricted)
175
+ expect(api).to receive(:resource).with("variable:conjurvar_e").and_return(permitted)
176
176
 
177
- result = subject.check(api).should == { "a" => :literal,
177
+ result = expect(subject.check(api)).to eq({ "a" => :literal,
178
178
  "b" => :available,
179
179
  "c" => :unavailable,
180
180
  "d" => :unavailable,
181
181
  "e" => :available
182
- }
182
+ })
183
183
  end
184
184
  end
185
185
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conjur-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.14.0
4
+ version: 4.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rafał Rzepecki
@@ -9,182 +9,190 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-09-05 00:00:00.000000000 Z
12
+ date: 2014-09-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ! '>='
18
+ - - '>='
19
19
  - !ruby/object:Gem::Version
20
20
  version: '0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ! '>='
25
+ - - '>='
26
26
  - !ruby/object:Gem::Version
27
27
  version: '0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: conjur-api
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ! '>='
32
+ - - '>='
33
33
  - !ruby/object:Gem::Version
34
34
  version: 4.10.0
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ! '>='
39
+ - - '>='
40
40
  - !ruby/object:Gem::Version
41
41
  version: 4.10.0
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: gli
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ! '>='
46
+ - - '>='
47
47
  - !ruby/object:Gem::Version
48
48
  version: 2.8.0
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - ! '>='
53
+ - - '>='
54
54
  - !ruby/object:Gem::Version
55
55
  version: 2.8.0
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: highline
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ! '>='
60
+ - - '>='
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ! '>='
67
+ - - '>='
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: netrc
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ! '>='
74
+ - - '>='
75
75
  - !ruby/object:Gem::Version
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ! '>='
81
+ - - '>='
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: methadone
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - ! '>='
88
+ - - '>='
89
89
  - !ruby/object:Gem::Version
90
90
  version: '0'
91
91
  type: :runtime
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - ! '>='
95
+ - - '>='
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: deep_merge
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - ! '>='
102
+ - - '>='
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
105
  type: :runtime
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - ! '>='
109
+ - - '>='
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
112
  - !ruby/object:Gem::Dependency
113
113
  name: cas_rest_client
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
- - - ! '>='
116
+ - - '>='
117
117
  - !ruby/object:Gem::Version
118
118
  version: '0'
119
119
  type: :runtime
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
- - - ! '>='
123
+ - - '>='
124
124
  - !ruby/object:Gem::Version
125
125
  version: '0'
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: rspec
128
128
  requirement: !ruby/object:Gem::Requirement
129
129
  requirements:
130
- - - ! '>='
131
- - !ruby/object:Gem::Version
132
- version: '2.14'
133
- - - <
130
+ - - ~>
134
131
  - !ruby/object:Gem::Version
135
132
  version: '3.0'
136
133
  type: :development
137
134
  prerelease: false
138
135
  version_requirements: !ruby/object:Gem::Requirement
139
136
  requirements:
140
- - - ! '>='
141
- - !ruby/object:Gem::Version
142
- version: '2.14'
143
- - - <
137
+ - - ~>
144
138
  - !ruby/object:Gem::Version
145
139
  version: '3.0'
146
140
  - !ruby/object:Gem::Dependency
147
141
  name: simplecov
148
142
  requirement: !ruby/object:Gem::Requirement
149
143
  requirements:
150
- - - ! '>='
144
+ - - '>='
151
145
  - !ruby/object:Gem::Version
152
146
  version: '0'
153
147
  type: :development
154
148
  prerelease: false
155
149
  version_requirements: !ruby/object:Gem::Requirement
156
150
  requirements:
157
- - - ! '>='
151
+ - - '>='
158
152
  - !ruby/object:Gem::Version
159
153
  version: '0'
160
154
  - !ruby/object:Gem::Dependency
161
155
  name: aruba
162
156
  requirement: !ruby/object:Gem::Requirement
163
157
  requirements:
164
- - - ! '>='
158
+ - - '>='
165
159
  - !ruby/object:Gem::Version
166
160
  version: '0'
167
161
  type: :development
168
162
  prerelease: false
169
163
  version_requirements: !ruby/object:Gem::Requirement
170
164
  requirements:
171
- - - ! '>='
165
+ - - '>='
172
166
  - !ruby/object:Gem::Version
173
167
  version: '0'
174
168
  - !ruby/object:Gem::Dependency
175
- name: ci_reporter
169
+ name: ci_reporter_rspec
176
170
  requirement: !ruby/object:Gem::Requirement
177
171
  requirements:
178
172
  - - ~>
179
173
  - !ruby/object:Gem::Version
180
- version: '1.8'
174
+ version: '1.0'
181
175
  type: :development
182
176
  prerelease: false
183
177
  version_requirements: !ruby/object:Gem::Requirement
184
178
  requirements:
185
179
  - - ~>
186
180
  - !ruby/object:Gem::Version
187
- version: '1.8'
181
+ version: '1.0'
182
+ - !ruby/object:Gem::Dependency
183
+ name: ci_reporter_cucumber
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - '>='
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - '>='
194
+ - !ruby/object:Gem::Version
195
+ version: '0'
188
196
  - !ruby/object:Gem::Dependency
189
197
  name: rake
190
198
  requirement: !ruby/object:Gem::Requirement
@@ -199,6 +207,20 @@ dependencies:
199
207
  - - ~>
200
208
  - !ruby/object:Gem::Version
201
209
  version: '10.0'
210
+ - !ruby/object:Gem::Dependency
211
+ name: io-grab
212
+ requirement: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ~>
215
+ - !ruby/object:Gem::Version
216
+ version: 0.0.1
217
+ type: :development
218
+ prerelease: false
219
+ version_requirements: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - ~>
222
+ - !ruby/object:Gem::Version
223
+ version: 0.0.1
202
224
  description:
203
225
  email:
204
226
  - divided.mind@gmail.com
@@ -215,6 +237,7 @@ files:
215
237
  - .gitignore
216
238
  - .kateproject
217
239
  - .project
240
+ - CHANGELOG.md
218
241
  - Gemfile
219
242
  - LICENSE
220
243
  - README.md
@@ -302,17 +325,17 @@ require_paths:
302
325
  - lib
303
326
  required_ruby_version: !ruby/object:Gem::Requirement
304
327
  requirements:
305
- - - ! '>='
328
+ - - '>='
306
329
  - !ruby/object:Gem::Version
307
330
  version: '0'
308
331
  required_rubygems_version: !ruby/object:Gem::Requirement
309
332
  requirements:
310
- - - ! '>='
333
+ - - '>='
311
334
  - !ruby/object:Gem::Version
312
335
  version: '0'
313
336
  requirements: []
314
337
  rubyforge_project:
315
- rubygems_version: 2.2.2
338
+ rubygems_version: 2.2.1
316
339
  signing_key:
317
340
  specification_version: 4
318
341
  summary: Conjur command line interface