pdqtest 1.4.1 → 1.9.9beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +9 -3
  3. data/doc/acceptance_tests.md +100 -22
  4. data/doc/caching.md +5 -1
  5. data/doc/development.md +16 -5
  6. data/doc/emoji.md +20 -9
  7. data/doc/enabling_testing.md +15 -3
  8. data/doc/examples.md +25 -6
  9. data/doc/hiera.md +30 -11
  10. data/doc/installation.md +59 -8
  11. data/doc/pdk.md +334 -0
  12. data/doc/puppet_facts.md +45 -3
  13. data/doc/puppet_module_dependencies.md +34 -16
  14. data/doc/running_tests.md +35 -15
  15. data/doc/test_generation.md +11 -19
  16. data/doc/tips_and_tricks.md +17 -8
  17. data/doc/troubleshooting.md +19 -8
  18. data/doc/upgrading.md +125 -6
  19. data/doc/windows.md +51 -0
  20. data/docker_images/centos/Dockerfile +4 -3
  21. data/docker_images/centos/Makefile +1 -1
  22. data/docker_images/ubuntu/Dockerfile +3 -3
  23. data/docker_images/windows/Dockerfile +26 -0
  24. data/docker_images/windows/make.ps1 +2 -0
  25. data/exe/pdqtest +73 -28
  26. data/lib/pdqtest/core.rb +1 -1
  27. data/lib/pdqtest/docker.rb +143 -51
  28. data/lib/pdqtest/emoji.rb +33 -7
  29. data/lib/pdqtest/fastcheck.rb +19 -0
  30. data/lib/pdqtest/instance.rb +16 -15
  31. data/lib/pdqtest/logger.rb +35 -0
  32. data/lib/pdqtest/pdk.rb +98 -0
  33. data/lib/pdqtest/pdqtest1x.rb +115 -0
  34. data/lib/pdqtest/puppet.rb +277 -134
  35. data/lib/pdqtest/skeleton.rb +119 -39
  36. data/lib/pdqtest/upgrade.rb +42 -42
  37. data/lib/pdqtest/util.rb +82 -2
  38. data/lib/pdqtest/version.rb +1 -2
  39. data/pdqtest.gemspec +8 -13
  40. data/res/{skeleton → acceptance}/init.bats +0 -0
  41. data/res/{skeleton → acceptance}/init__before.bats +0 -0
  42. data/res/{skeleton → acceptance}/init__setup.sh +0 -0
  43. data/res/skeleton/.puppet-lint.rc +5 -0
  44. data/res/skeleton/{dot_travis.yml → .travis.yml} +0 -0
  45. data/res/skeleton/Makefile +20 -5
  46. data/res/skeleton/make.ps1 +66 -0
  47. data/res/skeleton/spec/fixtures/hiera.yaml +13 -0
  48. data/res/skeleton/spec/fixtures/hieradata/test.yaml +11 -0
  49. data/res/templates/examples_init.pp.erb +1 -1
  50. metadata +47 -115
  51. data/lib/pdqtest/lint.rb +0 -31
  52. data/lib/pdqtest/rspec.rb +0 -69
  53. data/lib/pdqtest/syntax.rb +0 -20
  54. data/res/skeleton/Gemfile +0 -7
  55. data/res/skeleton/Rakefile +0 -3
  56. data/res/skeleton/dot_gitignore +0 -9
  57. data/res/skeleton/dot_rspec +0 -2
  58. data/res/skeleton/hiera.yaml +0 -7
  59. data/res/skeleton/spec_helper.rb +0 -4
  60. data/res/skeleton/test.yaml +0 -3
data/doc/upgrading.md CHANGED
@@ -5,18 +5,23 @@ To upgrade the current version of PDQTest on your system:
5
5
  gem update pdqtest
