puppet-lint-template_file_extension-check 0.1.2 → 0.1.3
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 +5 -5
- data/README.md +2 -1
- data/lib/puppet-lint/plugins/template_file_extension.rb +25 -25
- data/spec/puppet-lint/plugins/template_file_extension_spec.rb +199 -0
- data/spec/spec_helper.rb +5 -0
- metadata +35 -21
- data/spec/puppet-lint/plugins/puppet-lint-template_file_extension_spec.rb +0 -142
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2ee1d0f1c7cb2c22ac7a06de70b94dd4421017e10fc85eed0c5bfbf2f34d7892
|
4
|
+
data.tar.gz: da5d75f475d1c4c7d068dd1f20fd4912511b39dd2bc11a8f4c5e4a4101c5615f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e1043a656a1513c52527f5adb856dc276396164c054ab5549c538f2d3331c1e0abdd910f4ac4286cf819705ae997cb0a708ff236e4e81f3c4b5ab3f1181fca2b
|
7
|
+
data.tar.gz: a163f9066a8e1e63c386596bd7fb63b8e7c3fee0b6442c918ed9844b50781e430968982c1b3d7da4331e2b142d8d08322422259d8e0d51d5af440cd5d5322325
|
data/README.md
CHANGED
@@ -3,8 +3,9 @@
|
|
3
3
|
Extends puppet-lint to ensure all file names used in template and epp
|
4
4
|
functions end with the string '.erb' or '.epp' respectively
|
5
5
|
|
6
|
-
[](https://github.com/deanwilson/puppet-lint-template_file_extension-check/actions)
|
7
7
|
|
8
|
+
[](https://github.com/deanwilson/puppet-lint-template_file_extension-check/actions)
|
8
9
|
|
9
10
|
This plugin is an extension of our local style guide and may not suit
|
10
11
|
your own code base. This sample would trigger the `puppet-lint` warning:
|
@@ -1,42 +1,42 @@
|
|
1
1
|
PuppetLint.new_check(:template_file_extension) do
|
2
2
|
def check
|
3
|
-
|
4
3
|
template_extensions = {
|
5
|
-
epp:
|
4
|
+
epp: '.epp',
|
6
5
|
template: '.erb',
|
7
6
|
}
|
8
7
|
|
8
|
+
# the types a filename may be in a `template()` call
|
9
|
+
name_types = [:DQPOST, :SSTRING]
|
10
|
+
|
9
11
|
resource_indexes.each do |resource|
|
10
|
-
|
11
|
-
resource[:param_tokens].select { |param_token|
|
12
|
-
param_token.value == 'content'
|
13
|
-
}.each do |content_token|
|
12
|
+
next unless resource[:type].value == 'file'
|
14
13
|
|
15
|
-
|
14
|
+
param_tokens = resource[:param_tokens].select { |pt| pt.value == 'content' }
|
16
15
|
|
17
|
-
|
18
|
-
|
19
|
-
extension = template_extensions[template_function.to_sym]
|
16
|
+
param_tokens.each do |content_token|
|
17
|
+
value_token = content_token.next_code_token.next_code_token
|
20
18
|
|
21
|
-
|
22
|
-
|
19
|
+
if (matched = value_token.value.match(/^(template|epp)$/))
|
20
|
+
template_function = matched[1]
|
21
|
+
extension = template_extensions[template_function.to_sym]
|
23
22
|
|
24
|
-
|
25
|
-
|
26
|
-
current_token = current_token.next_code_token
|
23
|
+
current_token = value_token.next_token
|
24
|
+
current_token = current_token.next_token while current_token.type == :WHITESPACE
|
27
25
|
|
28
|
-
|
26
|
+
# iterate over all the code tokens until we hit the closing ')'
|
27
|
+
until current_token.type == :RPAREN || current_token.type == :LBRACE
|
28
|
+
current_token = current_token.next_code_token
|
29
29
|
|
30
|
-
|
30
|
+
if (name_types.include? current_token.type) && !current_token.value.end_with?(extension)
|
31
|
+
warning = "all #{template_function} file names should end with #{extension}"
|
31
32
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
end
|
33
|
+
notify :warning, {
|
34
|
+
message: warning,
|
35
|
+
line: value_token.line,
|
36
|
+
column: value_token.column,
|
37
|
+
param_token: content_token,
|
38
|
+
value_token: value_token,
|
39
|
+
}
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
@@ -0,0 +1,199 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'template_file_extension' do
|
4
|
+
##########################
|
5
|
+
# Valid examples
|
6
|
+
##########################
|
7
|
+
context 'when the manifest has no file resources' do
|
8
|
+
let(:code) do
|
9
|
+
<<-TEST_CLASS
|
10
|
+
class no_file_resource {
|
11
|
+
host { 'syslog':
|
12
|
+
ip => '10.10.10.10',
|
13
|
+
}
|
14
|
+
}
|
15
|
+
TEST_CLASS
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'does not detect any problems' do
|
19
|
+
expect(problems).to have(0).problems
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context 'when a non-template function is called' do
|
24
|
+
let(:code) do
|
25
|
+
<<-TEST_CLASS
|
26
|
+
class random_function {
|
27
|
+
file { '/tmp/templated':
|
28
|
+
content => random_name('mymodule/single_file.erb'),
|
29
|
+
}
|
30
|
+
}
|
31
|
+
TEST_CLASS
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'does not detect any problems' do
|
35
|
+
expect(problems).to have(0).problems
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'when the template function is called with one valid file name' do
|
40
|
+
let(:code) do
|
41
|
+
<<-TEST_CLASS
|
42
|
+
class valid_template_filename {
|
43
|
+
file { '/tmp/templated':
|
44
|
+
content => template('mymodule/single_file.erb'),
|
45
|
+
}
|
46
|
+
}
|
47
|
+
TEST_CLASS
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'does not detect any problems' do
|
51
|
+
expect(problems).to have(0).problems
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
context 'when the epp function is called with one valid file name' do
|
56
|
+
let(:code) do
|
57
|
+
<<-TEST_CLASS
|
58
|
+
class valid_epp_template_filename {
|
59
|
+
file { '/tmp/templated':
|
60
|
+
content => epp('mymodule/single_file.epp'),
|
61
|
+
}
|
62
|
+
}
|
63
|
+
TEST_CLASS
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'does not detect any problems' do
|
67
|
+
expect(problems).to have(0).problems
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
context 'when the epp function is called with one valid file name and parameters' do
|
72
|
+
let(:code) do
|
73
|
+
<<-TEST_CLASS
|
74
|
+
class valid_epp_template_filename {
|
75
|
+
file { '/tmp/templated':
|
76
|
+
content => epp('mymodule/single_file.epp', {'key' => 'val'}),
|
77
|
+
}
|
78
|
+
}
|
79
|
+
TEST_CLASS
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'does not detect any problems' do
|
83
|
+
expect(problems).to have(0).problems
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
context 'when a space it present between the template function and opening paren' do
|
88
|
+
let(:code) do
|
89
|
+
<<-TEST_CLASS
|
90
|
+
class space_between_template_and_opening_paren {
|
91
|
+
file { '/tmp/templated':
|
92
|
+
content => template ('mymodule/a_file.erb'),
|
93
|
+
}
|
94
|
+
}
|
95
|
+
TEST_CLASS
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'does not detect any problems' do
|
99
|
+
expect(problems).to have(0).problems
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
##########################
|
104
|
+
# Invalid examples
|
105
|
+
##########################
|
106
|
+
|
107
|
+
context 'when the template function is called with a single invalid file name' do
|
108
|
+
let(:template_msg) { 'all template file names should end with .erb' }
|
109
|
+
let(:code) do
|
110
|
+
<<-TEST_CLASS
|
111
|
+
class multi_templated_file {
|
112
|
+
file { '/tmp/templated':
|
113
|
+
content => template('mymodule/first_file.erb', 'mymodule/second_file.conf'),
|
114
|
+
}
|
115
|
+
}
|
116
|
+
TEST_CLASS
|
117
|
+
end
|
118
|
+
|
119
|
+
it 'detects a single problem' do
|
120
|
+
expect(problems).to have(1).problem
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'creates a warning' do
|
124
|
+
expect(problems).to contain_warning(template_msg).on_line(3).in_column(24)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
context 'when the epp function is called with a single invalid file name' do
|
129
|
+
let(:epp_msg) { 'all epp file names should end with .epp' }
|
130
|
+
|
131
|
+
let(:code) do
|
132
|
+
<<-TEST_CLASS
|
133
|
+
class epp_multi_templated_file {
|
134
|
+
file { '/tmp/templated':
|
135
|
+
content => epp('mymodule/first_file', {'key' => 'val'}),
|
136
|
+
}
|
137
|
+
}
|
138
|
+
TEST_CLASS
|
139
|
+
end
|
140
|
+
|
141
|
+
it 'detects a single problem' do
|
142
|
+
expect(problems).to have(1).problem
|
143
|
+
end
|
144
|
+
|
145
|
+
it 'creates a warning' do
|
146
|
+
expect(problems).to contain_warning(epp_msg).on_line(3).in_column(24)
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
context 'when there is a space between the template function and opening paren, and no extension is provided' do
|
151
|
+
let(:template_msg) { 'all template file names should end with .erb' }
|
152
|
+
|
153
|
+
let(:code) do
|
154
|
+
<<-TEST_CLASS
|
155
|
+
class space_between_template_and_opening_paren {
|
156
|
+
file { '/tmp/templated':
|
157
|
+
content => template ('mymodule/a_file'),
|
158
|
+
}
|
159
|
+
}
|
160
|
+
TEST_CLASS
|
161
|
+
end
|
162
|
+
|
163
|
+
it 'detects a single problem' do
|
164
|
+
expect(problems).to have(1).problem
|
165
|
+
end
|
166
|
+
|
167
|
+
it 'creates a warning' do
|
168
|
+
expect(problems).to contain_warning(template_msg).on_line(3).in_column(24)
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
##
|
173
|
+
# Reported bugs
|
174
|
+
##
|
175
|
+
|
176
|
+
## https://github.com/deanwilson/puppet-lint-template_file_extension-check/issues/48
|
177
|
+
context 'when the paramater type is DQPOST not SSTRING and no extension is provided (issue #48)' do
|
178
|
+
let(:template_msg) { 'all template file names should end with .erb' }
|
179
|
+
|
180
|
+
let(:code) do
|
181
|
+
<<-TEST_CLASS
|
182
|
+
class space_between_template_and_opening_paren {
|
183
|
+
file { "/etc/${package_name}.conf":
|
184
|
+
ensure => file,
|
185
|
+
content => template("allknowingdns/${package_name}.conf"),
|
186
|
+
}
|
187
|
+
}
|
188
|
+
TEST_CLASS
|
189
|
+
end
|
190
|
+
|
191
|
+
it 'detects a single problem' do
|
192
|
+
expect(problems).to have(1).problem
|
193
|
+
end
|
194
|
+
|
195
|
+
it 'creates a warning' do
|
196
|
+
expect(problems).to contain_warning(template_msg).on_line(4).in_column(24)
|
197
|
+
end
|
198
|
+
end
|
199
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-lint-template_file_extension-check
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dean Wilson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: puppet-lint
|
@@ -30,22 +30,36 @@ dependencies:
|
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '3.0'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rake
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 13.0.0
|
40
|
+
type: :development
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 13.0.0
|
33
47
|
- !ruby/object:Gem::Dependency
|
34
48
|
name: rspec
|
35
49
|
requirement: !ruby/object:Gem::Requirement
|
36
50
|
requirements:
|
37
51
|
- - "~>"
|
38
52
|
- !ruby/object:Gem::Version
|
39
|
-
version: 3.
|
53
|
+
version: 3.10.0
|
40
54
|
type: :development
|
41
55
|
prerelease: false
|
42
56
|
version_requirements: !ruby/object:Gem::Requirement
|
43
57
|
requirements:
|
44
58
|
- - "~>"
|
45
59
|
- !ruby/object:Gem::Version
|
46
|
-
version: 3.
|
60
|
+
version: 3.10.0
|
47
61
|
- !ruby/object:Gem::Dependency
|
48
|
-
name: rspec-
|
62
|
+
name: rspec-collection_matchers
|
49
63
|
requirement: !ruby/object:Gem::Requirement
|
50
64
|
requirements:
|
51
65
|
- - "~>"
|
@@ -59,7 +73,7 @@ dependencies:
|
|
59
73
|
- !ruby/object:Gem::Version
|
60
74
|
version: '1.0'
|
61
75
|
- !ruby/object:Gem::Dependency
|
62
|
-
name: rspec-
|
76
|
+
name: rspec-its
|
63
77
|
requirement: !ruby/object:Gem::Requirement
|
64
78
|
requirements:
|
65
79
|
- - "~>"
|
@@ -73,61 +87,61 @@ dependencies:
|
|
73
87
|
- !ruby/object:Gem::Version
|
74
88
|
version: '1.0'
|
75
89
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
90
|
+
name: rspec-json_expectations
|
77
91
|
requirement: !ruby/object:Gem::Requirement
|
78
92
|
requirements:
|
79
93
|
- - "~>"
|
80
94
|
- !ruby/object:Gem::Version
|
81
|
-
version:
|
95
|
+
version: '2.2'
|
82
96
|
type: :development
|
83
97
|
prerelease: false
|
84
98
|
version_requirements: !ruby/object:Gem::Requirement
|
85
99
|
requirements:
|
86
100
|
- - "~>"
|
87
101
|
- !ruby/object:Gem::Version
|
88
|
-
version:
|
102
|
+
version: '2.2'
|
89
103
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
104
|
+
name: rubocop
|
91
105
|
requirement: !ruby/object:Gem::Requirement
|
92
106
|
requirements:
|
93
107
|
- - "~>"
|
94
108
|
- !ruby/object:Gem::Version
|
95
|
-
version:
|
109
|
+
version: 0.93.0
|
96
110
|
type: :development
|
97
111
|
prerelease: false
|
98
112
|
version_requirements: !ruby/object:Gem::Requirement
|
99
113
|
requirements:
|
100
114
|
- - "~>"
|
101
115
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
116
|
+
version: 0.93.0
|
103
117
|
- !ruby/object:Gem::Dependency
|
104
|
-
name: rspec
|
118
|
+
name: rubocop-rspec
|
105
119
|
requirement: !ruby/object:Gem::Requirement
|
106
120
|
requirements:
|
107
121
|
- - "~>"
|
108
122
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
123
|
+
version: 1.44.1
|
110
124
|
type: :development
|
111
125
|
prerelease: false
|
112
126
|
version_requirements: !ruby/object:Gem::Requirement
|
113
127
|
requirements:
|
114
128
|
- - "~>"
|
115
129
|
- !ruby/object:Gem::Version
|
116
|
-
version:
|
130
|
+
version: 1.44.1
|
117
131
|
- !ruby/object:Gem::Dependency
|
118
132
|
name: simplecov
|
119
133
|
requirement: !ruby/object:Gem::Requirement
|
120
134
|
requirements:
|
121
135
|
- - "~>"
|
122
136
|
- !ruby/object:Gem::Version
|
123
|
-
version: 0.
|
137
|
+
version: 0.20.0
|
124
138
|
type: :development
|
125
139
|
prerelease: false
|
126
140
|
version_requirements: !ruby/object:Gem::Requirement
|
127
141
|
requirements:
|
128
142
|
- - "~>"
|
129
143
|
- !ruby/object:Gem::Version
|
130
|
-
version: 0.
|
144
|
+
version: 0.20.0
|
131
145
|
description: |2
|
132
146
|
Extends puppet-lint to ensure all filenames used in template and epp functions
|
133
147
|
end with the string '.erb' or '.epp' respectively
|
@@ -139,7 +153,7 @@ files:
|
|
139
153
|
- LICENSE
|
140
154
|
- README.md
|
141
155
|
- lib/puppet-lint/plugins/template_file_extension.rb
|
142
|
-
- spec/puppet-lint/plugins/
|
156
|
+
- spec/puppet-lint/plugins/template_file_extension_spec.rb
|
143
157
|
- spec/spec_helper.rb
|
144
158
|
homepage: https://github.com/deanwilson/puppet-lint-template_file_extension-check
|
145
159
|
licenses:
|
@@ -153,7 +167,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
153
167
|
requirements:
|
154
168
|
- - ">="
|
155
169
|
- !ruby/object:Gem::Version
|
156
|
-
version:
|
170
|
+
version: 2.5.0
|
157
171
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
158
172
|
requirements:
|
159
173
|
- - ">="
|
@@ -161,10 +175,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
161
175
|
version: '0'
|
162
176
|
requirements: []
|
163
177
|
rubyforge_project:
|
164
|
-
rubygems_version: 2.6
|
178
|
+
rubygems_version: 2.7.6
|
165
179
|
signing_key:
|
166
180
|
specification_version: 4
|
167
181
|
summary: puppet-lint template_file_extension check
|
168
182
|
test_files:
|
183
|
+
- spec/puppet-lint/plugins/template_file_extension_spec.rb
|
169
184
|
- spec/spec_helper.rb
|
170
|
-
- spec/puppet-lint/plugins/puppet-lint-template_file_extension_spec.rb
|
@@ -1,142 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'template_file_extension' do
|
4
|
-
|
5
|
-
##########################
|
6
|
-
# Valid examples
|
7
|
-
##########################
|
8
|
-
|
9
|
-
context 'template function with one valid file name' do
|
10
|
-
let(:code) do
|
11
|
-
<<-EOS
|
12
|
-
class valid_template_filename {
|
13
|
-
file { '/tmp/templated':
|
14
|
-
content => template('mymodule/single_file.erb'),
|
15
|
-
}
|
16
|
-
}
|
17
|
-
EOS
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'should not detect any problems' do
|
21
|
-
expect(problems).to have(0).problems
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
context 'epp function with one valid file name' do
|
26
|
-
let(:code) do
|
27
|
-
<<-EOS
|
28
|
-
class valid_epp_template_filename {
|
29
|
-
file { '/tmp/templated':
|
30
|
-
content => epp('mymodule/single_file.epp'),
|
31
|
-
}
|
32
|
-
}
|
33
|
-
EOS
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'should not detect any problems' do
|
37
|
-
expect(problems).to have(0).problems
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
context 'epp function with one valid file name and parameters' do
|
42
|
-
let(:code) do
|
43
|
-
<<-EOS
|
44
|
-
class valid_epp_template_filename {
|
45
|
-
file { '/tmp/templated':
|
46
|
-
content => epp('mymodule/single_file.epp', {'key' => 'val'}),
|
47
|
-
}
|
48
|
-
}
|
49
|
-
EOS
|
50
|
-
end
|
51
|
-
|
52
|
-
it 'should not detect any problems' do
|
53
|
-
expect(problems).to have(0).problems
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
context 'space between template and opening paren' do
|
58
|
-
let(:code) do
|
59
|
-
<<-EOS
|
60
|
-
class space_between_template_and_opening_paren {
|
61
|
-
file { '/tmp/templated':
|
62
|
-
content => template ('mymodule/a_file.erb'),
|
63
|
-
}
|
64
|
-
}
|
65
|
-
EOS
|
66
|
-
end
|
67
|
-
|
68
|
-
it 'should not detect any problems' do
|
69
|
-
expect(problems).to have(0).problems
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
##########################
|
74
|
-
# Invalid examples
|
75
|
-
##########################
|
76
|
-
|
77
|
-
let(:template_msg) { 'all template file names should end with .erb' }
|
78
|
-
|
79
|
-
context 'template function with single invalid file name' do
|
80
|
-
let(:code) do
|
81
|
-
<<-EOS
|
82
|
-
class multi_templated_file {
|
83
|
-
file { '/tmp/templated':
|
84
|
-
content => template('mymodule/first_file.erb', 'mymodule/second_file.conf'),
|
85
|
-
}
|
86
|
-
}
|
87
|
-
EOS
|
88
|
-
end
|
89
|
-
|
90
|
-
it 'should detect a single problem' do
|
91
|
-
expect(problems).to have(1).problem
|
92
|
-
end
|
93
|
-
|
94
|
-
it 'should create a warning' do
|
95
|
-
expect(problems).to contain_warning(template_msg).on_line(3).in_column(24)
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
let(:epp_msg) { 'all epp file names should end with .epp' }
|
100
|
-
|
101
|
-
context 'epp function with single invalid file name' do
|
102
|
-
let(:code) do
|
103
|
-
<<-EOS
|
104
|
-
class epp_multi_templated_file {
|
105
|
-
file { '/tmp/templated':
|
106
|
-
content => epp('mymodule/first_file', {'key' => 'val'}),
|
107
|
-
}
|
108
|
-
}
|
109
|
-
EOS
|
110
|
-
end
|
111
|
-
|
112
|
-
it 'should detect a single problem' do
|
113
|
-
expect(problems).to have(1).problem
|
114
|
-
end
|
115
|
-
|
116
|
-
it 'should create a warning' do
|
117
|
-
expect(problems).to contain_warning(epp_msg).on_line(3).in_column(24)
|
118
|
-
end
|
119
|
-
end
|
120
|
-
|
121
|
-
context 'space between template and opening paren and no extension' do
|
122
|
-
let(:code) do
|
123
|
-
<<-EOS
|
124
|
-
class space_between_template_and_opening_paren {
|
125
|
-
file { '/tmp/templated':
|
126
|
-
content => template ('mymodule/a_file'),
|
127
|
-
}
|
128
|
-
}
|
129
|
-
EOS
|
130
|
-
end
|
131
|
-
|
132
|
-
it 'should detect a single problem' do
|
133
|
-
expect(problems).to have(1).problem
|
134
|
-
end
|
135
|
-
|
136
|
-
it 'should create a warning' do
|
137
|
-
expect(problems).to contain_warning(template_msg).on_line(3).in_column(26)
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
|
-
|
142
|
-
end
|