puppet-lint 3.4.0 → 4.0.0.rc.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/lib/puppet-lint/bin.rb +7 -11
- data/lib/puppet-lint/checkplugin.rb +4 -8
- data/lib/puppet-lint/checks.rb +7 -9
- data/lib/puppet-lint/configuration.rb +2 -2
- data/lib/puppet-lint/data.rb +35 -39
- data/lib/puppet-lint/lexer/string_slurper.rb +2 -3
- data/lib/puppet-lint/lexer/token.rb +6 -5
- data/lib/puppet-lint/lexer.rb +35 -38
- data/lib/puppet-lint/monkeypatches.rb +4 -4
- data/lib/puppet-lint/optparser.rb +1 -1
- data/lib/puppet-lint/plugins/check_classes/arrow_on_right_operand_line.rb +1 -0
- data/lib/puppet-lint/plugins/check_classes/autoloader_layout.rb +2 -4
- data/lib/puppet-lint/plugins/check_classes/class_inherits_from_params_class.rb +2 -2
- data/lib/puppet-lint/plugins/check_classes/code_on_top_scope.rb +1 -1
- data/lib/puppet-lint/plugins/check_classes/nested_classes_or_defines.rb +5 -5
- data/lib/puppet-lint/plugins/check_classes/parameter_order.rb +8 -9
- data/lib/puppet-lint/plugins/check_classes/variable_scope.rb +32 -34
- data/lib/puppet-lint/plugins/check_conditionals/case_without_default.rb +2 -2
- data/lib/puppet-lint/plugins/check_documentation/documentation.rb +7 -6
- data/lib/puppet-lint/plugins/check_nodes/unquoted_node_name.rb +1 -1
- data/lib/puppet-lint/plugins/check_resources/ensure_first_param.rb +3 -5
- data/lib/puppet-lint/plugins/check_resources/ensure_not_symlink_target.rb +2 -2
- data/lib/puppet-lint/plugins/check_resources/file_mode.rb +6 -6
- data/lib/puppet-lint/plugins/check_resources/unquoted_file_mode.rb +4 -4
- data/lib/puppet-lint/plugins/check_strings/double_quoted_strings.rb +4 -4
- data/lib/puppet-lint/plugins/check_strings/only_variable_string.rb +4 -5
- data/lib/puppet-lint/plugins/check_strings/quoted_booleans.rb +4 -4
- data/lib/puppet-lint/plugins/check_strings/single_quote_string_with_variables.rb +2 -2
- data/lib/puppet-lint/plugins/check_strings/variables_not_enclosed.rb +8 -7
- data/lib/puppet-lint/plugins/check_variables/variable_contains_dash.rb +3 -3
- data/lib/puppet-lint/plugins/check_variables/variable_is_lowercase.rb +2 -2
- data/lib/puppet-lint/plugins/check_whitespace/140chars.rb +1 -0
- data/lib/puppet-lint/plugins/check_whitespace/80chars.rb +2 -1
- data/lib/puppet-lint/plugins/check_whitespace/arrow_alignment.rb +9 -9
- data/lib/puppet-lint/plugins/check_whitespace/hard_tabs.rb +2 -2
- data/lib/puppet-lint/plugins/check_whitespace/line_length.rb +6 -6
- data/lib/puppet-lint/plugins/legacy_facts/legacy_facts.rb +106 -105
- data/lib/puppet-lint/plugins/top_scope_facts/top_scope_facts.rb +3 -2
- data/lib/puppet-lint/plugins.rb +3 -4
- data/lib/puppet-lint/report/codeclimate.rb +3 -2
- data/lib/puppet-lint/report/github.rb +1 -0
- data/lib/puppet-lint/tasks/puppet-lint.rb +7 -26
- data/lib/puppet-lint/tasks/release_test.rb +4 -4
- data/lib/puppet-lint/version.rb +1 -1
- data/lib/puppet-lint.rb +5 -3
- data/rubocop_baseline.yml +3 -440
- data/spec/spec_helper.rb +3 -2
- data/spec/spec_helper_acceptance_local.rb +1 -1
- data/spec/unit/puppet-lint/bin_spec.rb +12 -2
- data/spec/unit/puppet-lint/configuration_spec.rb +14 -14
- data/spec/unit/puppet-lint/lexer/string_slurper_spec.rb +3 -5
- data/spec/unit/puppet-lint/lexer_spec.rb +10 -11
- data/spec/unit/puppet-lint/plugins/check_classes/parameter_order_spec.rb +2 -2
- data/spec/unit/puppet-lint/plugins/check_conditionals/case_without_default_spec.rb +5 -5
- data/spec/unit/puppet-lint/plugins/check_strings/double_quoted_strings_spec.rb +1 -1
- data/spec/unit/puppet-lint/plugins/check_strings/only_variable_string_spec.rb +1 -1
- data/spec/unit/puppet-lint/plugins/check_whitespace/140chars_spec.rb +0 -2
- data/spec/unit/puppet-lint/plugins/check_whitespace/80chars_spec.rb +1 -3
- data/spec/unit/puppet-lint/plugins/legacy_facts/legacy_facts_spec.rb +16 -0
- data/spec/unit/puppet-lint/plugins/top_scope_facts/top_scope_facts_spec.rb +1 -0
- metadata +5 -5
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
require 'spec_helper'
|
4
2
|
|
5
3
|
describe PuppetLint::Lexer do
|
@@ -13,7 +11,7 @@ describe PuppetLint::Lexer do
|
|
13
11
|
end
|
14
12
|
end
|
15
13
|
|
16
|
-
|
14
|
+
describe '#new_token' do
|
17
15
|
it 'calculates the line number for an empty string' do
|
18
16
|
token = lexer.new_token(:TEST, 'test')
|
19
17
|
expect(token.line).to eq(1)
|
@@ -55,19 +53,19 @@ describe PuppetLint::Lexer do
|
|
55
53
|
end
|
56
54
|
|
57
55
|
it 'calculates the column number for a multi line string' do
|
58
|
-
lexer.instance_variable_set(
|
59
|
-
lexer.instance_variable_set(
|
56
|
+
lexer.instance_variable_set(:@line_no, 4)
|
57
|
+
lexer.instance_variable_set(:@column, 5)
|
60
58
|
lexer.new_token(:SSTRING, "test\ntest")
|
61
59
|
token = lexer.new_token(:TEST, 'test')
|
62
60
|
expect(token.column).to eq(6)
|
63
61
|
end
|
64
62
|
end
|
65
63
|
|
66
|
-
|
67
|
-
subject(:tokens) { lexer.tokens }
|
68
|
-
|
64
|
+
describe '#process_string_segments' do
|
69
65
|
subject(:manifest) { lexer.tokens.map(&:to_manifest).join }
|
70
66
|
|
67
|
+
let(:tokens) { lexer.tokens }
|
68
|
+
|
71
69
|
before(:each) do
|
72
70
|
lexer.process_string_segments(segments)
|
73
71
|
end
|
@@ -1291,7 +1289,7 @@ END
|
|
1291
1289
|
it 'does not enclose variable with a chained function call' do
|
1292
1290
|
manifest = '"This is ${a.test}"'
|
1293
1291
|
tokens = lexer.tokenise(manifest)
|
1294
|
-
expect(tokens.map(&:to_manifest).join
|
1292
|
+
expect(tokens.map(&:to_manifest).join).to eq(manifest)
|
1295
1293
|
end
|
1296
1294
|
end
|
1297
1295
|
|
@@ -1382,6 +1380,7 @@ END
|
|
1382
1380
|
expect(token.type).to eq(:TYPE)
|
1383
1381
|
expect(token.value).to eq('Callable')
|
1384
1382
|
end
|
1383
|
+
|
1385
1384
|
it 'matches Sensitive' do
|
1386
1385
|
token = lexer.tokenise('Sensitive').first
|
1387
1386
|
expect(token.type).to eq(:TYPE)
|
@@ -1689,7 +1688,7 @@ END
|
|
1689
1688
|
END
|
1690
1689
|
|
1691
1690
|
tokens = lexer.tokenise(manifest)
|
1692
|
-
expect(tokens.map(&:to_manifest).join
|
1691
|
+
expect(tokens.map(&:to_manifest).join).to eq(manifest)
|
1693
1692
|
|
1694
1693
|
expect(tokens[0].type).to eq(:VARIABLE)
|
1695
1694
|
expect(tokens[0].value).to eq('str')
|
@@ -1756,7 +1755,7 @@ END
|
|
1756
1755
|
expect(tokens[7].raw).to eq('$myvar')
|
1757
1756
|
expect(tokens[7].to_manifest).to eq('$myvar')
|
1758
1757
|
|
1759
|
-
expect(tokens.map(&:to_manifest).join
|
1758
|
+
expect(tokens.map(&:to_manifest).join).to eq(manifest)
|
1760
1759
|
end
|
1761
1760
|
end
|
1762
1761
|
|
@@ -27,7 +27,7 @@ describe 'parameter_order' do
|
|
27
27
|
expect(problems).to have(1).problem
|
28
28
|
end
|
29
29
|
|
30
|
-
col = (type == 'class' ? 23 : 24)
|
30
|
+
col = ((type == 'class') ? 23 : 24)
|
31
31
|
it 'creates a warning' do
|
32
32
|
expect(problems).to contain_warning(msg).on_line(1).in_column(col)
|
33
33
|
end
|
@@ -58,7 +58,7 @@ describe 'parameter_order' do
|
|
58
58
|
expect(problems).to have(1).problem
|
59
59
|
end
|
60
60
|
|
61
|
-
col = (type == 'class' ? 35 : 36)
|
61
|
+
col = ((type == 'class') ? 35 : 36)
|
62
62
|
it 'creates a warning' do
|
63
63
|
expect(problems).to contain_warning(msg).on_line(1).in_column(col)
|
64
64
|
end
|
@@ -87,15 +87,15 @@ describe 'case_without_default' do
|
|
87
87
|
let(:code) do
|
88
88
|
<<-END
|
89
89
|
$mem = inline_template('<%
|
90
|
-
mem,unit = scope.lookupvar(
|
90
|
+
mem,unit = scope.lookupvar('::memorysize').split
|
91
91
|
mem = mem.to_f
|
92
92
|
# Normalize mem to bytes
|
93
93
|
case unit
|
94
94
|
when nil: mem *= (1<<0)
|
95
|
-
when
|
96
|
-
when
|
97
|
-
when
|
98
|
-
when
|
95
|
+
when 'kB': mem *= (1<<10)
|
96
|
+
when 'MB': mem *= (1<<20)
|
97
|
+
when 'GB': mem *= (1<<30)
|
98
|
+
when 'TB': mem *= (1<<40)
|
99
99
|
end
|
100
100
|
%><%= mem.to_i %>')
|
101
101
|
END
|
@@ -98,7 +98,7 @@ describe 'double_quoted_strings' do
|
|
98
98
|
<<-END
|
99
99
|
$string1 = "this string contains \n newline"
|
100
100
|
$string2 = "this string contains \t tab"
|
101
|
-
$string3 = "this string contains
|
101
|
+
$string3 = "this string contains ${escaped} var"
|
102
102
|
$string4 = "this string contains \\"escaped \\" double quotes"
|
103
103
|
$string5 = "this string contains \\'escaped \\' single quotes"
|
104
104
|
$string6 = "this string contains \r carriage return"
|
@@ -250,6 +250,7 @@ describe 'legacy_facts' do
|
|
250
250
|
it 'onlies detect a single problem' do
|
251
251
|
expect(problems).to have(1).problem
|
252
252
|
end
|
253
|
+
|
253
254
|
it 'uses the facts hash' do
|
254
255
|
expect(manifest).to eq("$facts['disks']['sda']['model']")
|
255
256
|
end
|
@@ -261,6 +262,7 @@ describe 'legacy_facts' do
|
|
261
262
|
it 'onlies detect a single problem' do
|
262
263
|
expect(problems).to have(1).problem
|
263
264
|
end
|
265
|
+
|
264
266
|
it 'uses the facts hash' do
|
265
267
|
expect(manifest).to eq("$facts['networking']['interfaces']['em2']['ip6']")
|
266
268
|
end
|
@@ -272,6 +274,7 @@ describe 'legacy_facts' do
|
|
272
274
|
it 'onlies detect a single problem' do
|
273
275
|
expect(problems).to have(1).problem
|
274
276
|
end
|
277
|
+
|
275
278
|
it 'uses the facts hash' do
|
276
279
|
expect(manifest).to eq("$facts['solaris_zones']['zones']['foobar']['uuid']")
|
277
280
|
end
|
@@ -283,6 +286,7 @@ describe 'legacy_facts' do
|
|
283
286
|
it 'onlies detect a single problem' do
|
284
287
|
expect(problems).to have(1).problem
|
285
288
|
end
|
289
|
+
|
286
290
|
it 'uses the facts hash' do
|
287
291
|
expect(manifest).to eq("$facts['processors']['models'][314]")
|
288
292
|
end
|
@@ -294,6 +298,7 @@ describe 'legacy_facts' do
|
|
294
298
|
it 'onlies detect a single problem' do
|
295
299
|
expect(problems).to have(1).problem
|
296
300
|
end
|
301
|
+
|
297
302
|
it 'uses the facts hash' do
|
298
303
|
expect(manifest).to eq("$facts['system_profiler']['l3_cache']")
|
299
304
|
end
|
@@ -305,6 +310,7 @@ describe 'legacy_facts' do
|
|
305
310
|
it 'onlies detect a single problem' do
|
306
311
|
expect(problems).to have(1).problem
|
307
312
|
end
|
313
|
+
|
308
314
|
it 'uses the facts hash' do
|
309
315
|
expect(manifest).to eq("$facts['ssh']['rsa']['key']")
|
310
316
|
end
|
@@ -333,6 +339,7 @@ describe 'legacy_facts' do
|
|
333
339
|
expect(manifest).to eq("\"$facts['os']['family']\"")
|
334
340
|
end
|
335
341
|
end
|
342
|
+
|
336
343
|
context 'fact variable using legacy variable in double quotes "$::gid"' do
|
337
344
|
let(:code) { '"$::gid"' }
|
338
345
|
|
@@ -344,6 +351,7 @@ describe 'legacy_facts' do
|
|
344
351
|
expect(manifest).to eq("\"$facts['identity']['group']\"")
|
345
352
|
end
|
346
353
|
end
|
354
|
+
|
347
355
|
context 'fact variable using legacy variable in double quotes "$::id"' do
|
348
356
|
let(:code) { '"$::id"' }
|
349
357
|
|
@@ -355,6 +363,7 @@ describe 'legacy_facts' do
|
|
355
363
|
expect(manifest).to eq("\"$facts['identity']['user']\"")
|
356
364
|
end
|
357
365
|
end
|
366
|
+
|
358
367
|
context 'fact variable using legacy variable in double quotes "$::lsbdistcodename"' do
|
359
368
|
let(:code) { '"$::lsbdistcodename"' }
|
360
369
|
|
@@ -366,6 +375,7 @@ describe 'legacy_facts' do
|
|
366
375
|
expect(manifest).to eq("\"$facts['os']['distro']['codename']\"")
|
367
376
|
end
|
368
377
|
end
|
378
|
+
|
369
379
|
context 'fact variable using legacy variable in double quotes "$::lsbdistdescription"' do
|
370
380
|
let(:code) { '"$::lsbdistdescription"' }
|
371
381
|
|
@@ -377,6 +387,7 @@ describe 'legacy_facts' do
|
|
377
387
|
expect(manifest).to eq("\"$facts['os']['distro']['description']\"")
|
378
388
|
end
|
379
389
|
end
|
390
|
+
|
380
391
|
context 'fact variable using legacy variable in double quotes "$::lsbdistid"' do
|
381
392
|
let(:code) { '"$::lsbdistid"' }
|
382
393
|
|
@@ -388,6 +399,7 @@ describe 'legacy_facts' do
|
|
388
399
|
expect(manifest).to eq("\"$facts['os']['distro']['id']\"")
|
389
400
|
end
|
390
401
|
end
|
402
|
+
|
391
403
|
context 'fact variable using legacy variable in double quotes "$::lsbdistrelease"' do
|
392
404
|
let(:code) { '"$::lsbdistrelease"' }
|
393
405
|
|
@@ -399,6 +411,7 @@ describe 'legacy_facts' do
|
|
399
411
|
expect(manifest).to eq("\"$facts['os']['distro']['release']['full']\"")
|
400
412
|
end
|
401
413
|
end
|
414
|
+
|
402
415
|
context 'fact variable using legacy variable in double quotes "$::lsbmajdistrelease"' do
|
403
416
|
let(:code) { '"$::lsbmajdistrelease"' }
|
404
417
|
|
@@ -410,6 +423,7 @@ describe 'legacy_facts' do
|
|
410
423
|
expect(manifest).to eq("\"$facts['os']['distro']['release']['major']\"")
|
411
424
|
end
|
412
425
|
end
|
426
|
+
|
413
427
|
context 'fact variable using legacy variable in double quotes "$::lsbminordistrelease"' do
|
414
428
|
let(:code) { '"$::lsbminordistrelease"' }
|
415
429
|
|
@@ -421,6 +435,7 @@ describe 'legacy_facts' do
|
|
421
435
|
expect(manifest).to eq("\"$facts['os']['distro']['release']['minor']\"")
|
422
436
|
end
|
423
437
|
end
|
438
|
+
|
424
439
|
context 'fact variable using legacy variable in double quotes "$::lsbrelease"' do
|
425
440
|
let(:code) { '"$::lsbrelease"' }
|
426
441
|
|
@@ -432,6 +447,7 @@ describe 'legacy_facts' do
|
|
432
447
|
expect(manifest).to eq("\"$facts['os']['distro']['release']['specification']\"")
|
433
448
|
end
|
434
449
|
end
|
450
|
+
|
435
451
|
context "fact variable using facts hash in double quotes \"$facts['lsbrelease']\"" do
|
436
452
|
let(:code) { "\"${facts['lsbrelease']}\"" }
|
437
453
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-lint
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0.rc.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Sharpe
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2023-04-
|
13
|
+
date: 2023-04-13 00:00:00.000000000 Z
|
14
14
|
dependencies: []
|
15
15
|
description: " Checks your Puppet manifests against the Puppetlabs style guide
|
16
16
|
and alerts you to any discrepancies.\n"
|
@@ -162,12 +162,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
162
162
|
requirements:
|
163
163
|
- - ">="
|
164
164
|
- !ruby/object:Gem::Version
|
165
|
-
version: '2.
|
165
|
+
version: '2.7'
|
166
166
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
167
167
|
requirements:
|
168
|
-
- - "
|
168
|
+
- - ">"
|
169
169
|
- !ruby/object:Gem::Version
|
170
|
-
version:
|
170
|
+
version: 1.3.1
|
171
171
|
requirements: []
|
172
172
|
rubygems_version: 3.1.6
|
173
173
|
signing_key:
|