6
6
  ```
7
7
 
8
- Each project you want to use the newer version of PDQTest on should then have it's `Gemfile` updated to reference the latest version. Don't worry, this is easy:
8
+ Each project you want to use the newer version of PDQTest on should then have
9
+ it's `Gemfile.project` updated to reference the latest version. Don't worry,
10
+ this is easy:
9
11
 
10
12
  ```shell
11
13
  cd /my/cool/project/to/upgrade
12
14
  pdqtest upgrade
13
- bundle install
15
+ pdk bundle install
14
16
  ```
15
17
 
16
- Note that since we're using bundler, you only have to upgrade the modules you want to upgrade. Existing modules can continue to run any previous version via `make` just fine.
18
+ Note that since we're using bundler, you only have to upgrade the puppet modules
19
+ you want to upgrade. Existing modules can continue to run any previous version
20
+ via `make` just fine. You are not forced to update all your modules in one go.
17
21
 
18
22
  ## Docker image
19
- The docker image will be updated as and when required. Run:
23
+ Updated docker images are periodically released and are required to run newer
24
+ PDQTest versions. When you get a message about missing docker containers run:
20
25
 
21
26
  ```shell
22
27
  pdqtest setup
@@ -24,5 +29,119 @@ pdqtest setup
24
29
 
25
30
  To obtain the latest version.
26
31
 
