hieracles 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/bin/hc +4 -3
- data/bin/ppdb +2 -2
- data/lib/hieracles/config.rb +2 -4
- data/lib/hieracles/formats/console.rb +16 -15
- data/lib/hieracles/formats/csv.rb +6 -9
- data/lib/hieracles/formats/plain.rb +21 -13
- data/lib/hieracles/formats/yaml.rb +7 -14
- data/lib/hieracles/hiera.rb +5 -4
- data/lib/hieracles/node.rb +57 -25
- data/lib/hieracles/registry.rb +6 -3
- data/lib/hieracles/utils.rb +5 -0
- data/spec/lib/config_spec.rb +48 -32
- data/spec/lib/formats/console_spec.rb +23 -12
- data/spec/lib/formats/csv_spec.rb +24 -34
- data/spec/lib/formats/plain_spec.rb +23 -12
- data/spec/lib/formats/yaml_spec.rb +164 -96
- data/spec/lib/hiera_spec.rb +10 -12
- data/spec/lib/node_spec.rb +194 -146
- data/spec/lib/registry_spec.rb +10 -10
- metadata +2 -2
@@ -76,14 +76,20 @@ describe Hieracles::Formats::Console do
|
|
76
76
|
describe ".build_params_line" do
|
77
77
|
context "when not merged" do
|
78
78
|
let(:expected) {
|
79
|
-
"
|
80
|
-
" \e[97m[0] params.this.var value1\e[0m\n"
|
79
|
+
"[-] \e[36mparams.this.var\e[0m value1\n" +
|
80
|
+
" \e[97m[0] params.this.var value1\e[0m\n" +
|
81
|
+
" \e[97m[1] params.this.var value2\e[0m\n"
|
81
82
|
}
|
82
83
|
let(:params) {
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
84
|
+
{
|
85
|
+
file: '-',
|
86
|
+
value: 'value1',
|
87
|
+
overriden: true,
|
88
|
+
found_in: [
|
89
|
+
{ file: 'path1', value: 'value1' },
|
90
|
+
{ file: 'path2', value: 'value2' }
|
91
|
+
]
|
92
|
+
}
|
87
93
|
}
|
88
94
|
before {
|
89
95
|
console_format.instance_variable_set(:@colors,
|
@@ -100,14 +106,19 @@ describe Hieracles::Formats::Console do
|
|
100
106
|
context "when merged" do
|
101
107
|
let(:expected) {
|
102
108
|
"[-] \e[36mparams.this.var\e[0m [\"value1\", \"value2\"]\n"+
|
103
|
-
" \e[97m[
|
104
|
-
" \e[97m[
|
109
|
+
" \e[97m[0] params.this.var [\"value1\"]\e[0m\n"+
|
110
|
+
" \e[97m[1] params.this.var [\"value2\"]\e[0m\n"
|
105
111
|
}
|
106
112
|
let(:params) {
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
113
|
+
{
|
114
|
+
file: '-',
|
115
|
+
value: ['value1','value2'],
|
116
|
+
overriden: true,
|
117
|
+
found_in: [
|
118
|
+
{ file: 'path1', value: ['value1'] },
|
119
|
+
{ file: 'path2', value: ['value2'] }
|
120
|
+
]
|
121
|
+
}
|
111
122
|
}
|
112
123
|
before {
|
113
124
|
console_format.instance_variable_set(:@colors,
|
@@ -66,38 +66,22 @@ describe Hieracles::Formats::Csv do
|
|
66
66
|
|
67
67
|
describe ".build_params_line" do
|
68
68
|
context "with array values" do
|
69
|
-
context "when not merged" do
|
70
|
-
let(:expected) {
|
71
|
-
"0;1;params.this.var;[\"value1\"];0\n"+
|
72
|
-
"1;0;params.this.var;[\"value1\"];1\n"
|
73
|
-
}
|
74
|
-
let(:params) {
|
75
|
-
[
|
76
|
-
{ file: 'path1', value: ['value1'], merged: ['value1'] },
|
77
|
-
{ file: 'path2', value: ['value1'], merged: ['value1'] },
|
78
|
-
]
|
79
|
-
}
|
80
|
-
before {
|
81
|
-
allow(node).to receive(:files).and_return(['path1', 'path2'])
|
82
|
-
}
|
83
|
-
it "outputs proper text" do
|
84
|
-
expect(csv_format.send :build_params_line,
|
85
|
-
"params.this.var",
|
86
|
-
params,
|
87
|
-
nil).to eq expected
|
88
|
-
end
|
89
|
-
end
|
90
69
|
context "when merged" do
|
91
70
|
let(:expected) {
|
92
|
-
"0;0;params.this.var;[\"value1\", \"value2\"];0\n"+
|
93
|
-
"0;
|
94
|
-
"1;
|
71
|
+
"0;0;params.this.var;[\"value1\", \"value2\"];0\n" +
|
72
|
+
"1;0;params.this.var;[\"value1\"];1\n" +
|
73
|
+
"0;1;params.this.var;[\"value2\"];1\n"
|
95
74
|
}
|
96
75
|
let(:params) {
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
76
|
+
{
|
77
|
+
file: '-',
|
78
|
+
value: ['value1','value2'],
|
79
|
+
overriden: true,
|
80
|
+
found_in: [
|
81
|
+
{ file: 'path1', value: ['value1'] },
|
82
|
+
{ file: 'path2', value: ['value2'] }
|
83
|
+
]
|
84
|
+
}
|
101
85
|
}
|
102
86
|
before {
|
103
87
|
allow(node).to receive(:files).and_return(['path1', 'path2'])
|
@@ -112,14 +96,20 @@ describe Hieracles::Formats::Csv do
|
|
112
96
|
end
|
113
97
|
context "with non-array values" do
|
114
98
|
let(:expected) {
|
115
|
-
"0;
|
116
|
-
"1;0;params.this.var;value1;1\n"
|
99
|
+
"0;0;params.this.var;value1;0\n" +
|
100
|
+
"1;0;params.this.var;value1;1\n" +
|
101
|
+
"0;1;params.this.var;value2;1\n"
|
117
102
|
}
|
118
103
|
let(:params) {
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
104
|
+
{
|
105
|
+
file: '-',
|
106
|
+
value: 'value1',
|
107
|
+
overriden: true,
|
108
|
+
found_in: [
|
109
|
+
{ file: 'path1', value: 'value1' },
|
110
|
+
{ file: 'path2', value: 'value2' }
|
111
|
+
]
|
112
|
+
}
|
123
113
|
}
|
124
114
|
before {
|
125
115
|
allow(node).to receive(:files).and_return(['path1', 'path2'])
|
@@ -75,14 +75,20 @@ describe Hieracles::Formats::Plain do
|
|
75
75
|
describe ".build_params_line" do
|
76
76
|
context "when not merged" do
|
77
77
|
let(:expected) {
|
78
|
-
"[
|
79
|
-
" [0] params.this.var value1\n"
|
78
|
+
"[-] params.this.var value1\n" +
|
79
|
+
" [0] params.this.var value1\n" +
|
80
|
+
" [1] params.this.var value2\n"
|
80
81
|
}
|
81
82
|
let(:params) {
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
83
|
+
{
|
84
|
+
file: '-',
|
85
|
+
value: 'value1',
|
86
|
+
overriden: true,
|
87
|
+
found_in: [
|
88
|
+
{ file: 'path1', value: 'value1' },
|
89
|
+
{ file: 'path2', value: 'value2' }
|
90
|
+
]
|
91
|
+
}
|
86
92
|
}
|
87
93
|
before {
|
88
94
|
plain_format.instance_variable_set(:@index,
|
@@ -99,14 +105,19 @@ describe Hieracles::Formats::Plain do
|
|
99
105
|
context "when merged" do
|
100
106
|
let(:expected) {
|
101
107
|
"[-] params.this.var [\"value1\", \"value2\"]\n"+
|
102
|
-
" [
|
103
|
-
" [
|
108
|
+
" [0] params.this.var [\"value1\"]\n"+
|
109
|
+
" [1] params.this.var [\"value2\"]\n"
|
104
110
|
}
|
105
111
|
let(:params) {
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
112
|
+
{
|
113
|
+
file: '-',
|
114
|
+
value: ['value1','value2'],
|
115
|
+
overriden: true,
|
116
|
+
found_in: [
|
117
|
+
{ file: 'path1', value: ['value1'] },
|
118
|
+
{ file: 'path2', value: ['value2'] }
|
119
|
+
]
|
120
|
+
}
|
110
121
|
}
|
111
122
|
before {
|
112
123
|
plain_format.instance_variable_set(:@index,
|
@@ -70,10 +70,14 @@ describe Hieracles::Formats::Yaml do
|
|
70
70
|
before {
|
71
71
|
allow(node).to receive(:params).with(true).and_return(
|
72
72
|
{
|
73
|
-
'params.this.var' =>
|
74
|
-
file: 'some/file',
|
75
|
-
value: 'value1'
|
76
|
-
|
73
|
+
'params.this.var' => {
|
74
|
+
file: 'some/file',
|
75
|
+
value: 'value1',
|
76
|
+
overriden: false,
|
77
|
+
found_in: [
|
78
|
+
{ file: 'some/file', value: 'value1' }
|
79
|
+
]
|
80
|
+
}
|
77
81
|
}
|
78
82
|
)
|
79
83
|
allow(node).to receive(:params_tree).with(true).and_return(
|
@@ -98,10 +102,14 @@ describe Hieracles::Formats::Yaml do
|
|
98
102
|
before {
|
99
103
|
allow(node).to receive(:params).and_return(
|
100
104
|
{
|
101
|
-
'params.this.var' =>
|
102
|
-
file: 'some/file',
|
103
|
-
value: 'value1'
|
104
|
-
|
105
|
+
'params.this.var' => {
|
106
|
+
file: 'some/file',
|
107
|
+
value: 'value1',
|
108
|
+
overriden: false,
|
109
|
+
found_in: [
|
110
|
+
{ file: 'some/file', value: 'value1' }
|
111
|
+
]
|
112
|
+
}
|
105
113
|
}
|
106
114
|
)
|
107
115
|
allow(node).to receive(:params_tree).and_return(
|
@@ -129,10 +137,14 @@ describe Hieracles::Formats::Yaml do
|
|
129
137
|
before {
|
130
138
|
allow(node).to receive(:params).and_return(
|
131
139
|
{
|
132
|
-
'params.this.var' =>
|
133
|
-
file: 'some/file',
|
134
|
-
value: 'value1'
|
135
|
-
|
140
|
+
'params.this.var' => {
|
141
|
+
file: 'some/file',
|
142
|
+
value: 'value1',
|
143
|
+
overriden: false,
|
144
|
+
found_in: [
|
145
|
+
{ file: 'some/file', value: 'value1' }
|
146
|
+
]
|
147
|
+
}
|
136
148
|
}
|
137
149
|
)
|
138
150
|
allow(node).to receive(:params_tree).and_return(
|
@@ -157,10 +169,14 @@ describe Hieracles::Formats::Yaml do
|
|
157
169
|
before {
|
158
170
|
allow(node).to receive(:params).with(false).and_return(
|
159
171
|
{
|
160
|
-
'params.this.var' =>
|
161
|
-
file: 'some/file',
|
162
|
-
value: 'value1'
|
163
|
-
|
172
|
+
'params.this.var' => {
|
173
|
+
file: 'some/file',
|
174
|
+
value: 'value1',
|
175
|
+
overriden: false,
|
176
|
+
found_in: [
|
177
|
+
{ file: 'some/file', value: 'value1' }
|
178
|
+
]
|
179
|
+
}
|
164
180
|
}
|
165
181
|
)
|
166
182
|
allow(node).to receive(:params_tree).with(false).and_return(
|
@@ -181,10 +197,14 @@ describe Hieracles::Formats::Yaml do
|
|
181
197
|
context "with a simple string key-value" do
|
182
198
|
let(:params) {
|
183
199
|
{
|
184
|
-
'key' =>
|
185
|
-
file: 'what/file',
|
186
|
-
value: 'value'
|
187
|
-
|
200
|
+
'key' => {
|
201
|
+
file: 'what/file',
|
202
|
+
value: 'value',
|
203
|
+
overriden: false,
|
204
|
+
found_in: [
|
205
|
+
{ file: 'what/file', value: 'value1' }
|
206
|
+
]
|
207
|
+
}
|
188
208
|
}
|
189
209
|
}
|
190
210
|
let(:input) {
|
@@ -198,10 +218,14 @@ describe Hieracles::Formats::Yaml do
|
|
198
218
|
context "with various boolean type of key-values (true)" do
|
199
219
|
let(:params) {
|
200
220
|
{
|
201
|
-
'key' =>
|
202
|
-
file: 'what/file',
|
203
|
-
value:
|
204
|
-
|
221
|
+
'key' => {
|
222
|
+
file: 'what/file',
|
223
|
+
value: true,
|
224
|
+
overriden: false,
|
225
|
+
found_in: [
|
226
|
+
{ file: 'what/file', value: true }
|
227
|
+
]
|
228
|
+
}
|
205
229
|
}
|
206
230
|
}
|
207
231
|
let(:input) {
|
@@ -215,10 +239,14 @@ describe Hieracles::Formats::Yaml do
|
|
215
239
|
context "with various null type of key-values (nil)" do
|
216
240
|
let(:params) {
|
217
241
|
{
|
218
|
-
'key' =>
|
219
|
-
file: 'what/file',
|
220
|
-
value: nil
|
221
|
-
|
242
|
+
'key' => {
|
243
|
+
file: 'what/file',
|
244
|
+
value: nil,
|
245
|
+
overriden: false,
|
246
|
+
found_in: [
|
247
|
+
{ file: 'what/file', value: nil }
|
248
|
+
]
|
249
|
+
}
|
222
250
|
}
|
223
251
|
}
|
224
252
|
let(:input) {
|
@@ -232,10 +260,14 @@ describe Hieracles::Formats::Yaml do
|
|
232
260
|
context "with various boolean type of key-values (false)" do
|
233
261
|
let(:params) {
|
234
262
|
{
|
235
|
-
'key' =>
|
236
|
-
file: 'what/file',
|
237
|
-
value: 'false'
|
238
|
-
|
263
|
+
'key' => {
|
264
|
+
file: 'what/file',
|
265
|
+
value: 'false',
|
266
|
+
overriden: false,
|
267
|
+
found_in: [
|
268
|
+
{ file: 'what/file', value: 'false' }
|
269
|
+
]
|
270
|
+
}
|
239
271
|
}
|
240
272
|
}
|
241
273
|
let(:input) {
|
@@ -249,10 +281,14 @@ describe Hieracles::Formats::Yaml do
|
|
249
281
|
context "with various fixnum type of key-values" do
|
250
282
|
let(:params) {
|
251
283
|
{
|
252
|
-
'key' =>
|
253
|
-
file: 'what/file',
|
254
|
-
value: '3'
|
255
|
-
|
284
|
+
'key' => {
|
285
|
+
file: 'what/file',
|
286
|
+
value: '3',
|
287
|
+
overriden: false,
|
288
|
+
found_in: [
|
289
|
+
{ file: 'what/file', value: '3' }
|
290
|
+
]
|
291
|
+
}
|
256
292
|
}
|
257
293
|
}
|
258
294
|
let(:input) {
|
@@ -266,10 +302,14 @@ describe Hieracles::Formats::Yaml do
|
|
266
302
|
context "with various float type of key-values" do
|
267
303
|
let(:params) {
|
268
304
|
{
|
269
|
-
'key' =>
|
270
|
-
file: 'what/file',
|
271
|
-
value: '0.3'
|
272
|
-
|
305
|
+
'key' => {
|
306
|
+
file: 'what/file',
|
307
|
+
value: '0.3',
|
308
|
+
overriden: false,
|
309
|
+
found_in: [
|
310
|
+
{ file: 'what/file', value: '0.3' }
|
311
|
+
]
|
312
|
+
}
|
273
313
|
}
|
274
314
|
}
|
275
315
|
let(:input) {
|
@@ -283,10 +323,14 @@ describe Hieracles::Formats::Yaml do
|
|
283
323
|
context "with a simple array key-value" do
|
284
324
|
let(:params) {
|
285
325
|
{
|
286
|
-
'key' =>
|
287
|
-
file: 'what/file',
|
288
|
-
value: ['value1', 'value2']
|
289
|
-
|
326
|
+
'key' => {
|
327
|
+
file: 'what/file',
|
328
|
+
value: ['value1', 'value2'],
|
329
|
+
overriden: false,
|
330
|
+
found_in: [
|
331
|
+
{ file: 'what/file', value: ['value1', 'value2'] }
|
332
|
+
]
|
333
|
+
}
|
290
334
|
}
|
291
335
|
}
|
292
336
|
let(:input) {
|
@@ -306,18 +350,15 @@ describe Hieracles::Formats::Yaml do
|
|
306
350
|
context "with a double array key-value" do
|
307
351
|
let(:params) {
|
308
352
|
{
|
309
|
-
'key' =>
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
merged: ['value1', 'value2', 'value3']
|
319
|
-
}
|
320
|
-
]
|
353
|
+
'key' => {
|
354
|
+
file: '-',
|
355
|
+
value: ['value3'],
|
356
|
+
overriden: true,
|
357
|
+
found_in: [
|
358
|
+
{ file: 'what/file', value: ['value3'] },
|
359
|
+
{ file: 'what/other-file', value: ['value1', 'value2'] }
|
360
|
+
]
|
361
|
+
}
|
321
362
|
}
|
322
363
|
}
|
323
364
|
let(:hiera) { Struct.new( :merge_behavior ) }
|
@@ -326,7 +367,7 @@ describe Hieracles::Formats::Yaml do
|
|
326
367
|
{ 'key' => ['value3'] }
|
327
368
|
}
|
328
369
|
let(:expected) {
|
329
|
-
"\nkey: \n # what/other-file\n - value3"
|
370
|
+
"\nkey: \n # what/file\n # what/other-file\n - value3"
|
330
371
|
}
|
331
372
|
before {
|
332
373
|
allow(node).to receive(:hiera).and_return(
|
@@ -353,10 +394,14 @@ describe Hieracles::Formats::Yaml do
|
|
353
394
|
context "with a 2-levels string key-value" do
|
354
395
|
let(:params) {
|
355
396
|
{
|
356
|
-
'key.sublevel' =>
|
357
|
-
file: 'what/file',
|
358
|
-
value: 'value'
|
359
|
-
|
397
|
+
'key.sublevel' => {
|
398
|
+
file: 'what/file',
|
399
|
+
value: 'value',
|
400
|
+
overriden: false,
|
401
|
+
found_in: [
|
402
|
+
{ file: 'what/file', value: 'value' }
|
403
|
+
]
|
404
|
+
}
|
360
405
|
}
|
361
406
|
}
|
362
407
|
let(:input) {
|
@@ -374,14 +419,22 @@ describe Hieracles::Formats::Yaml do
|
|
374
419
|
context "with 2 2-levels string key-value" do
|
375
420
|
let(:params) {
|
376
421
|
{
|
377
|
-
'key.sublevel' =>
|
378
|
-
file: 'what/file',
|
379
|
-
value: 'value'
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
}
|
422
|
+
'key.sublevel' => {
|
423
|
+
file: 'what/file',
|
424
|
+
value: 'value',
|
425
|
+
overriden: false,
|
426
|
+
found_in: [
|
427
|
+
{ file: 'what/file', value: 'value' }
|
428
|
+
]
|
429
|
+
},
|
430
|
+
'key.sublevel2' => {
|
431
|
+
file: 'what/file2',
|
432
|
+
value: 'value2',
|
433
|
+
overriden: false,
|
434
|
+
found_in: [
|
435
|
+
{ file: 'what/file2', value: 'value2' }
|
436
|
+
]
|
437
|
+
}
|
385
438
|
}
|
386
439
|
}
|
387
440
|
let(:input) {
|
@@ -400,10 +453,14 @@ describe Hieracles::Formats::Yaml do
|
|
400
453
|
context "with a 3-levels string key-value" do
|
401
454
|
let(:params) {
|
402
455
|
{
|
403
|
-
'key.sublevel.subsublevel' =>
|
404
|
-
file: 'what/file',
|
405
|
-
value: 'value'
|
406
|
-
|
456
|
+
'key.sublevel.subsublevel' => {
|
457
|
+
file: 'what/file',
|
458
|
+
value: 'value',
|
459
|
+
overriden: false,
|
460
|
+
found_in: [
|
461
|
+
{ file: 'what/file', value: 'value' }
|
462
|
+
]
|
463
|
+
}
|
407
464
|
}
|
408
465
|
}
|
409
466
|
let(:input) {
|
@@ -423,14 +480,22 @@ describe Hieracles::Formats::Yaml do
|
|
423
480
|
context "with a 3-levels double string key-value" do
|
424
481
|
let(:params) {
|
425
482
|
{
|
426
|
-
'key.sublevel.subsublevel' =>
|
427
|
-
file: 'what/file',
|
428
|
-
value: 'value'
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
}
|
483
|
+
'key.sublevel.subsublevel' => {
|
484
|
+
file: 'what/file',
|
485
|
+
value: 'value',
|
486
|
+
overriden: false,
|
487
|
+
found_in: [
|
488
|
+
{ file: 'what/file', value: 'value' }
|
489
|
+
]
|
490
|
+
},
|
491
|
+
'key2.sublevel' => {
|
492
|
+
file: 'what/file2',
|
493
|
+
value: 'value',
|
494
|
+
overriden: false,
|
495
|
+
found_in: [
|
496
|
+
{ file: 'what/file2', value: 'value' }
|
497
|
+
]
|
498
|
+
}
|
434
499
|
}
|
435
500
|
}
|
436
501
|
let(:input) {
|
@@ -454,20 +519,23 @@ describe Hieracles::Formats::Yaml do
|
|
454
519
|
context "with a 3-levels double string key-value and override" do
|
455
520
|
let(:params) {
|
456
521
|
{
|
457
|
-
'key.sublevel.subsublevel' =>
|
458
|
-
file: 'what/file',
|
459
|
-
value: 'value'
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
522
|
+
'key.sublevel.subsublevel' => {
|
523
|
+
file: 'what/file',
|
524
|
+
value: 'value',
|
525
|
+
overriden: false,
|
526
|
+
found_in: [
|
527
|
+
{ file: 'what/file', value: 'value' }
|
528
|
+
]
|
529
|
+
},
|
530
|
+
'key2.sublevel' => {
|
531
|
+
file: '-',
|
532
|
+
value: 'value',
|
533
|
+
overriden: true,
|
534
|
+
found_in: [
|
535
|
+
{ file: 'what/file2', value: 'value' },
|
536
|
+
{ file: 'what/file1', value: 'value2' }
|
537
|
+
]
|
538
|
+
}
|
471
539
|
}
|
472
540
|
}
|
473
541
|
let(:input) {
|
@@ -484,7 +552,7 @@ describe Hieracles::Formats::Yaml do
|
|
484
552
|
}
|
485
553
|
let(:expected) {
|
486
554
|
"\nkey: \n sublevel: \n subsublevel: value # what/file" +
|
487
|
-
"\nkey2: \n sublevel: value2 # what/file1"
|
555
|
+
"\nkey2: \n sublevel: value2 # what/file2 # what/file1"
|
488
556
|
}
|
489
557
|
it { expect(yaml_format.mergetree('', [], input, params)).to eq expected }
|
490
558
|
end
|
data/spec/lib/hiera_spec.rb
CHANGED
@@ -11,7 +11,7 @@ describe Hieracles::Hiera do
|
|
11
11
|
hierafile: 'hiera_no.yaml'
|
12
12
|
} }
|
13
13
|
it 'raises an error' do
|
14
|
-
expect { Hieracles::Config.
|
14
|
+
expect { Hieracles::Config.new(options) }.to raise_error(IOError)
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
@@ -24,8 +24,8 @@ describe Hieracles::Hiera do
|
|
24
24
|
let(:expected){
|
25
25
|
File.expand_path(File.join(options[:basepath], options[:hierafile]))
|
26
26
|
}
|
27
|
-
let(:
|
28
|
-
|
27
|
+
let(:config) { Hieracles::Config.new options }
|
28
|
+
let(:hiera) { Hieracles::Hiera.new config }
|
29
29
|
it 'load the file' do
|
30
30
|
expect(hiera.instance_variable_get :@loaded).to be_a Hash
|
31
31
|
expect(hiera.instance_variable_get :@hierafile).to eq expected
|
@@ -35,14 +35,14 @@ describe Hieracles::Hiera do
|
|
35
35
|
end
|
36
36
|
|
37
37
|
describe '.datapath' do
|
38
|
-
|
38
|
+
let(:config) { Hieracles::Config.new options }
|
39
|
+
let(:hiera) { Hieracles::Hiera.new config }
|
39
40
|
context 'hiera file do not have a yaml backend' do
|
40
41
|
let(:options) { {
|
41
42
|
config: 'spec/files/config.yml',
|
42
43
|
basepath: 'spec/files',
|
43
44
|
hierafile: 'hiera_no_yamlbackend.yaml'
|
44
45
|
} }
|
45
|
-
let(:hiera) { Hieracles::Hiera.new }
|
46
46
|
it 'raises an error' do
|
47
47
|
expect { hiera.datapath }.to raise_error(TypeError)
|
48
48
|
end
|
@@ -53,7 +53,6 @@ describe Hieracles::Hiera do
|
|
53
53
|
basepath: 'spec/files',
|
54
54
|
hierafile: 'hiera_yamlbackend_notfound.yaml'
|
55
55
|
} }
|
56
|
-
let(:hiera) { Hieracles::Hiera.new }
|
57
56
|
it 'raises an error' do
|
58
57
|
expect { hiera.datapath }.to raise_error(IOError)
|
59
58
|
end
|
@@ -66,8 +65,7 @@ describe Hieracles::Hiera do
|
|
66
65
|
basepath: 'spec/files'
|
67
66
|
}
|
68
67
|
}
|
69
|
-
let(:
|
70
|
-
let(:expected) { File.expand_path(File.join(Hieracles::Config.basepath, 'params')) }
|
68
|
+
let(:expected) { File.expand_path(File.join(config.basepath, 'params')) }
|
71
69
|
it 'returns params path' do
|
72
70
|
expect(hiera.datapath).to eq expected
|
73
71
|
end
|
@@ -75,7 +73,6 @@ describe Hieracles::Hiera do
|
|
75
73
|
end
|
76
74
|
|
77
75
|
describe '.datadir' do
|
78
|
-
before { Hieracles::Config.load(options) }
|
79
76
|
let(:options) {
|
80
77
|
{
|
81
78
|
config: 'spec/files/config.yml',
|
@@ -83,12 +80,12 @@ describe Hieracles::Hiera do
|
|
83
80
|
basepath: 'spec/files'
|
84
81
|
}
|
85
82
|
}
|
86
|
-
let(:
|
83
|
+
let(:config) { Hieracles::Config.new options }
|
84
|
+
let(:hiera) { Hieracles::Hiera.new config }
|
87
85
|
it { expect(hiera.datadir).to eq 'params/' }
|
88
86
|
end
|
89
87
|
|
90
88
|
context "with proper params" do
|
91
|
-
before { Hieracles::Config.load(options) }
|
92
89
|
let(:options) {
|
93
90
|
{
|
94
91
|
config: 'spec/files/config.yml',
|
@@ -96,7 +93,8 @@ describe Hieracles::Hiera do
|
|
96
93
|
hierafile: 'hiera.yaml'
|
97
94
|
}
|
98
95
|
}
|
99
|
-
let(:
|
96
|
+
let(:config) { Hieracles::Config.new options }
|
97
|
+
let(:hiera) { Hieracles::Hiera.new config }
|
100
98
|
|
101
99
|
describe '.hierarchy' do
|
102
100
|
let(:expected) { [
|