puppet-lint-manifest_whitespace-check 0.0.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 +7 -0
- data/LICENSE +21 -0
- data/README.md +153 -0
- data/lib/puppet-lint/plugins/check_manifest_whitespace_arrow_spaces.rb +30 -0
- data/lib/puppet-lint/plugins/check_manifest_whitespace_class_name_single_space.rb +73 -0
- data/lib/puppet-lint/plugins/check_manifest_whitespace_class_opening_curly_brace.rb +40 -0
- data/lib/puppet-lint/plugins/check_manifest_whitespace_newline_beginning_of_file.rb +21 -0
- data/lib/puppet-lint/plugins/check_manifest_whitespace_newline_end_of_file.rb +46 -0
- data/lib/puppet-lint/plugins/tools.rb +9 -0
- data/spec/puppet-lint/plugins/manifest_whitespace_arrow_spaces_spec.rb +249 -0
- data/spec/puppet-lint/plugins/manifest_whitespace_class_header_spec.rb +559 -0
- data/spec/puppet-lint/plugins/manifest_whitespace_double_newline_end_of_file_spec.rb +136 -0
- data/spec/puppet-lint/plugins/manifest_whitespace_missing_newline_end_of_file_spec.rb +51 -0
- data/spec/puppet-lint/plugins/manifest_whitespace_newline_begin_of_file_spec.rb +136 -0
- data/spec/spec_helper.rb +6 -0
- metadata +168 -0
@@ -0,0 +1,136 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'manifest_whitespace_double_newline_end_of_file' do
|
6
|
+
context 'with good example' do
|
7
|
+
let(:code) do
|
8
|
+
<<~EOF
|
9
|
+
class example (
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
) {
|
14
|
+
|
15
|
+
|
16
|
+
}
|
17
|
+
EOF
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should not detect any problems' do
|
21
|
+
expect(problems).to have(0).problems
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
let(:single_newline_end_of_file_msg) { 'there should be a single newline at the end of a manifest' }
|
26
|
+
|
27
|
+
context 'with fix disabled' do
|
28
|
+
context 'with 1 empty line at the end of a manifest' do
|
29
|
+
let(:code) do
|
30
|
+
<<~EOF
|
31
|
+
class example {
|
32
|
+
}
|
33
|
+
|
34
|
+
EOF
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should detect a single problem' do
|
38
|
+
expect(problems).to have(1).problem
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should create a error' do
|
42
|
+
expect(problems).to contain_error(single_newline_end_of_file_msg).on_line(3).in_column(1)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context 'with 3 empty lines at the end of a manifest' do
|
47
|
+
let(:code) do
|
48
|
+
<<~EOF
|
49
|
+
class example {
|
50
|
+
}
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
EOF
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'should detect 3 problems' do
|
58
|
+
expect(problems).to have(3).problem
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'should create a error' do
|
62
|
+
expect(problems).to contain_error(single_newline_end_of_file_msg).on_line(3).in_column(1)
|
63
|
+
expect(problems).to contain_error(single_newline_end_of_file_msg).on_line(4).in_column(1)
|
64
|
+
expect(problems).to contain_error(single_newline_end_of_file_msg).on_line(5).in_column(1)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
context 'with fix enabled' do
|
70
|
+
before do
|
71
|
+
PuppetLint.configuration.fix = true
|
72
|
+
end
|
73
|
+
|
74
|
+
after do
|
75
|
+
PuppetLint.configuration.fix = false
|
76
|
+
end
|
77
|
+
|
78
|
+
context 'with 1 empty line at the end of a manifest' do
|
79
|
+
let(:code) do
|
80
|
+
<<~EOF
|
81
|
+
class example {
|
82
|
+
}
|
83
|
+
|
84
|
+
EOF
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'should detect a single problem' do
|
88
|
+
expect(problems).to have(1).problem
|
89
|
+
end
|
90
|
+
|
91
|
+
it 'should fix the manifest' do
|
92
|
+
expect(problems).to contain_fixed(single_newline_end_of_file_msg).on_line(3).in_column(1)
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'should add the final newline' do
|
96
|
+
expect(manifest).to eq(
|
97
|
+
<<~EOF
|
98
|
+
class example {
|
99
|
+
}
|
100
|
+
EOF
|
101
|
+
)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
context 'with 3 empty lines at the end of a manifest' do
|
106
|
+
let(:code) do
|
107
|
+
<<~EOF
|
108
|
+
class example {
|
109
|
+
}
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
EOF
|
114
|
+
end
|
115
|
+
|
116
|
+
it 'should detect 3 problems' do
|
117
|
+
expect(problems).to have(3).problem
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'should fix the manifest' do
|
121
|
+
expect(problems).to contain_fixed(single_newline_end_of_file_msg).on_line(3).in_column(1)
|
122
|
+
expect(problems).to contain_fixed(single_newline_end_of_file_msg).on_line(4).in_column(1)
|
123
|
+
expect(problems).to contain_fixed(single_newline_end_of_file_msg).on_line(5).in_column(1)
|
124
|
+
end
|
125
|
+
|
126
|
+
it 'should add the final newline' do
|
127
|
+
expect(manifest).to eq(
|
128
|
+
<<~EOF
|
129
|
+
class example {
|
130
|
+
}
|
131
|
+
EOF
|
132
|
+
)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'manifest_whitespace_missing_newline_end_of_file' do
|
6
|
+
let(:single_newline_end_of_file_msg) { 'there should be a single newline at the end of a manifest' }
|
7
|
+
|
8
|
+
context 'with fix disabled' do
|
9
|
+
context 'with no new line at the end of a manifest' do
|
10
|
+
let(:code) do
|
11
|
+
'class example { }'
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should detect a single problem' do
|
15
|
+
expect(problems).to have(1).problem
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should create a error' do
|
19
|
+
expect(problems).to contain_error(single_newline_end_of_file_msg).on_line(1).in_column(17)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
context 'with fix enabled' do
|
25
|
+
before do
|
26
|
+
PuppetLint.configuration.fix = true
|
27
|
+
end
|
28
|
+
|
29
|
+
after do
|
30
|
+
PuppetLint.configuration.fix = false
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'with no new line at the end of a manifest' do
|
34
|
+
let(:code) do
|
35
|
+
'class example { }'
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should detect a single problem' do
|
39
|
+
expect(problems).to have(1).problem
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should fix the manifest' do
|
43
|
+
expect(problems).to contain_fixed(single_newline_end_of_file_msg).on_line(1).in_column(17)
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'should add the final newline' do
|
47
|
+
expect(manifest).to eq("class example { }\n")
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,136 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'manifest_whitespace_newline_beginning_of_file' do
|
6
|
+
let(:single_beginning_of_file_msg) { 'there should not be a newline at the beginning of a manifest' }
|
7
|
+
|
8
|
+
context 'with good example' do
|
9
|
+
let(:code) do
|
10
|
+
<<~EOF
|
11
|
+
class example (
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
) {
|
16
|
+
|
17
|
+
|
18
|
+
}
|
19
|
+
EOF
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should not detect any problems' do
|
23
|
+
expect(problems).to have(0).problems
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'with fix disabled' do
|
28
|
+
context 'with 1 empty line at the beginning of a manifest' do
|
29
|
+
let(:code) do
|
30
|
+
<<~EOF
|
31
|
+
|
32
|
+
class example {
|
33
|
+
}
|
34
|
+
EOF
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should detect a single problem' do
|
38
|
+
expect(problems).to have(1).problem
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should create a error' do
|
42
|
+
expect(problems).to contain_error(single_beginning_of_file_msg).on_line(1).in_column(1)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
context 'with 3 empty lines at the beginning of a manifest' do
|
47
|
+
let(:code) do
|
48
|
+
<<~EOF
|
49
|
+
|
50
|
+
|
51
|
+
|
52
|
+
class example {
|
53
|
+
}
|
54
|
+
EOF
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'should detect 3 problems' do
|
58
|
+
expect(problems).to have(3).problem
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'should create a error' do
|
62
|
+
expect(problems).to contain_error(single_beginning_of_file_msg).on_line(1).in_column(1)
|
63
|
+
expect(problems).to contain_error(single_beginning_of_file_msg).on_line(2).in_column(1)
|
64
|
+
expect(problems).to contain_error(single_beginning_of_file_msg).on_line(3).in_column(1)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
context 'with fix enabled' do
|
70
|
+
before do
|
71
|
+
PuppetLint.configuration.fix = true
|
72
|
+
end
|
73
|
+
|
74
|
+
after do
|
75
|
+
PuppetLint.configuration.fix = false
|
76
|
+
end
|
77
|
+
|
78
|
+
context 'with 1 empty line at the beginning of a manifest' do
|
79
|
+
let(:code) do
|
80
|
+
<<~EOF
|
81
|
+
|
82
|
+
class example {
|
83
|
+
}
|
84
|
+
EOF
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'should detect a single problem' do
|
88
|
+
expect(problems).to have(1).problem
|
89
|
+
end
|
90
|
+
|
91
|
+
it 'should fix the manifest' do
|
92
|
+
expect(problems).to contain_fixed(single_beginning_of_file_msg).on_line(1).in_column(1)
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'should add the final newline' do
|
96
|
+
expect(manifest).to eq(
|
97
|
+
<<~EOF,
|
98
|
+
class example {
|
99
|
+
}
|
100
|
+
EOF
|
101
|
+
)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
context 'with 3 empty lines at the beginning of a manifest' do
|
106
|
+
let(:code) do
|
107
|
+
<<~EOF
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
class example {
|
112
|
+
}
|
113
|
+
EOF
|
114
|
+
end
|
115
|
+
|
116
|
+
it 'should detect 3 problem' do
|
117
|
+
expect(problems).to have(3).problem
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'should fix the manifest' do
|
121
|
+
expect(problems).to contain_fixed(single_beginning_of_file_msg).on_line(1).in_column(1)
|
122
|
+
expect(problems).to contain_fixed(single_beginning_of_file_msg).on_line(2).in_column(1)
|
123
|
+
expect(problems).to contain_fixed(single_beginning_of_file_msg).on_line(3).in_column(1)
|
124
|
+
end
|
125
|
+
|
126
|
+
it 'should add the final newline' do
|
127
|
+
expect(manifest).to eq(
|
128
|
+
<<~EOF,
|
129
|
+
class example {
|
130
|
+
}
|
131
|
+
EOF
|
132
|
+
)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,168 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: puppet-lint-manifest_whitespace-check
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jo Vandeginste
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-06-19 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: puppet-lint
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.0'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '3.0'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.0'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3.0'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rspec
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '3.0'
|
40
|
+
type: :development
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '3.0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rspec-its
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.0'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '1.0'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rspec-collection_matchers
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '1.0'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '1.0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: mime-types
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: coveralls
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: rake
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
description: " A new check for puppet-lint that validates generic whitespace issues
|
118
|
+
in manifests.\n"
|
119
|
+
email: jo.vandeginste@kuleuven.be
|
120
|
+
executables: []
|
121
|
+
extensions: []
|
122
|
+
extra_rdoc_files: []
|
123
|
+
files:
|
124
|
+
- LICENSE
|
125
|
+
- README.md
|
126
|
+
- lib/puppet-lint/plugins/check_manifest_whitespace_arrow_spaces.rb
|
127
|
+
- lib/puppet-lint/plugins/check_manifest_whitespace_class_name_single_space.rb
|
128
|
+
- lib/puppet-lint/plugins/check_manifest_whitespace_class_opening_curly_brace.rb
|
129
|
+
- lib/puppet-lint/plugins/check_manifest_whitespace_newline_beginning_of_file.rb
|
130
|
+
- lib/puppet-lint/plugins/check_manifest_whitespace_newline_end_of_file.rb
|
131
|
+
- lib/puppet-lint/plugins/tools.rb
|
132
|
+
- spec/puppet-lint/plugins/manifest_whitespace_arrow_spaces_spec.rb
|
133
|
+
- spec/puppet-lint/plugins/manifest_whitespace_class_header_spec.rb
|
134
|
+
- spec/puppet-lint/plugins/manifest_whitespace_double_newline_end_of_file_spec.rb
|
135
|
+
- spec/puppet-lint/plugins/manifest_whitespace_missing_newline_end_of_file_spec.rb
|
136
|
+
- spec/puppet-lint/plugins/manifest_whitespace_newline_begin_of_file_spec.rb
|
137
|
+
- spec/spec_helper.rb
|
138
|
+
homepage: https://github.com/kuleuven/puppet-lint-manifest_whitespace-check
|
139
|
+
licenses:
|
140
|
+
- MIT
|
141
|
+
metadata: {}
|
142
|
+
post_install_message:
|
143
|
+
rdoc_options: []
|
144
|
+
require_paths:
|
145
|
+
- lib
|
146
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - ">="
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '2.0'
|
151
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: '0'
|
156
|
+
requirements: []
|
157
|
+
rubyforge_project:
|
158
|
+
rubygems_version: 2.6.14
|
159
|
+
signing_key:
|
160
|
+
specification_version: 4
|
161
|
+
summary: A puppet-lint check to validate whitespace in manifests
|
162
|
+
test_files:
|
163
|
+
- spec/puppet-lint/plugins/manifest_whitespace_class_header_spec.rb
|
164
|
+
- spec/puppet-lint/plugins/manifest_whitespace_double_newline_end_of_file_spec.rb
|
165
|
+
- spec/puppet-lint/plugins/manifest_whitespace_missing_newline_end_of_file_spec.rb
|
166
|
+
- spec/puppet-lint/plugins/manifest_whitespace_arrow_spaces_spec.rb
|
167
|
+
- spec/puppet-lint/plugins/manifest_whitespace_newline_begin_of_file_spec.rb
|
168
|
+
- spec/spec_helper.rb
|