27
- ## `/cut`
28
- Previous versions of PDQTest mounted code at `/cut` (Code Under Test), the new mountpoint is the more obvious `/testcase`
32
+ # PDQTest 1x -> 2x
33
+ PDQTest is now compatible with (and requires) PDK! By and large we let PDK do
34
+ its own thing and just wrap the output with emojis and run our own acceptance
35
+ tests.
36
+
37
+ See [PDK Integration](pdk.md) for details of how this works.
38
+
39
+ Since this is a major upgrade, you must re-init your project. Make sure all your
40
+ code is checked in to git,
41
+ [install PDK](https://puppet.com/docs/pdk/1.x/pdk_install.html) then run:
42
+
43
+ ```shell
44
+ gem install pdqtest
45
+ cd /my/project
46
+ pdqtest init
47
+ pdk bundle install
48
+ bundle exec pdqtest setup
49
+ ```
50
+
51
+ ## Custom facts
52
+ If you were previous using custom facts in the `spec/merge_facts` directory,
53
+ these need to be converted to yaml and moved to `spec/default_facts.yml`. This
54
+ will give you compatibility between PDK unit tests and PDQTest acceptance tests.
55
+
56
+ ## RSpec tests (inc hiera data)
57
+ PDQTest doesn't deal with RSPec tests any more, we let PDK do all the work by
58
+ shelling out to call `pdk test unit`:
59
+
60
+ * If you were using PDQTest for your hiera data during the RSpec lifecycle,
61
+ update your tests to do what PDK tells you to do
62
+ * Existing `spec/fixtures/hiera.yaml` and `spec/fixtures/test.yaml` files will
63
+ continue to work during acceptance tests and the `hiera.yaml` file has been
64
+ upgraded for hiera 5 compatibility. You will have to reconfigure your
65
+ hierarchy if you were using more files then just `test.yaml`
66
+
67
+ Old PDQTest generated RSpec tests will fail due to missing dependency on
68
+ [puppet_factset](https://rubygems.org/gems/puppet_factset) gem which is now no
69
+ longer required (by anything 😁).
70
+
71
+ You can enable this gem in PDK by adding it to `Gemfile.project` and running
72
+ `pdk bundle install` or you can just rewrite your tests using the new PDK format
73
+ which looks like this:
74
+
75
+ ```ruby
76
+ require 'spec_helper'
77
+
78
+ describe 'CHANGETHISTOYOURCLASSNAME' do
79
+ on_supported_os.each do |os, os_facts|
80
+ context "on #{os}" do
81
+ let(:facts) { os_facts }
82
+
83
+ it { is_expected.to compile }
84
+ end
85
+ end
86
+ end
87
+ ```
88
+
89
+ If your in a hurry and have good acceptance tests, another quick fix would be to
90
+ just delete the RSpec tests and rely purely on real-world testing. You will miss
91
+ fast-failure due to invalid puppet code if you do this though, since we have to
92
+ launch a container and run puppet to see if your code compiles.
93
+
94
+ You can use PDK to generate these tests, see the PDK manual for details of how.
95
+
96
+ ## `/.fixtures.yml` and `/fixtures.yml`
97
+ `/.fixtures.yml` is back in PDQTest 2.0 (it's presence was an error in PDQTest
98
+ 1.x) and `/fixtures.yaml` is no longer used.
99
+
100
+ If you would like to use test fixtures from git, add them to `.fixtures.yml` and
101
+ you can continue to use them as before. The rest of the file is generated for
102
+ you automatically based on `metadata.json` to support integration with PDK.
103
+
104
+ [More info on dependencies](puppet_module_dependencies.md)
105
+
106
+ ## Old PDQtest 1x integration points
107
+ * `/spec/spec_helper.rb`
108
+ * `/Gemfile`
109
+ * `/Rakefile`
110
+ * `/.rspec`
111
+ We will do our best to detect any previous PDQTest generated versions of these
112
+ files. If known versions are found, we will upgrade you to the PDK version. If
113
+ an unknown file is found we will stop and ask you to move it out of the way
114
+ first. PDK will be responsible for these files now-on.
115
+
116
+ ### How to resolve `unknown/modified file` errors during upgrade
117
+ 1. Move your existing file out of the way
118
+ 2. Run `pdqtest init`
119
+ 3. See per-file upgrade notes below
120
+
121
+ #### `/Gemfile`
122
+ Add any custom gems/`Gemfile` magic to `gemfile.project` and it will be evaluated
123
+ during `pdk bundle install`
124
+
125
+ ### PDK Managed files
126
+ PDK regenerates files it manages you run `pdk update`. To customise these files
127
+ and have your changes persist between updates, you need to add them to
128
+ `.sync.yml` which allows you to override _some_ settings in the
129
+ [PDK default templates](https://github.com/puppetlabs/pdk-templates/).
130
+
131
+ If the templates don't support the customisation you want, the advice from
132
+ Puppet is to fork and customise that repository, then configure PDK to use it.
133
+
134
+ Consult the PDK documentation for instructions on how to do this.
135
+
136
+ ## `/Gemfile.project`
137
+ New file used for configuring which PDQTest gem to use (replaces customisation
138
+ of `Gemfile`)
139
+
140
+ ## `/.gitignore`
141
+ We no longer install or manage `.gitignore` for you and we don't upgrade it
142
+ either. PDK ships a default version and we use that if the initial file is
143
+ missing.
144
+
145
+ ## `/cut` mountpoint
146
+ Previous versions of PDQTest mounted code at `/cut` (Code Under Test), the new
147
+ mountpoint is the more obvious `/testcase` and `/cut` no longer works.
data/doc/windows.md ADDED
@@ -0,0 +1,51 @@
1
+ # Windows
2
+ PDQTest now supports windows! There are a few gotchas though:
3
+
4
+ * The docker volume doesn't play nice with puppet/ruby: Whole app breaks if
5
+ `/lib` directory present, so we have to _copy_ the files into the container
6
+ this is of course very slow. You must run `refresh.ps1` inside the container
7
+ to refresh the files if your doing TDD on your main workstation.
8
+ * You must run PDQTest from `powershell.exe` and NOT `PowerShell ISE` or you
9
+ encounter [PDK-1168](https://tickets.puppetlabs.com/browse/PDK-1168)
10
+ * Keep an eye on how many windows containers are running `docker ps` - things
11
+ seem to choke up if you have more then a handful
12
+ * You **must** develop your modules on your **guest** filesystem (eg not at
13
+ `c:\vagrant` if your running windows 10 in a VM on linux):
14
+ [PDK-1169](https://tickets.puppetlabs.com/browse/PDK-1169)
15
+
16
+ ## FAQ
17
+ Q: How do I just get a shell inside my container?
18
+
19
+ A:
20
+ ```shell
21
+ .\make shellnopuppet
22
+ ```
23
+
24
+ Q: How do I see GUI apps that are running in my container?
25
+
26
+ A: Beats me. Maybe there's a way to do something with RDP? The idea of windows
27
+ containers seems to be to run CLI applications/services and interact with them
28
+ through powershell or over the network. If anyone has a better answer let me
29
+ know
30
+
31
+ Q: what's going on with `.bat` files?
32
+
33
+ A:They seem to work but you need to pass the full filename to docker run, eg:
34
+
35
+ ```shell
36
+ docker exec XXX foo.bat
37
+ ```
38
+
39
+ not
40
+
41
+ ```shell
42
+ docker exec XXX foo
43
+ ```
44
+ _where XXX is the ID of your container. Use `docker ps` to get a listing.
45
+
46
+ Q: My module refuses to be found or work! (class not found...)
47
+
48
+ A: Beats me.. This came up during testing but I haven't investigated further.
49
+ Make sure you have a `depenedencies` section in `metadata.json` even if its
50
+ empty or puppet seems to break (unverified)
51
+
@@ -24,6 +24,7 @@ RUN yum install -y cronie \
24
24
  gpm-libs \
25
25
  policycoreutils \
26
26
  policycoreutils-restorecond && yum clean all
27
+ RUN echo "metadata_expire=never" >> /etc/yum.conf
27
28
 
28
29
  # fix locale
29
30
  RUN echo 'LANG=en_US.UTF-8' > /etc/locale.conf
@@ -48,12 +49,12 @@ RUN git clone https://github.com/bats-core/bats-core /usr/local/bats
48
49
  # r10k
49
50
  RUN /opt/puppetlabs/puppet/bin/gem install r10k
50
51
 
51
- # git refresh (for processing .fixtures.yml git modules)
52
- RUN /opt/puppetlabs/puppet/bin/gem install git_refresh
53
-
54
52
  # testcase (our module)
55
53
  RUN mkdir /testcase
56
54
  VOLUME /testcase
57
55
 
56
+ # hiera
57
+ RUN mkdir -p /spec/fixtures/
58
+
58
59
  # alternate shudown for systemd
59
60
  STOPSIGNAL SIGRTMIN+3
@@ -1,3 +1,3 @@
1
1
  all:
2
2
  # requires experimental mode - see https://github.com/docker/docker/tree/master/experimental#use-docker-experimental
3
- bash -c 'docker build --squash -t declarativesystems/pdqtest-1x-centos:$$(date -I)-0 .'
3
+ bash -c 'docker build --squash -t declarativesystems/pdqtest-centos:$$(date -I)-0 .'
@@ -53,12 +53,12 @@ RUN git clone https://github.com/bats-core/bats-core /usr/local/bats
53
53
  # librarian
54
54
  RUN /opt/puppetlabs/puppet/bin/gem install r10k
55
55
 
56
- # git refresh (for processing .fixtures.yml git modules)
57
- RUN /opt/puppetlabs/puppet/bin/gem install git_refresh
58
-
59
56
  # testcase (our module)
60
57
  RUN mkdir /testcase
61
58
  VOLUME /testcase
62
59
 
60
+ # hiera
61
+ RUN mkdir -p /spec/fixtures/
62
+
63
63
  # alternate shudown for systemd
64
64
  STOPSIGNAL SIGRTMIN+3
@@ -0,0 +1,26 @@
1
+ FROM microsoft/windowsservercore
2
+
3
+ RUN powershell -command "& { (New-Object Net.WebClient).DownloadFile('https://pm.puppet.com/puppet-agent/2018.1.4/5.5.6/repos/windows/puppet-agent-5.5.6-x64.msi', 'c:\puppet_agent.msi') }"
4
+ RUN msiexec /qn /norestart /i c:\puppet_agent.msi
5
+ RUN mkdir C:\testcase
6
+ RUN mkdir C:\spec
7
+ RUN mkdir C:\spec\fixtures
8
+ RUN mkdir C:\spec\fixtures\hieradata
9
+
10
+
11
+ VOLUME C:\\testcase
12
+
13
+ # the path from "command prompt with puppet"
14
+ ENV PATH="C:\Program Files\Puppet Labs\Puppet\puppet\bin;C:\Program Files\Puppet Labs\Puppet\facter\bin;C:\Program Files\Puppet Labs\Puppet\hiera\bin;C:\Program Files\Puppet Labs\Puppet\mcollective\bin;C:\Program Files\Puppet Labs\Puppet\bin;C:\Program Files\Puppet Labs\Puppet\sys\ruby\bin;C:\Program Files\Puppet Labs\Puppet\sys\tools\bin;C:\Program Files\Docker\Docker\Resources\bin;C:\tools\ruby25\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramData\chocolatey\bin;C:\Program Files\Git\cmd;C:\Program Files\Puppet Labs\Puppet\bin;c:\windows:\c:\windows\system32;C:\Program Files (x86)\vim\vim80"
15
+
16
+ # install chocolatey
17
+ RUN @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
18
+
19
+ RUN choco install vim git /y
20
+ RUN git clone https://github.com/declarativesystems/pats c:\pats
21
+ RUN copy c:\pats\pats.ps1 c:\windows
22
+
23
+
24
+ # we dont have systemd/sysvinit on windows so just use notepad to keep the
25
+ # container open (nasty hack)
26
+ ENTRYPOINT notepad
@@ -0,0 +1,2 @@
1
+ docker build -t declarativesystems/pdqtest-windows:$([datetime]::now.tostring("yyyy-MM-dd"))-0 .
2
+
data/exe/pdqtest CHANGED
@@ -11,18 +11,21 @@ end
11
11
  require 'pdqtest'
12
12
  require 'pdqtest/emoji'
13
13
  require 'pdqtest/instance'
14
- require 'pdqtest/rspec'
15
14
  require 'pdqtest/util'
16
15
  require 'pdqtest/skeleton'
17
- require 'pdqtest/lint'
18
- require 'pdqtest/syntax'
19
16
  require 'pdqtest/core'
20
17
  require 'pdqtest/upgrade'
18
+ require 'pdqtest/pdk'
21
19
  require 'escort'
20
+ require 'pdqtest/logger'
21
+ require 'pdqtest/fastcheck'
22
22
 
23
23
  # display help if nothing specified
24
24
  ARGV.push('-h') if ARGV.empty?
25
25
 
26
+ # Setup our own hacky logger
27
+
28
+
26
29
  Escort::App.create do |app|
27
30
  app.version PDQTest::VERSION
28
31
  app.summary "pdqtest"
@@ -64,12 +67,21 @@ Escort::App.create do |app|
64
67
  :default => false,
65
68
  )
66
69
 
70
+ opts.opt(:debug,
71
+ 'Extra debug messages (also needs --verbosity debug for stack traces)',
72
+ :long => '--debug',
73
+ :type => :boolean,
74
+ :default => false,
75
+ )
67
76
  end
68
77
 
69
78
  app.command :all do |command|
70
79
  command.summary "All"
71
80
  command.description "Run all tests"
72
81
  command.action do |options, arguments|
82
+ PDQTest::Logger.logger
83
+ $logger.level = :debug if options[:global][:options][:debug]
84
+
73
85
  PDQTest::Emoji.disable(options[:global][:options][:disable_emoji])
74
86
  PDQTest::Puppet.skip_second_run(options[:global][:options][:skip_idempotency])
75
87
 
@@ -78,20 +90,48 @@ Escort::App.create do |app|
78
90
  PDQTest::Instance.set_docker_image(options[:global][:options][:image_name])
79
91
 
80
92
  PDQTest::Core.run([
81
- lambda {PDQTest::Syntax.puppet},
82
- lambda {PDQTest::Lint.puppet},
83
- lambda {PDQTest::Rspec.run},
93
+ lambda {PDQTest::Pdk.run("validate 'metadata,puppet'")},
94
+ lambda {PDQTest::Puppet.install_modules},
95
+ lambda {PDQTest::Pdk.run("test unit")},
84
96
  lambda {PDQTest::Instance.run},
97
+ lambda {system("bundle exec puppet strings generate --format=markdown")},
98
+ lambda {PDQTest::Pdk.run("build --force")},
99
+ ])
100
+ end
101
+ end
102
+
103
+ app.command :fast do |command|
104
+ command.summary "Fast"
105
+ command.description "Run basic lint/syntax and acceptance tests (skips rspec)"
106
+ command.action do |options, arguments|
107
+ PDQTest::Logger.logger
108
+ $logger.level = :debug if options[:global][:options][:debug]
109
+
110
+ PDQTest::Emoji.disable(options[:global][:options][:disable_emoji])
111
+ PDQTest::Puppet.skip_second_run(options[:global][:options][:skip_idempotency])
112
+
113
+ PDQTest::Instance.set_privileged(options[:global][:options][:privileged])
114
+ PDQTest::Instance.set_keep_container(options[:global][:options][:keep_container])
115
+ PDQTest::Instance.set_docker_image(options[:global][:options][:image_name])
116
+
117
+ PDQTest::Core.run([
118
+ lambda {PDQTest::Fastcheck.run},
119
+ lambda {PDQTest::Puppet.install_modules},
120
+ lambda {PDQTest::Instance.run},
121
+ lambda {system("bundle exec puppet strings generate --format=markdown")},
85
122
  ])
86
123
  end
87
124
  end
88
125
 
89
126
  app.command :rspec do |command|
90
127
  command.summary "RSpec"
91
- command.description "Run the RSpec tests"
128
+ command.description "Run the RSpec tests (`pdk test unit` with emojis)"
92
129
  command.action do |options, arguments|
130
+ PDQTest::Logger.logger
131
+ $logger.level = :debug if options[:global][:options][:debug]
132
+
93
133
  PDQTest::Emoji.disable(options[:global][:options][:disable_emoji])
94
- PDQTest::Core.run(lambda {PDQTest::Rspec.run})
134
+ PDQTest::Core.run(lambda {PDQTest::Pdk.run("test unit")})
95
135
  end
96
136
  end
97
137
 
@@ -108,6 +148,9 @@ Escort::App.create do |app|
108
148
  )
109
149
  end
110
150
  command.action do |options, arguments|
151
+ PDQTest::Logger.logger
152
+ $logger.level = :debug if options[:global][:options][:debug]
153
+
111
154
  PDQTest::Emoji.disable(options[:global][:options][:disable_emoji])
112
155
  PDQTest::Puppet.skip_second_run(options[:global][:options][:skip_idempotency])
113
156
  PDQTest::Instance.set_privileged(options[:global][:options][:privileged])
@@ -122,17 +165,11 @@ Escort::App.create do |app|
122
165
  command.summary "Initialise testing"
123
166
  command.description "Install skeleton testing configuration into this module"
124
167
  command.action do |options, arguments|
125
- PDQTest::Emoji.disable(options[:global][:options][:disable_emoji])
126
- PDQTest::Skeleton.init
127
- end
128
- end
168
+ PDQTest::Logger.logger
169
+ $logger.level = :debug if options[:global][:options][:debug]
129
170
 
130
- app.command :generate_rspec do |command|
131
- command.summary "Generate RSpec"
132
- command.description "For each class in the module, generate basic RSpec tests"
133
- command.action do |options, arguments|
134
171
  PDQTest::Emoji.disable(options[:global][:options][:disable_emoji])
135
- PDQTest::Rspec.gen_specs
172
+ PDQTest::Skeleton.init
136
173
  end
137
174
  end
138
175
 
@@ -148,6 +185,9 @@ Escort::App.create do |app|
148
185
  )
149
186
  end
150
187
  command.action do |options, arguments|
188
+ PDQTest::Logger.logger
189
+ $logger.level = :debug if options[:global][:options][:debug]
190
+
151
191
  PDQTest::Emoji.disable(options[:global][:options][:disable_emoji])
152
192
  example = options[:global][:commands][:generate_acceptance][:options][:example]
153
193
 
@@ -160,6 +200,9 @@ Escort::App.create do |app|
160
200
  command.summary "Shell"
161
201
  command.description "Open a shell inside a docker container identical to the test environment before anything has run"
162
202
  command.action do |options, arguments|
203
+ PDQTest::Logger.logger
204
+ $logger.level = :debug if options[:global][:options][:debug]
205
+
163
206
  PDQTest::Instance.set_docker_image(options[:global][:options][:image_name])
164
207
  PDQTest::Instance.shell
165
208
  end
@@ -167,20 +210,13 @@ Escort::App.create do |app|
167
210
 
168
211
  app.command :syntax do |command|
169
212
  command.summary "Syntax"
170
- command.description "Check for syntax errors"
213
+ command.description "Check for syntax errors (`pdk validate metadata,puppet` with emojis)"
171
214
  command.action do |options, arguments|
172
- PDQTest::Emoji.disable(options[:global][:options][:disable_emoji])
173
- PDQTest::Core.run(lambda {PDQTest::Syntax.puppet})
174
- end
175
- end
176
-
177
- app.command :lint do |command|
178
- command.summary "Lint"
179
- command.description "Check for lint errors"
215
+ PDQTest::Logger.logger
216
+ $logger.level = :debug if options[:global][:options][:debug]
180
217
 
181
- command.action do |options, arguments|
182
218
  PDQTest::Emoji.disable(options[:global][:options][:disable_emoji])
183
- PDQTest::Core.run(lambda {PDQTest::Lint.puppet})
219
+ PDQTest::Core.run(lambda {PDQTest::Pdk.run("validate 'metadata,puppet'")})
184
220
  end
185
221
  end
186
222
 
@@ -189,6 +225,9 @@ Escort::App.create do |app|
189
225
  command.description "Install the docker container required for testing"
190
226
 
191
227
  command.action do |options, arguments|
228
+ PDQTest::Logger.logger
229
+ $logger.level = :debug if options[:global][:options][:debug]
230
+
192
231
  PDQTest::Core.run(lambda {
193
232
  PDQTest::Docker::IMAGES.each { |key, image|
194
233
  system("docker pull #{image}")
@@ -201,6 +240,9 @@ Escort::App.create do |app|
201
240
  command.summary "Info"
202
241
  command.description "Print info about this module"
203
242
  command.action do |options, arguments|
243
+ PDQTest::Logger.logger
244
+ $logger.level = :debug if options[:global][:options][:debug]
245
+
204
246
  PDQTest::Puppet.info
205
247
  end
206
248
  end
@@ -210,6 +252,9 @@ Escort::App.create do |app|
210
252
  command.summary "Upgrade"
211
253
  command.description "Upgrade the current module to use this version of PDQTest"
212
254
  command.action do |options, arguments|
255
+ PDQTest::Logger.logger
256
+ $logger.level = :debug if options[:global][:options][:debug]
257
+
213
258
  PDQTest::Upgrade.upgrade
214
259
  end
215
260
  end
data/lib/pdqtest/core.rb CHANGED
@@ -8,7 +8,7 @@ module PDQTest
8
8
  functions = Array(functions)
9
9
  functions.each { |f|
10
10
  if ! f.call
11
- Escort::Logger.error.error "Error encountered running #{f.to_s}"
11
+ $logger.error "Error encountered running #{f.to_s}"
12
12
 
13
13
  # epic fail, exit program
14
14
  PDQTest::Emoji.final_status(false)