puppet-syntax 2.6.1 → 3.0.0

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 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