puppet-syntax 2.6.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5015bb344c1e58bce99c9eb8c93c6f011c85275c9e0748f34199441c9f965ba0
4
- data.tar.gz: 1316c65fe87f5adc8bdd2faa7febd073298d2a8401203efbdca2eb3054c477f1
3
+ metadata.gz: 5efa461330416f6cffe0518ff6af0c111b5c7731d0f61ad10fc52947181a5d7d
4
+ data.tar.gz: 5050d5e596af634f1280d41155e5397e9dd8e21e21cae6f9c5ed464b5ab76026
5
5
  SHA512:
6
- metadata.gz: 3b528fdd903665e128d3171b7e40459d37e21907049185b1db37408c5e12548dcd1695391f5343279ddee1aa0e79a2721228faa410edd2b94e8c282b6fb92c04
7
- data.tar.gz: 06f8d2a184c2fd74349fcb937609a12526558a1cdba1071d6dbf4693b71b428ef913d814862a1c7311f54913e2a240159daebaf1b3b7437d40080e1552f3c3b3
6
+ metadata.gz: ba169dc6d36d2d4fc68a661b8fbd4e1f090ecb94d978c77c692003487b82b86646e3965a42afe5e50b654aaae904ec89c4fbfb5576f4d3014adabeedaf90b7cb
7
+ data.tar.gz: b1be324753efdaa626f242d8d53ffad7e81804bb02334a8200d610a880c038f79bda94af125b7188c6d52ff4f00589cd93637614c3d5a37549bd18d3ffb15db9
data/.gitignore CHANGED
@@ -16,4 +16,5 @@ test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
18
  vendor/
19
- .idea/
19
+ .idea/
20
+ .vendor/
@@ -3,7 +3,7 @@ dist: bionic
3
3
  language: ruby
4
4
  # Workaround https://github.com/bundler/bundler/issues/3558
5
5
  before_install: gem install bundler
6
- install: bundle install --jobs 4 --retry 2 --without development
6
+ install: bundle install --jobs 4 --retry 2 --without development release
7
7
  script: bundle exec rake
8
8
  rvm:
9
9
  - 2.4.4
@@ -2,6 +2,22 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [v3.0.0](https://github.com/voxpupuli/puppet-syntax/tree/v3.0.0) (2020-05-09)
6
+
7
+ [Full Changelog](https://github.com/voxpupuli/puppet-syntax/compare/v2.6.1...v3.0.0)
8
+
9
+ **Breaking changes:**
10
+
11
+ - Drop legacy code to support Puppet \< 5 and Ruby \< 2.4 [\#120](https://github.com/voxpupuli/puppet-syntax/pull/120) ([ekohl](https://github.com/ekohl))
12
+
13
+ **Implemented enhancements:**
14
+
15
+ - Migrate Changelog to GCG [\#93](https://github.com/voxpupuli/puppet-syntax/issues/93)
16
+
17
+ **Merged pull requests:**
18
+
19
+ - cleanup README.md / fix markdown linter warnings [\#119](https://github.com/voxpupuli/puppet-syntax/pull/119) ([bastelfreak](https://github.com/bastelfreak))
20
+
5
21
  ## [v2.6.1](https://github.com/voxpupuli/puppet-syntax/tree/v2.6.1) (2020-01-11)
6
22
 
7
23
  [Full Changelog](https://github.com/voxpupuli/puppet-syntax/compare/v2.6.0...v2.6.1)
@@ -26,7 +42,6 @@ All notable changes to this project will be documented in this file.
26
42
 
27
43
  **Merged pull requests:**
28
44
 
29
- - Test on ruby 2.6 [\#111](https://github.com/voxpupuli/puppet-syntax/pull/111) ([alexjfisher](https://github.com/alexjfisher))
30
45
  - Adding KMS tags to allowed EYAML methods [\#105](https://github.com/voxpupuli/puppet-syntax/pull/105) ([craigwatson](https://github.com/craigwatson))
31
46
 
32
47
  ## [v2.5.0](https://github.com/voxpupuli/puppet-syntax/tree/v2.5.0) (2019-07-07)
data/Gemfile CHANGED
@@ -21,13 +21,10 @@ gemspec
21
21
  # But only if the environment variable is set
22
22
  gem 'puppet', *location_for(ENV['PUPPET_VERSION'] || '>= 5') if ENV['PUPPET_VERSION']
23
23
 
24
- # older version required for ruby 1.9 compat, as it is pulled in as dependency of puppet, this has to be carried by the module
25
- gem 'json_pure', '<= 2.0.1'
26
-
27
24
  group :test do
28
25
  gem 'rspec'
29
26
  end
30
27
 
31
28
  group :release do
32
- gem 'github_changelog_generator', :require => false, :git => 'https://github.com/github-changelog-generator/github-changelog-generator' if RUBY_VERSION >= '2.2.2'
29
+ gem 'github_changelog_generator', :require => false, :git => 'https://github.com/github-changelog-generator/github-changelog-generator'
33
30
  end
data/README.md CHANGED
@@ -4,36 +4,40 @@
4
4
 
5
5
  # Puppet::Syntax
6
6
 
7
- Puppet::Syntax checks for correct syntax in Puppet manifests, templates, and Hiera YAML.
7
+ Puppet::Syntax checks for correct syntax in Puppet manifests, templates, and
8
+ Hiera YAML.
8
9
 
9
10
  ## Version support
10
11
 
11
12
  Puppet::Syntax is supported with:
12
13
 
13
- - Puppet >= 2.7 that provides the `validate` face.
14
- - Ruby >= 1.8 with `erb` from Ruby stdlib.
14
+ - Puppet >= 5.0 that provides the `validate` face.
15
+ - Ruby >= 2.4
15
16
 
16
17
  For the specific versions that we test against, see the [TravisCI config](.travis.yml).
17
18
 
18
- If you're using `puppetlabs_spec_helper/rake_tasks` and getting unexpected non-zero exit codes, upgrade to [puppetlabs_spec_helper][psh] version 0.8.0 or greater. Versions of `puppetlabs_spec_helper` prior to 0.8.0 conflicted with Puppet::Syntax.
19
-
20
- [psh]: https://github.com/puppetlabs/puppetlabs_spec_helper
21
-
22
19
  ## Installation
23
20
 
24
- To install Puppet::Syntax, either add it to your module's Gemfile or install the gem manually.
21
+ To install Puppet::Syntax, either add it to your module's Gemfile or install
22
+ the gem manually.
25
23
 
26
24
  * To install with the Gemfile, add:
27
25
 
28
- gem 'puppet-syntax'
26
+ ```ruby
27
+ gem 'puppet-syntax'
28
+ ```
29
29
 
30
30
  And then execute:
31
31
 
32
- $ bundle install
32
+ ```sh
33
+ bundle install
34
+ ```
33
35
 
34
36
  * To install the gem yourself, run:
35
37
 
36
- $ gem install puppet-syntax
38
+ ```sh
39
+ gem install puppet-syntax
40
+ ```
37
41
 
38
42
  ## Configuration
39
43
 
@@ -41,75 +45,85 @@ To configure Puppet::Syntax, add any of the following settings to your `Rakefile
41
45
 
42
46
  * To exclude certain paths from the syntax checks, set:
43
47
 
44
- PuppetSyntax.exclude_paths = ["vendor/**/*"]
45
-
46
- * To use the Puppet 4 ("future") parser in Puppet 3.2 through 3.8, set:
47
-
48
- PuppetSyntax.future_parser = true
48
+ ```ruby
49
+ PuppetSyntax.exclude_paths = ["vendor/**/*"]
50
+ ```
49
51
 
50
52
  * To configure specific paths for the Hiera syntax check, specify `hieradata_paths`. This is useful if you use Hiera data inside your module.
51
53
 
52
- PuppetSyntax.hieradata_paths = ["**/data/**/*.yaml", "hieradata/**/*.yaml", "hiera*.yaml"]
54
+ ```ruby
55
+ PuppetSyntax.hieradata_paths = ["**/data/**/*.yaml", "hieradata/**/*.yaml", "hiera*.yaml"]
56
+ ```
53
57
 
54
58
  * To configure specific paths for the Puppet syntax checks or for the templates checks, specify `manifests_paths` or `templates_paths` respectively. This is useful if you want to check specific paths only.
55
59
 
56
- PuppetSyntax.manifests_paths = ["**/environments/future/*.pp"]
57
- PuppetSyntax.templates_paths = ["**/modules/**/templates/*.erb"]
58
-
59
- * To validate the syntax of code written for application orchestration, enable `app_management`:
60
-
61
- PuppetSyntax.app_management = true
62
-
63
- The `app_management` setting is supported with Puppet 4.3 or greater and is off by default. In Puppet 5, app_management is always enabled.
60
+ ```ruby
61
+ PuppetSyntax.manifests_paths = ["**/environments/future/*.pp"]
62
+ PuppetSyntax.templates_paths = ["**/modules/**/templates/*.erb"]
63
+ ```
64
64
 
65
65
  * To ignore deprecation warnings, disable `fail_on_deprecation_notices`. By default, `puppet-syntax` fails if it encounters Puppet deprecation notices. If you are working with a legacy code base and want to ignore such non-fatal warnings, you might want to override the default behavior.
66
66
 
67
- PuppetSyntax.fail_on_deprecation_notices = false
67
+ ```ruby
68
+ PuppetSyntax.fail_on_deprecation_notices = false
69
+ ```
68
70
 
69
71
  * To enable a syntax check on Hiera keys, set:
70
72
 
71
- PuppetSyntax.check_hiera_keys = true
73
+ ```ruby
74
+ PuppetSyntax.check_hiera_keys = true
75
+ ```
72
76
 
73
- This reports common mistakes in key names in Hiera files, such as:
77
+ This reports common mistakes in key names in Hiera files, such as:
74
78
 
75
- - Leading `::` in keys, such as: `::notsotypical::warning2: true`.
76
- - Single colon scope separators, such as: `:picky::warning5: true`.
77
- - Invalid camel casing, such as: `noCamelCase::warning3: true`.
78
- - Use of hyphens, such as: `no-hyphens::warning4: true`.
79
+ * Leading `::` in keys, such as: `::notsotypical::warning2: true`.
80
+ * Single colon scope separators, such as: `:picky::warning5: true`.
81
+ * Invalid camel casing, such as: `noCamelCase::warning3: true`.
82
+ * Use of hyphens, such as: `no-hyphens::warning4: true`.
79
83
 
80
84
  ## Usage
81
85
 
82
86
  * To enable Puppet::Syntax, include the following in your module's `Rakefile`:
83
87
 
84
- require 'puppet-syntax/tasks/puppet-syntax'
88
+ ```ruby
89
+ require 'puppet-syntax/tasks/puppet-syntax'
90
+ ```
85
91
 
86
- For Continuous Integration, use Puppet::Syntax in conjunction with `puppet-lint` and spec tests. Add the following to your module's `Rakefile`:
92
+ For Continuous Integration, use Puppet::Syntax in conjunction with `puppet-lint`
93
+ and spec tests. Add the following to your module's `Rakefile`:
87
94
 
88
- task :test => [
89
- :syntax,
90
- :lint,
91
- :spec,
92
- ]
95
+ ```ruby
96
+ task :test => [
97
+ :syntax,
98
+ :lint,
99
+ :spec,
100
+ ]
101
+ ```
93
102
 
94
103
  * To test all manifests and templates, relative to the location of the `Rakefile`, run:
95
104
 
96
- $ bundle exec rake syntax
97
- ---> syntax:manifests
98
- ---> syntax:templates
99
- ---> syntax:hiera:yaml
105
+ ```
106
+ $ bundle exec rake syntax
107
+ ---> syntax:manifests
108
+ ---> syntax:templates
109
+ ---> syntax:hiera:yaml
110
+ ```
100
111
 
101
112
  * To return a non-zero exit code and an error message on any failures, run:
102
113
 
103
- $ bundle exec rake syntax
104
- ---> syntax:manifests
105
- rake aborted!
106
- Could not parse for environment production: Syntax error at end of file at demo.pp:2
107
- Tasks: TOP => syntax => syntax:manifests
108
- (See full trace by running task with --trace)
114
+ ```
115
+ $ bundle exec rake syntax
116
+ ---> syntax:manifests
117
+ rake aborted!
118
+ Could not parse for environment production: Syntax error at end of file at demo.pp:2
119
+ Tasks: TOP => syntax => syntax:manifests
120
+ (See full trace by running task with --trace)
121
+ ```
109
122
 
110
123
  ## Checks
111
124
 
112
- Puppet::Syntax makes the following checks in the directories and subdirectories of the module, relative to the location of the `Rakefile`.
125
+ Puppet::Syntax makes the following checks in the directories and subdirectories
126
+ of the module, relative to the location of the `Rakefile`.
113
127
 
114
128
  ### Hiera
115
129
 
@@ -135,7 +149,8 @@ Checks `.erb` files in the module for syntax errors.
135
149
 
136
150
  Checks `.epp` files in the module for syntax errors.
137
151
 
138
- EPP checks are supported in Puppet 4 or greater, or in Puppet 3 with the future parser enabled.
152
+ EPP checks are supported in Puppet 4 or greater, or in Puppet 3 with the future
153
+ parser enabled.
139
154
 
140
155
  ## Contributing
141
156
 
@@ -6,7 +6,6 @@ require "puppet/version"
6
6
 
7
7
  module PuppetSyntax
8
8
  @exclude_paths = []
9
- @future_parser = false
10
9
  @hieradata_paths = [
11
10
  "**/data/**/*.*{yaml,yml}",
12
11
  "hieradata/**/*.*{yaml,yml}",
@@ -20,23 +19,15 @@ module PuppetSyntax
20
19
  '**/templates/**/*.epp'
21
20
  ]
22
21
  @fail_on_deprecation_notices = true
23
- @app_management = Puppet.version.to_i >= 5 ? true : false
24
22
  @check_hiera_keys = false
25
23
 
26
24
  class << self
27
25
  attr_accessor :exclude_paths,
28
- :future_parser,
29
26
  :hieradata_paths,
30
27
  :manifests_paths,
31
28
  :templates_paths,
32
29
  :fail_on_deprecation_notices,
33
30
  :epp_only,
34
31
  :check_hiera_keys
35
- attr_reader :app_management
36
-
37
- def app_management=(app_management)
38
- raise 'app_management cannot be disabled on Puppet 5 or higher' if Puppet.version.to_i >= 5 && !app_management
39
- @app_management = app_management
40
- end
41
32
  end
42
33
  end
@@ -8,9 +8,7 @@ module PuppetSyntax
8
8
 
9
9
  output = []
10
10
 
11
- if Puppet::Test::TestHelper.respond_to?(:initialize) # 3.1+
12
- Puppet::Test::TestHelper.initialize
13
- end
11
+ Puppet::Test::TestHelper.initialize
14
12
  Puppet::Test::TestHelper.before_all_tests
15
13
  called_before_all_tests = true
16
14
 
@@ -62,8 +60,6 @@ module PuppetSyntax
62
60
 
63
61
  private
64
62
  def validate_manifest(file)
65
- Puppet[:parser] = 'future' if PuppetSyntax.future_parser and Puppet.version.to_i < 4
66
- Puppet[:app_management] = true if PuppetSyntax.app_management && (Puppet::Util::Package.versioncmp(Puppet.version, '4.3.0') >= 0 && Puppet.version.to_i < 5)
67
63
  Puppet[:tasks] = true if Puppet::Util::Package.versioncmp(Puppet.version, '5.4.0') >= 0 and file.match(/.*plans\/.*\.pp$/)
68
64
  Puppet::Face[:parser, :current].validate(file)
69
65
  end
@@ -27,42 +27,14 @@ module PuppetSyntax
27
27
  def initialize(*args)
28
28
  desc 'Syntax check Puppet manifests and templates'
29
29
  task :syntax => [
30
- 'syntax:check_puppetlabs_spec_helper',
31
30
  'syntax:manifests',
32
31
  'syntax:templates',
33
32
  'syntax:hiera',
34
33
  ]
35
34
 
36
35
  namespace :syntax do
37
- task :check_puppetlabs_spec_helper do
38
- psh_present = task(:syntax).actions.any? { |a|
39
- a.inspect.match(/puppetlabs_spec_helper\/rake_tasks\.rb:\d+/)
40
- }
41
-
42
- if psh_present
43
- $stderr.puts <<-EOS
44
- [WARNING] A conflicting :syntax rake task has been defined by
45
- puppetlabs_spec_helper/rake_tasks. You should either disable this or upgrade
46
- to puppetlabs_spec_helper >= 0.8.0 which now uses puppet-syntax.
47
- EOS
48
- end
49
- end
50
-
51
36
  desc 'Syntax check Puppet manifests'
52
37
  task :manifests do |t|
53
- if Puppet.version.to_i >= 4 and PuppetSyntax.future_parser
54
- $stderr.puts <<-EOS
55
- [INFO] Puppet 4 has been detected and `future_parser` has been set to
56
- 'true'. The `future_parser setting will be ignored.
57
- EOS
58
- end
59
- if Puppet::Util::Package.versioncmp(Puppet.version, '4.3.0') < 0 and PuppetSyntax.app_management
60
- $stderr.puts <<-EOS
61
- [WARNING] Puppet `app_management` has been detected but the Puppet
62
- version is less then 4.3. The `app_management` setting will be ignored.
63
- EOS
64
- end
65
-
66
38
  $stderr.puts "---> #{t.name}"
67
39
 
68
40
  c = PuppetSyntax::Manifests.new
@@ -27,10 +27,6 @@ module PuppetSyntax
27
27
  end
28
28
 
29
29
  def validate_epp(filename)
30
- if Puppet.version.to_f < 3.7
31
- raise "Cannot validate EPP without Puppet 4 or future parser (3.7+)"
32
- end
33
-
34
30
  require 'puppet/pops'
35
31
  errors = []
36
32
  begin
@@ -1,3 +1,3 @@
1
1
  module PuppetSyntax
2
- VERSION = '2.6.1'
2
+ VERSION = '3.0.0'
3
3
  end
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
+ spec.required_ruby_version = ">= 2.4"
22
+
21
23
  spec.add_dependency "rake"
22
24
  spec.add_dependency "puppet", ">= 5"
23
25
 
@@ -28,15 +28,9 @@ describe PuppetSyntax::Manifests do
28
28
  files = fixture_manifests('fail_error.pp')
29
29
  output, has_errors = subject.check(files)
30
30
 
31
- if Puppet.version.to_i >= 4
32
- expect(output.size).to eq(3)
33
- expect(output[2]).to match(/2 errors. Giving up/)
34
- expect(has_errors).to eq(true)
35
- else
36
- expect(output.size).to eq(1)
37
- expect(output[0]).to match(/Syntax error at .*:3$/)
38
- expect(has_errors).to eq(true)
39
- end
31
+ expect(output.size).to eq(3)
32
+ expect(output[2]).to match(/2 errors. Giving up/)
33
+ expect(has_errors).to eq(true)
40
34
  end
41
35
 
42
36
  it 'should return a warning from an invalid file' do
@@ -72,181 +66,22 @@ describe PuppetSyntax::Manifests do
72
66
  output, has_errors = subject.check(files)
73
67
 
74
68
  expect(has_errors).to eq(true)
75
- if Puppet.version.to_i >= 4
76
- expect(output.size).to eq(5)
77
- expect(output[0]).to match(/This Name has no effect. A Host Class Definition can not end with a value-producing expression without other effect \(file: \S*\/fail_error.pp, line: 2, column: 32\)$/)
78
- expect(output[1]).to match(/This Name has no effect. A value was produced and then forgotten \(one or more preceding expressions may have the wrong form\) \(file: \S*\/fail_error.pp, line: 2, column: 3\)$/)
79
- expect(output[2]).to match('2 errors. Giving up')
80
- expect(output[3]).to match(/Unrecogni(s|z)ed escape sequence '\\\['/)
81
- expect(output[4]).to match(/Unrecogni(s|z)ed escape sequence '\\\]'/)
82
- else
83
- expect(output.size).to eq(3)
84
- expect(output[0]).to match(/Syntax error at '\}' .*:3$/)
85
- expect(output[1]).to match(/Unrecogni(s|z)ed escape sequence '\\\['/)
86
- expect(output[2]).to match(/Unrecogni(s|z)ed escape sequence '\\\]'/)
87
- end
69
+ expect(output.size).to eq(5)
70
+ expect(output[0]).to match(/This Name has no effect. A Host Class Definition can not end with a value-producing expression without other effect \(file: \S*\/fail_error.pp, line: 2, column: 32\)$/)
71
+ expect(output[1]).to match(/This Name has no effect. A value was produced and then forgotten \(one or more preceding expressions may have the wrong form\) \(file: \S*\/fail_error.pp, line: 2, column: 3\)$/)
72
+ expect(output[2]).to match('2 errors. Giving up')
73
+ expect(output[3]).to match(/Unrecogni(s|z)ed escape sequence '\\\['/)
74
+ expect(output[4]).to match(/Unrecogni(s|z)ed escape sequence '\\\]'/)
88
75
  end
89
76
 
90
77
  describe 'deprecation notices' do
91
- case Puppet.version.to_f
92
- when 4.0..4.99
93
- context 'on puppet 4.0.0 and above' do
94
- it 'should instead be failures' do
95
- files = fixture_manifests('deprecation_notice.pp')
96
- output, has_errors = subject.check(files)
97
-
98
- expect(has_errors).to eq(true)
99
- expect(output.size).to eq(1)
100
- expect(output[0]).to match (/Node inheritance is not supported in Puppet >= 4.0.0/)
101
- end
102
- end
103
- when 3.7, 3.8
104
- context 'on puppet 3.7 and 3.8' do
105
- it 'should return deprecation notices as warnings' do
106
- files = fixture_manifests('deprecation_notice.pp')
107
- output, has_errors = subject.check(files)
108
-
109
- expect(has_errors).to eq(false)
110
- expect(output.size).to eq(2)
111
- expect(output[0]).to match(/The use of 'import' is deprecated/)
112
- expect(output[1]).to match(/Deprecation notice:/)
113
- end
114
- end
115
- when 3.5, 3.6
116
- context 'on puppet 3.5 and 3.6' do
117
- it 'should return deprecation notices as warnings' do
118
- files = fixture_manifests('deprecation_notice.pp')
119
- output, has_errors = subject.check(files)
120
-
121
- expect(has_errors).to eq(false)
122
- expect(output.size).to eq(1)
123
- expect(output[0]).to match(/The use of 'import' is deprecated/)
124
- end
125
- end
126
- when 3.0..3.4
127
- context 'on puppet 3.0 to 3.4' do
128
- it 'should not print deprecation notices' do
129
- files = fixture_manifests('deprecation_notice.pp')
130
- output, has_errors = subject.check(files)
131
-
132
- expect(output).to eq([])
133
- expect(has_errors).to eq(false)
134
- end
135
- end
136
- end
137
- end
138
-
139
- describe 'app_management' do
140
- after do
141
- PuppetSyntax.app_management = false if Puppet.version.to_i < 5
142
- end
143
-
144
- context 'app_management = false (default)', :if => (Puppet.version.to_i < 5) do
145
- it 'should fail to parse an application manifest' do
146
-
147
- files = fixture_manifests(['test_app.pp'])
148
- output,has_errors = subject.check(files)
149
-
150
- expect(has_errors).to eq(true)
151
- expect(output).to include(/error/)
152
- end
153
- end
154
- context 'app_management = true' do
155
- before(:each) {
156
- PuppetSyntax.app_management = true
157
- }
158
- if Puppet::Util::Package.versioncmp(Puppet.version, '4.3.0') >= 0
159
- it 'should successfully parse an application manifest on Puppet >= 4.3.0' do
160
- expect(PuppetSyntax.app_management).to eq(true)
161
-
162
- files = fixture_manifests(['test_app.pp'])
163
- output,has_errors = subject.check(files)
164
-
165
- expect(output.size).to eq(0)
166
- expect(has_errors).to eq(false)
167
- end
168
- else
169
- it 'should fail to parse an application manifest on Puppet < 4.3.0' do
170
- expect(PuppetSyntax.app_management).to eq(true)
171
-
172
- files = fixture_manifests(['test_app.pp'])
173
- output,has_errors = subject.check(files)
174
-
175
- expect(output).to include(/error/)
176
- expect(has_errors).to eq(true)
177
- end
178
- end
179
- end
180
- end
181
-
182
-
183
- describe 'future_parser' do
184
- context 'future_parser = false (default)' do
185
- if Puppet::Util::Package.versioncmp(Puppet.version, '4.0') < 0
186
- it 'should fail without setting future option to true on future manifest on Puppet < 4.0.0' do
187
- expect(PuppetSyntax.future_parser).to eq(false)
188
-
189
- files = fixture_manifests(['future_syntax.pp'])
190
- output, has_errors = subject.check(files)
191
-
192
- expect(output.size).to eq(1)
193
- expect(output[0]).to match(/Syntax error at '='; expected '\}' .*:2$/)
194
- expect(has_errors).to eq(true)
195
- end
196
- else
197
- it 'should succeed on Puppet >= 4.0.0' do
198
- expect(PuppetSyntax.future_parser).to eq(false)
78
+ it 'should instead be failures' do
79
+ files = fixture_manifests('deprecation_notice.pp')
80
+ output, has_errors = subject.check(files)
199
81
 
200
- files = fixture_manifests(['future_syntax.pp'])
201
- output, has_errors = subject.check(files)
202
-
203
- expect(output.size).to eq(0)
204
- expect(has_errors).to eq(false)
205
- end
206
- end
207
- end
208
-
209
- context 'future_parser = true' do
210
- before(:each) {
211
- PuppetSyntax.future_parser = true
212
- }
213
-
214
- if Puppet::Util::Package.versioncmp(Puppet.version, '3.2') >= 0 and Puppet.version.to_i < 4
215
- context 'Puppet >= 3.2 < 4' do
216
- it 'should pass with future option set to true on future manifest' do
217
- files = fixture_manifests(['future_syntax.pp'])
218
- output, has_errors = subject.check(files)
219
-
220
- expect(output).to eq([])
221
- expect(has_errors).to eq(false)
222
- end
223
- end
224
- context 'Puppet >= 3.7 < 4' do
225
- # Certain elements of the future parser weren't added until 3.7
226
- if Puppet::Util::Package.versioncmp(Puppet.version, '3.7') >= 0
227
- it 'should fail on what were deprecation notices in the non-future parser' do
228
- files = fixture_manifests('deprecation_notice.pp')
229
- output, has_errors = subject.check(files)
230
-
231
- expect(output.size).to eq(1)
232
- expect(output[0]).to match(/Node inheritance is not supported/)
233
- expect(has_errors).to eq(true)
234
- end
235
- end
236
- end
237
- elsif Puppet::Util::Package.versioncmp(Puppet.version, '3.2') < 0
238
- context 'Puppet < 3.2' do
239
- it 'should return an error that the parser option is not supported' do
240
- files = fixture_manifests(['future_syntax.pp'])
241
- output, has_errors = subject.check(files)
242
-
243
- expect(output.size).to eq(1)
244
- expect(output[0]).to match("Attempt to assign a value to unknown configuration parameter :parser")
245
- expect(has_errors).to eq(true)
246
- end
247
- end
248
- end
82
+ expect(has_errors).to eq(true)
83
+ expect(output.size).to eq(1)
84
+ expect(output[0]).to match (/Node inheritance is not supported in Puppet >= 4.0.0/)
249
85
  end
250
86
  end
251
-
252
87
  end
@@ -74,71 +74,47 @@ describe PuppetSyntax::Templates do
74
74
  expect(res).to match([])
75
75
  end
76
76
 
77
- if Puppet.version.to_f < 3.7
78
- context 'on Puppet < 3.7' do
79
- it 'should throw an exception when parsing EPP files' do
80
- file = fixture_templates('pass.epp')
81
- expect{ subject.check(file) }.to raise_error(/Cannot validate EPP without Puppet 4/)
82
- end
83
-
84
- context "when the 'epp_only' options is set" do
85
- before(:each) {
86
- PuppetSyntax.epp_only = true
87
- }
88
-
89
- it 'should throw an exception for any file' do
90
- file = fixture_templates('pass.erb')
91
- expect{ subject.check(file) }.to raise_error(/Cannot validate EPP without Puppet 4/)
92
- end
93
- end
94
- end
95
- end
96
-
97
- if Puppet.version.to_f >= 3.7
98
- context 'on Puppet >= 3.7' do
99
- it 'should return nothing from a valid file' do
100
- files = fixture_templates('pass.epp')
101
- res = subject.check(files)
77
+ it 'should return nothing from a valid file' do
78
+ files = fixture_templates('pass.epp')
79
+ res = subject.check(files)
102
80
 
103
- expect(res).to match([])
104
- end
81
+ expect(res).to match([])
82
+ end
105
83
 
106
- it 'should catch SyntaxError' do
107
- files = fixture_templates('fail_error.epp')
108
- res = subject.check(files)
84
+ it 'should catch SyntaxError' do
85
+ files = fixture_templates('fail_error.epp')
86
+ res = subject.check(files)
109
87
 
110
- expect(res.size).to eq(1)
111
- expect(res[0]).to match(/This Type-Name has no effect/)
112
- end
88
+ expect(res.size).to eq(1)
89
+ expect(res[0]).to match(/This Type-Name has no effect/)
90
+ end
113
91
 
114
- it 'should read more than one valid file' do
115
- files = fixture_templates(['pass.epp', 'pass_also.epp'])
116
- res = subject.check(files)
92
+ it 'should read more than one valid file' do
93
+ files = fixture_templates(['pass.epp', 'pass_also.epp'])
94
+ res = subject.check(files)
117
95
 
118
- expect(res).to match([])
119
- end
96
+ expect(res).to match([])
97
+ end
120
98
 
121
- it 'should continue after finding an error in the first file' do
122
- files = fixture_templates(['fail_error.epp', 'fail_error_also.epp'])
123
- res = subject.check(files)
99
+ it 'should continue after finding an error in the first file' do
100
+ files = fixture_templates(['fail_error.epp', 'fail_error_also.epp'])
101
+ res = subject.check(files)
124
102
 
125
- expect(res.size).to eq(2)
126
- expect(res[0]).to match(/This Type-Name has no effect/)
127
- expect(res[1]).to match(/Syntax error at '}' \(file: \S*\/fail_error_also.epp, line: 2, column: 4\)/)
128
- end
103
+ expect(res.size).to eq(2)
104
+ expect(res[0]).to match(/This Type-Name has no effect/)
105
+ expect(res[1]).to match(/Syntax error at '}' \(file: \S*\/fail_error_also.epp, line: 2, column: 4\)/)
106
+ end
129
107
 
130
- context "when the 'epp_only' options is set" do
131
- before(:each) {
132
- PuppetSyntax.epp_only = true
133
- }
108
+ context "when the 'epp_only' options is set" do
109
+ before(:each) {
110
+ PuppetSyntax.epp_only = true
111
+ }
134
112
 
135
- it 'should process an ERB as EPP and find an error' do
136
- files = fixture_templates('pass.erb')
137
- res = subject.check(files)
113
+ it 'should process an ERB as EPP and find an error' do
114
+ files = fixture_templates('pass.erb')
115
+ res = subject.check(files)
138
116
 
139
- expect(res.size).to eq(1)
140
- end
141
- end
117
+ expect(res.size).to eq(1)
142
118
  end
143
119
  end
144
120
  end
@@ -3,7 +3,6 @@ require 'spec_helper'
3
3
  describe PuppetSyntax do
4
4
  after do
5
5
  PuppetSyntax.exclude_paths = []
6
- PuppetSyntax.app_management = false if Puppet.version.to_i < 5
7
6
  end
8
7
 
9
8
  it 'should default exclude_paths to include the pkg directory' do
@@ -20,20 +19,6 @@ describe PuppetSyntax do
20
19
  expect(PuppetSyntax.exclude_paths).to eq(["foo"])
21
20
  end
22
21
 
23
- it 'should support future parser setting' do
24
- PuppetSyntax.future_parser = true
25
- expect(PuppetSyntax.future_parser).to eq(true)
26
- end
27
-
28
- it 'should support app_management setting setting' do
29
- PuppetSyntax.app_management = true
30
- expect(PuppetSyntax.app_management).to eq(true)
31
- end
32
-
33
- it 'should raise error when app_management is disabled on 5.x', :if => (Puppet.version.to_i >= 5) do
34
- expect { PuppetSyntax.app_management = false }.to raise_error(/app_management cannot be disabled on Puppet 5 or higher/)
35
- end
36
-
37
22
  it 'should support a fail_on_deprecation_notices setting' do
38
23
  PuppetSyntax.fail_on_deprecation_notices = false
39
24
  expect(PuppetSyntax.fail_on_deprecation_notices).to eq(false)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-syntax
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.1
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vox Pupuli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-11 00:00:00.000000000 Z
11
+ date: 2020-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -95,7 +95,6 @@ files:
95
95
  - LICENSE.txt
96
96
  - README.md
97
97
  - Rakefile
98
- - jenkins.sh
99
98
  - lib/puppet-syntax.rb
100
99
  - lib/puppet-syntax/hiera.rb
101
100
  - lib/puppet-syntax/manifests.rb
@@ -149,7 +148,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
149
148
  requirements:
150
149
  - - ">="
151
150
  - !ruby/object:Gem::Version
152
- version: '0'
151
+ version: '2.4'
153
152
  required_rubygems_version: !ruby/object:Gem::Requirement
154
153
  requirements:
155
154
  - - ">="
data/jenkins.sh DELETED
@@ -1,10 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -eu
3
-
4
- # Avoid Psych bug in Ruby 1.9.3p0 on Ubuntu 12.04
5
- export RBENV_VERSION="1.9.3"
6
-
7
- rm -f Gemfile.lock
8
- bundle install --path "${HOME}/bundles/${JOB_NAME}" --shebang ruby
9
- bundle exec rake
10
- bundle exec rake publish_gem