rspec-puppet 2.6.11 → 2.6.12
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 +4 -4
- data/CHANGELOG.md +29 -0
- data/lib/rspec-puppet.rb +4 -3
- data/lib/rspec-puppet/adapters.rb +1 -0
- data/lib/rspec-puppet/matchers/count_generic.rb +18 -14
- data/lib/rspec-puppet/matchers/create_generic.rb +1 -1
- data/lib/rspec-puppet/monkey_patches.rb +6 -0
- data/lib/rspec-puppet/monkey_patches/win32/taskscheduler.rb +52 -93
- data/lib/rspec-puppet/monkey_patches/windows/taskschedulerconstants.rb +271 -0
- data/lib/rspec-puppet/setup.rb +2 -4
- data/lib/rspec-puppet/support.rb +2 -2
- data/lib/rspec-puppet/tasks/release_test.rb +5 -5
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8b38203076b16e77839a929ceecfc693389fa5c
|
4
|
+
data.tar.gz: ea68533700285fe1fc3177e96f1552007b1e098b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20dfed8bed477dce75a21d4ba98c41f50e9ba779d44c3c8838eb77b95da69e6430cf56cf57766afc0a253ed0880d4c726e59b4e09d4db08005aa0c49a4efacb7
|
7
|
+
data.tar.gz: cbb9f00b6e90493b5934e5cb3acb3cb43ac8ed92e4d9c04e11012aea829beed0b19eedbd8795015d15cb51158016717d35f55a6a07aeb4e2dd9422e1e26810a8
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,35 @@
|
|
2
2
|
All notable changes to this project will be documented in this file. This
|
3
3
|
project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
|
5
|
+
## [2.6.12]
|
6
|
+
|
7
|
+
### Fixed
|
8
|
+
|
9
|
+
* Updated `Win32::TaskScheduler` stubs to match the latest release of
|
10
|
+
`win32-taskscheduler`.
|
11
|
+
* The `os` structured fact is now correctly treated as a Hash when determining
|
12
|
+
the platform that rspec-puppet pretends to be.
|
13
|
+
* The default resources that Puppet adds to the catalogue (`Class[main]`,
|
14
|
+
`Class[Settings]`, etc) are now filtered out of the catalogue when using the
|
15
|
+
`have_resource_count` matcher, rather than simply subtracted from the
|
16
|
+
resource count. This allows the `have_resource_count` matcher to be used on
|
17
|
+
subsects of the catalogue (`exported_resources` for example).
|
18
|
+
* When running on Windows, rspec-puppet will now convert Puppet configuration
|
19
|
+
settings from `/dev/null` to `NUL`, preventing Puppet from automatically
|
20
|
+
creating directories like `C:\dev` when running tests on Windows as an
|
21
|
+
Administrator.
|
22
|
+
* When overriding fact values, rspec-puppet will now assign the stub facts
|
23
|
+
a weight of 1000 to ensure that they override the generated fact values from
|
24
|
+
Facter 3.x.
|
25
|
+
* `Selinux.is_selinux_enabled` is now automatically stubbed to return 0 to
|
26
|
+
disable any SELinux related apply-time validation of resources.
|
27
|
+
* When testing against Puppet 3.x, rspec-puppet will now honour the
|
28
|
+
`RSpec.configuration.parser` value when determining the module name to set
|
29
|
+
up the fixture symlink.
|
30
|
+
* When testing for the absence of a parameter using `only_with(:parameter_name
|
31
|
+
=> nil`), this will no longer incorrectly affect the expected parameter
|
32
|
+
count.
|
33
|
+
|
5
34
|
## [2.6.11]
|
6
35
|
|
7
36
|
### Fixed
|
data/lib/rspec-puppet.rb
CHANGED
@@ -32,17 +32,17 @@ end
|
|
32
32
|
require 'rspec-puppet/monkey_patches'
|
33
33
|
|
34
34
|
RSpec.configure do |c|
|
35
|
-
c.add_setting :environmentpath, :default => '/
|
35
|
+
c.add_setting :environmentpath, :default => Puppet::Util::Platform.actually_windows? ? 'c:/nul/' : '/dev/null'
|
36
36
|
c.add_setting :module_path, :default => nil
|
37
37
|
c.add_setting :manifest_dir, :default => nil
|
38
38
|
c.add_setting :manifest, :default => nil
|
39
39
|
c.add_setting :template_dir, :default => nil
|
40
40
|
c.add_setting :config, :default => nil
|
41
|
-
c.add_setting :confdir, :default => '/
|
41
|
+
c.add_setting :confdir, :default => Puppet::Util::Platform.actually_windows? ? 'c:/nul/' : '/dev/null'
|
42
42
|
c.add_setting :default_facts, :default => {}
|
43
43
|
c.add_setting :default_node_params, :default => {}
|
44
44
|
c.add_setting :default_trusted_facts, :default => {}
|
45
|
-
c.add_setting :hiera_config, :default => '/dev/null'
|
45
|
+
c.add_setting :hiera_config, :default => Puppet::Util::Platform.actually_windows? ? 'c:/nul/' : '/dev/null'
|
46
46
|
c.add_setting :parser, :default => 'current'
|
47
47
|
c.add_setting :trusted_node_data, :default => false
|
48
48
|
c.add_setting :ordering, :default => 'title-hash'
|
@@ -120,6 +120,7 @@ RSpec.configure do |c|
|
|
120
120
|
if RSpec::Puppet.rspec_puppet_example?
|
121
121
|
Puppet::Util::Platform.pretend_to_be RSpec.configuration.platform
|
122
122
|
stub_file_consts(example) if self.respond_to?(:stub_file_consts)
|
123
|
+
allow(Selinux).to receive(:is_selinux_enabled).and_return(0) if defined?(Selinux)
|
123
124
|
end
|
124
125
|
end
|
125
126
|
|
@@ -47,6 +47,7 @@ module RSpec::Puppet
|
|
47
47
|
default_hash.merge!(Puppet::Test::TestHelper.send(:app_defaults_for_tests))
|
48
48
|
end
|
49
49
|
settings_hash = default_hash.merge(Hash[*settings])
|
50
|
+
settings_hash.inject(settings_hash) { |h, (k, v)| h[k] = (v == '/dev/null') ? 'c:/nul/' : v; h } if Gem.win_platform?
|
50
51
|
|
51
52
|
if Puppet.settings.respond_to?(:initialize_app_defaults)
|
52
53
|
Puppet.settings.initialize_app_defaults(settings_hash)
|
@@ -1,6 +1,12 @@
|
|
1
1
|
module RSpec::Puppet
|
2
2
|
module ManifestMatchers
|
3
3
|
class CountGeneric
|
4
|
+
DEFAULT_RESOURCES = [
|
5
|
+
'Class[main]',
|
6
|
+
'Class[Settings]',
|
7
|
+
'Stage[main]',
|
8
|
+
].freeze
|
9
|
+
|
4
10
|
def initialize(type, count, *method)
|
5
11
|
if type.nil?
|
6
12
|
@type = method[0].to_s.gsub(/^have_(.+)_resource_count$/, '\1')
|
@@ -14,22 +20,20 @@ module RSpec::Puppet
|
|
14
20
|
def matches?(catalogue)
|
15
21
|
@catalogue = catalogue.call
|
16
22
|
|
17
|
-
|
18
|
-
|
19
|
-
!(['Class', 'Node'].include? res.type)
|
20
|
-
end
|
21
|
-
|
22
|
-
# Puppet automatically adds Stage[main]
|
23
|
-
@actual_number = @actual_number - 1
|
24
|
-
else
|
25
|
-
@actual_number = @catalogue.resources.count do |res|
|
26
|
-
res.type == @referenced_type
|
27
|
-
end
|
28
|
-
|
29
|
-
# Puppet automatically adds Class[main] and Class[Settings]
|
30
|
-
@actual_number = @actual_number - 2 if @type == "class"
|
23
|
+
resources = @catalogue.resources.reject do |res|
|
24
|
+
DEFAULT_RESOURCES.include?(res.ref)
|
31
25
|
end
|
32
26
|
|
27
|
+
@actual_number = if @type == 'resource'
|
28
|
+
resources.count do |res|
|
29
|
+
!['Class', 'Node'].include?(res.type)
|
30
|
+
end
|
31
|
+
else
|
32
|
+
resources.count do |res|
|
33
|
+
res.type == @referenced_type
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
33
37
|
@actual_number == @expected_number
|
34
38
|
end
|
35
39
|
|
@@ -30,7 +30,7 @@ module RSpec::Puppet
|
|
30
30
|
|
31
31
|
def only_with(*args, &block)
|
32
32
|
params = args.shift
|
33
|
-
@expected_params_count = (@expected_params_count || 0) + params.size
|
33
|
+
@expected_params_count = (@expected_params_count || 0) + params.select { |_, v| !v.nil? }.size
|
34
34
|
self.with(params, &block)
|
35
35
|
end
|
36
36
|
|
@@ -54,6 +54,7 @@ RSpec.configuration.reporter.register_listener(RSpec::Puppet::EventListener, :ex
|
|
54
54
|
|
55
55
|
require 'rspec-puppet/monkey_patches/win32/taskscheduler'
|
56
56
|
require 'rspec-puppet/monkey_patches/win32/registry'
|
57
|
+
require 'rspec-puppet/monkey_patches/windows/taskschedulerconstants'
|
57
58
|
|
58
59
|
module Puppet
|
59
60
|
# Allow rspec-puppet to prevent Puppet::Type from automatically picking
|
@@ -177,6 +178,11 @@ module Puppet
|
|
177
178
|
end
|
178
179
|
module_function :actual_platform
|
179
180
|
|
181
|
+
def actually_windows?
|
182
|
+
actual_platform == :windows
|
183
|
+
end
|
184
|
+
module_function :actually_windows?
|
185
|
+
|
180
186
|
def pretend_windows?
|
181
187
|
pretend_platform == :windows
|
182
188
|
end
|
@@ -1,33 +1,37 @@
|
|
1
1
|
# Create our dummy Win32::TaskScheduler with the consts defined from
|
2
2
|
# https://github.com/djberg96/win32-taskscheduler/blob/ole/lib/win32/taskscheduler.rb
|
3
|
+
|
4
|
+
require 'rspec-puppet/monkey_patches/windows/taskschedulerconstants'
|
5
|
+
|
3
6
|
module RSpec
|
4
7
|
module Puppet
|
5
8
|
module Win32
|
6
9
|
class TaskScheduler
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
10
|
+
include Windows::TaskSchedulerConstants
|
11
|
+
|
12
|
+
DAYS_IN_A_MONTH = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
|
13
|
+
|
14
|
+
IDLE = IDLE_PRIORITY_CLASS
|
15
|
+
NORMAL = NORMAL_PRIORITY_CLASS
|
16
|
+
HIGH = HIGH_PRIORITY_CLASS
|
17
|
+
REALTIME = REALTIME_PRIORITY_CLASS
|
18
|
+
BELOW_NORMAL = BELOW_NORMAL_PRIORITY_CLASS
|
19
|
+
ABOVE_NORMAL = ABOVE_NORMAL_PRIORITY_CLASS
|
20
|
+
|
15
21
|
ONCE = TASK_TIME_TRIGGER_ONCE
|
16
22
|
DAILY = TASK_TIME_TRIGGER_DAILY
|
17
23
|
WEEKLY = TASK_TIME_TRIGGER_WEEKLY
|
18
24
|
MONTHLYDATE = TASK_TIME_TRIGGER_MONTHLYDATE
|
19
25
|
MONTHLYDOW = TASK_TIME_TRIGGER_MONTHLYDOW
|
26
|
+
|
20
27
|
ON_IDLE = TASK_EVENT_TRIGGER_ON_IDLE
|
21
28
|
AT_SYSTEMSTART = TASK_EVENT_TRIGGER_AT_SYSTEMSTART
|
22
29
|
AT_LOGON = TASK_EVENT_TRIGGER_AT_LOGON
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
TASK_THURSDAY = 0x10
|
29
|
-
TASK_FRIDAY = 0x20
|
30
|
-
TASK_SATURDAY = 0x40
|
30
|
+
FIRST_WEEK = TASK_FIRST_WEEK
|
31
|
+
SECOND_WEEK = TASK_SECOND_WEEK
|
32
|
+
THIRD_WEEK = TASK_THIRD_WEEK
|
33
|
+
FOURTH_WEEK = TASK_FOURTH_WEEK
|
34
|
+
LAST_WEEK = TASK_LAST_WEEK
|
31
35
|
SUNDAY = TASK_SUNDAY
|
32
36
|
MONDAY = TASK_MONDAY
|
33
37
|
TUESDAY = TASK_TUESDAY
|
@@ -35,30 +39,6 @@ module RSpec
|
|
35
39
|
THURSDAY = TASK_THURSDAY
|
36
40
|
FRIDAY = TASK_FRIDAY
|
37
41
|
SATURDAY = TASK_SATURDAY
|
38
|
-
|
39
|
-
TASK_FIRST_WEEK = 1
|
40
|
-
TASK_SECOND_WEEK = 2
|
41
|
-
TASK_THIRD_WEEK = 3
|
42
|
-
TASK_FOURTH_WEEK = 4
|
43
|
-
TASK_LAST_WEEK = 5
|
44
|
-
FIRST_WEEK = TASK_FIRST_WEEK
|
45
|
-
SECOND_WEEK = TASK_SECOND_WEEK
|
46
|
-
THIRD_WEEK = TASK_THIRD_WEEK
|
47
|
-
FOURTH_WEEK = TASK_FOURTH_WEEK
|
48
|
-
LAST_WEEK = TASK_LAST_WEEK
|
49
|
-
|
50
|
-
TASK_JANUARY = 0x1
|
51
|
-
TASK_FEBRUARY = 0x2
|
52
|
-
TASK_MARCH = 0x4
|
53
|
-
TASK_APRIL = 0x8
|
54
|
-
TASK_MAY = 0x10
|
55
|
-
TASK_JUNE = 0x20
|
56
|
-
TASK_JULY = 0x40
|
57
|
-
TASK_AUGUST = 0x80
|
58
|
-
TASK_SEPTEMBER = 0x100
|
59
|
-
TASK_OCTOBER = 0x200
|
60
|
-
TASK_NOVEMBER = 0x400
|
61
|
-
TASK_DECEMBER = 0x800
|
62
42
|
JANUARY = TASK_JANUARY
|
63
43
|
FEBRUARY = TASK_FEBRUARY
|
64
44
|
MARCH = TASK_MARCH
|
@@ -72,19 +52,6 @@ module RSpec
|
|
72
52
|
NOVEMBER = TASK_NOVEMBER
|
73
53
|
DECEMBER = TASK_DECEMBER
|
74
54
|
|
75
|
-
TASK_FLAG_INTERACTIVE = 0x1
|
76
|
-
TASK_FLAG_DELETE_WHEN_DONE = 0x2
|
77
|
-
TASK_FLAG_DISABLED = 0x4
|
78
|
-
TASK_FLAG_START_ONLY_IF_IDLE = 0x10
|
79
|
-
TASK_FLAG_KILL_ON_IDLE_END = 0x20
|
80
|
-
TASK_FLAG_DONT_START_IF_ON_BATTERIES = 0x40
|
81
|
-
TASK_FLAG_KILL_IF_GOING_ON_BATTERIES = 0x80
|
82
|
-
TASK_FLAG_RUN_ONLY_IF_DOCKED = 0x100
|
83
|
-
TASK_FLAG_HIDDEN = 0x200
|
84
|
-
TASK_FLAG_RUN_IF_CONNECTED_TO_INTERNET = 0x400
|
85
|
-
TASK_FLAG_RESTART_ON_IDLE_RESUME = 0x800
|
86
|
-
TASK_FLAG_SYSTEM_REQUIRED = 0x1000
|
87
|
-
TASK_FLAG_RUN_ONLY_IF_LOGGED_ON = 0x2000
|
88
55
|
INTERACTIVE = TASK_FLAG_INTERACTIVE
|
89
56
|
DELETE_WHEN_DONE = TASK_FLAG_DELETE_WHEN_DONE
|
90
57
|
DISABLED = TASK_FLAG_DISABLED
|
@@ -99,52 +66,44 @@ module RSpec
|
|
99
66
|
SYSTEM_REQUIRED = TASK_FLAG_SYSTEM_REQUIRED
|
100
67
|
RUN_ONLY_IF_LOGGED_ON = TASK_FLAG_RUN_ONLY_IF_LOGGED_ON
|
101
68
|
|
102
|
-
TASK_TRIGGER_FLAG_HAS_END_DATE = 0x1
|
103
|
-
TASK_TRIGGER_FLAG_KILL_AT_DURATION_END = 0x2
|
104
|
-
TASK_TRIGGER_FLAG_DISABLED = 0x4
|
105
69
|
FLAG_HAS_END_DATE = TASK_TRIGGER_FLAG_HAS_END_DATE
|
106
70
|
FLAG_KILL_AT_DURATION_END = TASK_TRIGGER_FLAG_KILL_AT_DURATION_END
|
107
71
|
FLAG_DISABLED = TASK_TRIGGER_FLAG_DISABLED
|
108
72
|
|
109
|
-
TASK_MAX_RUN_TIMES = 1440
|
110
|
-
TASKS_TO_RETRIEVE = 5
|
111
73
|
MAX_RUN_TIMES = TASK_MAX_RUN_TIMES
|
112
74
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
IID_ITaskScheduler = [0x148BD527,0xA2AB,0x11CE,0xB1,0x1F,0x00,0xAA,0x00,0x53,0x05,0x03].pack('LSSC8')
|
146
|
-
IID_ITask = [0x148BD524,0xA2AB,0x11CE,0xB1,0x1F,0x00,0xAA,0x00,0x53,0x05,0x03].pack('LSSC8')
|
147
|
-
IID_IPersistFile = [0x0000010b,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46].pack('LSSC8')
|
75
|
+
FIRST = TASK_FIRST
|
76
|
+
SECOND = TASK_SECOND
|
77
|
+
THIRD = TASK_THIRD
|
78
|
+
FOURTH = TASK_FOURTH
|
79
|
+
FIFTH = TASK_FIFTH
|
80
|
+
SIXTH = TASK_SIXTH
|
81
|
+
SEVENTH = TASK_SEVENTH
|
82
|
+
EIGHTH = TASK_EIGHTH
|
83
|
+
NINETH = TASK_NINETH
|
84
|
+
TENTH = TASK_TENTH
|
85
|
+
ELEVENTH = TASK_ELEVENTH
|
86
|
+
TWELFTH = TASK_TWELFTH
|
87
|
+
THIRTEENTH = TASK_THIRTEENTH
|
88
|
+
FOURTEENTH = TASK_FOURTEENTH
|
89
|
+
FIFTEENTH = TASK_FIFTEENTH
|
90
|
+
SIXTEENTH = TASK_SIXTEENTH
|
91
|
+
SEVENTEENTH = TASK_SEVENTEENTH
|
92
|
+
EIGHTEENTH = TASK_EIGHTEENTH
|
93
|
+
NINETEENTH = TASK_NINETEENTH
|
94
|
+
TWENTIETH = TASK_TWENTIETH
|
95
|
+
TWENTY_FIRST = TASK_TWENTY_FIRST
|
96
|
+
TWENTY_SECOND = TASK_TWENTY_SECOND
|
97
|
+
TWENTY_THIRD = TASK_TWENTY_THIRD
|
98
|
+
TWENTY_FOURTH = TASK_TWENTY_FOURTH
|
99
|
+
TWENTY_FIFTH = TASK_TWENTY_FIFTH
|
100
|
+
TWENTY_SIXTH = TASK_TWENTY_SIXTH
|
101
|
+
TWENTY_SEVENTH = TASK_TWENTY_SEVENTH
|
102
|
+
TWENTY_EIGHTH = TASK_TWENTY_EIGHTH
|
103
|
+
TWENTY_NINTH = TASK_TWENTY_NINTH
|
104
|
+
THIRTYETH = TASK_THIRTYETH
|
105
|
+
THIRTY_FIRST = TASK_THIRTY_FIRST
|
106
|
+
LAST = TASK_LAST
|
148
107
|
end
|
149
108
|
end
|
150
109
|
end
|
@@ -0,0 +1,271 @@
|
|
1
|
+
module RSpec
|
2
|
+
module Puppet
|
3
|
+
module Windows
|
4
|
+
module TaskSchedulerConstants
|
5
|
+
SYSTEM_USERS = ['NT AUTHORITY\SYSTEM', "SYSTEM", 'NT AUTHORITY\LOCALSERVICE', 'NT AUTHORITY\NETWORKSERVICE', 'BUILTIN\USERS', "USERS"].freeze
|
6
|
+
|
7
|
+
# Triggers
|
8
|
+
|
9
|
+
# Trigger is set to run the task a single time
|
10
|
+
TASK_TIME_TRIGGER_ONCE = 1
|
11
|
+
|
12
|
+
# Trigger is set to run the task on a daily interval
|
13
|
+
TASK_TIME_TRIGGER_DAILY = 2
|
14
|
+
|
15
|
+
# Trigger is set to run the task on specific days of a specific week & month
|
16
|
+
TASK_TIME_TRIGGER_WEEKLY = 3
|
17
|
+
|
18
|
+
# Trigger is set to run the task on specific day(s) of the month
|
19
|
+
TASK_TIME_TRIGGER_MONTHLYDATE = 4
|
20
|
+
|
21
|
+
# Trigger is set to run the task on specific day(s) of the month
|
22
|
+
TASK_TIME_TRIGGER_MONTHLYDOW = 5
|
23
|
+
|
24
|
+
# Trigger is set to run the task if the system remains idle for the amount
|
25
|
+
# of time specified by the idle wait time of the task
|
26
|
+
TASK_EVENT_TRIGGER_ON_IDLE = 6
|
27
|
+
|
28
|
+
TASK_TRIGGER_REGISTRATION = 7
|
29
|
+
|
30
|
+
# Trigger is set to run the task at system startup
|
31
|
+
TASK_EVENT_TRIGGER_AT_SYSTEMSTART = 8
|
32
|
+
|
33
|
+
# Trigger is set to run the task when a user logs on
|
34
|
+
TASK_EVENT_TRIGGER_AT_LOGON = 9
|
35
|
+
|
36
|
+
TASK_TRIGGER_SESSION_STATE_CHANGE = 11
|
37
|
+
|
38
|
+
# Daily Tasks
|
39
|
+
|
40
|
+
# The task will run on Sunday
|
41
|
+
TASK_SUNDAY = 0x1
|
42
|
+
|
43
|
+
# The task will run on Monday
|
44
|
+
TASK_MONDAY = 0x2
|
45
|
+
|
46
|
+
# The task will run on Tuesday
|
47
|
+
TASK_TUESDAY = 0x4
|
48
|
+
|
49
|
+
# The task will run on Wednesday
|
50
|
+
TASK_WEDNESDAY = 0x8
|
51
|
+
|
52
|
+
# The task will run on Thursday
|
53
|
+
TASK_THURSDAY = 0x10
|
54
|
+
|
55
|
+
# The task will run on Friday
|
56
|
+
TASK_FRIDAY = 0x20
|
57
|
+
|
58
|
+
# The task will run on Saturday
|
59
|
+
TASK_SATURDAY = 0x40
|
60
|
+
|
61
|
+
# Weekly tasks
|
62
|
+
|
63
|
+
# The task will run between the 1st and 7th day of the month
|
64
|
+
TASK_FIRST_WEEK = 0x01
|
65
|
+
|
66
|
+
# The task will run between the 8th and 14th day of the month
|
67
|
+
TASK_SECOND_WEEK = 0x02
|
68
|
+
|
69
|
+
# The task will run between the 15th and 21st day of the month
|
70
|
+
TASK_THIRD_WEEK = 0x04
|
71
|
+
|
72
|
+
# The task will run between the 22nd and 28th day of the month
|
73
|
+
TASK_FOURTH_WEEK = 0x08
|
74
|
+
|
75
|
+
# The task will run the last seven days of the month
|
76
|
+
TASK_LAST_WEEK = 0x10
|
77
|
+
|
78
|
+
# Monthly tasks
|
79
|
+
|
80
|
+
# The task will run in January
|
81
|
+
TASK_JANUARY = 0x1
|
82
|
+
|
83
|
+
# The task will run in February
|
84
|
+
TASK_FEBRUARY = 0x2
|
85
|
+
|
86
|
+
# The task will run in March
|
87
|
+
TASK_MARCH = 0x4
|
88
|
+
|
89
|
+
# The task will run in April
|
90
|
+
TASK_APRIL = 0x8
|
91
|
+
|
92
|
+
# The task will run in May
|
93
|
+
TASK_MAY = 0x10
|
94
|
+
|
95
|
+
# The task will run in June
|
96
|
+
TASK_JUNE = 0x20
|
97
|
+
|
98
|
+
# The task will run in July
|
99
|
+
TASK_JULY = 0x40
|
100
|
+
|
101
|
+
# The task will run in August
|
102
|
+
TASK_AUGUST = 0x80
|
103
|
+
|
104
|
+
# The task will run in September
|
105
|
+
TASK_SEPTEMBER = 0x100
|
106
|
+
|
107
|
+
# The task will run in October
|
108
|
+
TASK_OCTOBER = 0x200
|
109
|
+
|
110
|
+
# The task will run in November
|
111
|
+
TASK_NOVEMBER = 0x400
|
112
|
+
|
113
|
+
# The task will run in December
|
114
|
+
TASK_DECEMBER = 0x800
|
115
|
+
|
116
|
+
# Flags
|
117
|
+
|
118
|
+
# Used when converting AT service jobs into work items
|
119
|
+
TASK_FLAG_INTERACTIVE = 0x1
|
120
|
+
|
121
|
+
# The work item will be deleted when there are no more scheduled run times
|
122
|
+
TASK_FLAG_DELETE_WHEN_DONE = 0x2
|
123
|
+
|
124
|
+
# The work item is disabled. Useful for temporarily disabling a task
|
125
|
+
TASK_FLAG_DISABLED = 0x4
|
126
|
+
|
127
|
+
# The work item begins only if the computer is not in use at the scheduled
|
128
|
+
# start time
|
129
|
+
TASK_FLAG_START_ONLY_IF_IDLE = 0x10
|
130
|
+
|
131
|
+
# The work item terminates if the computer makes an idle to non-idle
|
132
|
+
# transition while the work item is running
|
133
|
+
TASK_FLAG_KILL_ON_IDLE_END = 0x20
|
134
|
+
|
135
|
+
# The work item does not start if the computer is running on battery power
|
136
|
+
TASK_FLAG_DONT_START_IF_ON_BATTERIES = 0x40
|
137
|
+
|
138
|
+
# The work item ends, and the associated application quits, if the computer
|
139
|
+
# switches to battery power
|
140
|
+
TASK_FLAG_KILL_IF_GOING_ON_BATTERIES = 0x80
|
141
|
+
|
142
|
+
# The work item starts only if the computer is in a docking station
|
143
|
+
TASK_FLAG_RUN_ONLY_IF_DOCKED = 0x100
|
144
|
+
|
145
|
+
# The work item created will be hidden
|
146
|
+
TASK_FLAG_HIDDEN = 0x200
|
147
|
+
|
148
|
+
# The work item runs only if there is a valid internet connection
|
149
|
+
TASK_FLAG_RUN_IF_CONNECTED_TO_INTERNET = 0x400
|
150
|
+
|
151
|
+
# The work item starts again if the computer makes a non-idle to idle
|
152
|
+
# transition
|
153
|
+
TASK_FLAG_RESTART_ON_IDLE_RESUME = 0x800
|
154
|
+
|
155
|
+
# The work item causes the system to be resumed, or awakened, if the
|
156
|
+
# system is running on batter power
|
157
|
+
TASK_FLAG_SYSTEM_REQUIRED = 0x1000
|
158
|
+
|
159
|
+
# The work item runs only if a specified account is logged on interactively
|
160
|
+
TASK_FLAG_RUN_ONLY_IF_LOGGED_ON = 0x2000
|
161
|
+
|
162
|
+
# Triggers
|
163
|
+
|
164
|
+
# The task will stop at some point in time
|
165
|
+
TASK_TRIGGER_FLAG_HAS_END_DATE = 0x1
|
166
|
+
|
167
|
+
# The task can be stopped at the end of the repetition period
|
168
|
+
TASK_TRIGGER_FLAG_KILL_AT_DURATION_END = 0x2
|
169
|
+
|
170
|
+
# The task trigger is disabled
|
171
|
+
TASK_TRIGGER_FLAG_DISABLED = 0x4
|
172
|
+
|
173
|
+
# Run Level Types
|
174
|
+
# Tasks will be run with the least privileges
|
175
|
+
TASK_RUNLEVEL_LUA = 0
|
176
|
+
# Tasks will be run with the highest privileges
|
177
|
+
TASK_RUNLEVEL_HIGHEST = 1
|
178
|
+
|
179
|
+
# Logon Types
|
180
|
+
# Used for non-NT credentials
|
181
|
+
TASK_LOGON_NONE = 0
|
182
|
+
# Use a password for logging on the user
|
183
|
+
TASK_LOGON_PASSWORD = 1
|
184
|
+
# The service will log the user on using Service For User
|
185
|
+
TASK_LOGON_S4U = 2
|
186
|
+
# Task will be run only in an existing interactive session
|
187
|
+
TASK_LOGON_INTERACTIVE_TOKEN = 3
|
188
|
+
# Group activation. The groupId field specifies the group
|
189
|
+
TASK_LOGON_GROUP = 4
|
190
|
+
# When Local System, Local Service, or Network Service account is
|
191
|
+
# being used as a security context to run the task
|
192
|
+
TASK_LOGON_SERVICE_ACCOUNT = 5
|
193
|
+
# Not in use; currently identical to TASK_LOGON_PASSWORD
|
194
|
+
TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD = 6
|
195
|
+
|
196
|
+
|
197
|
+
TASK_MAX_RUN_TIMES = 1440
|
198
|
+
TASKS_TO_RETRIEVE = 5
|
199
|
+
|
200
|
+
# Task creation
|
201
|
+
|
202
|
+
TASK_VALIDATE_ONLY = 0x1
|
203
|
+
TASK_CREATE = 0x2
|
204
|
+
TASK_UPDATE = 0x4
|
205
|
+
TASK_CREATE_OR_UPDATE = 0x6
|
206
|
+
TASK_DISABLE = 0x8
|
207
|
+
TASK_DONT_ADD_PRINCIPAL_ACE = 0x10
|
208
|
+
TASK_IGNORE_REGISTRATION_TRIGGERS = 0x20
|
209
|
+
|
210
|
+
# Priority classes
|
211
|
+
|
212
|
+
REALTIME_PRIORITY_CLASS = 0
|
213
|
+
HIGH_PRIORITY_CLASS = 1
|
214
|
+
ABOVE_NORMAL_PRIORITY_CLASS = 2 # Or 3
|
215
|
+
NORMAL_PRIORITY_CLASS = 4 # Or 5, 6
|
216
|
+
BELOW_NORMAL_PRIORITY_CLASS = 7 # Or 8
|
217
|
+
IDLE_PRIORITY_CLASS = 9 # Or 10
|
218
|
+
|
219
|
+
CLSCTX_INPROC_SERVER = 0x1
|
220
|
+
CLSID_CTask = [0x148BD520,0xA2AB,0x11CE,0xB1,0x1F,0x00,0xAA,0x00,0x53,0x05,0x03].pack('LSSC8')
|
221
|
+
CLSID_CTaskScheduler = [0x148BD52A,0xA2AB,0x11CE,0xB1,0x1F,0x00,0xAA,0x00,0x53,0x05,0x03].pack('LSSC8')
|
222
|
+
IID_ITaskScheduler = [0x148BD527,0xA2AB,0x11CE,0xB1,0x1F,0x00,0xAA,0x00,0x53,0x05,0x03].pack('LSSC8')
|
223
|
+
IID_ITask = [0x148BD524,0xA2AB,0x11CE,0xB1,0x1F,0x00,0xAA,0x00,0x53,0x05,0x03].pack('LSSC8')
|
224
|
+
IID_IPersistFile = [0x0000010b,0x0000,0x0000,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46].pack('LSSC8')
|
225
|
+
|
226
|
+
# Days of month
|
227
|
+
|
228
|
+
TASK_FIRST = 0x01
|
229
|
+
TASK_SECOND = 0x02
|
230
|
+
TASK_THIRD = 0x04
|
231
|
+
TASK_FOURTH = 0x08
|
232
|
+
TASK_FIFTH = 0x10
|
233
|
+
TASK_SIXTH = 0x20
|
234
|
+
TASK_SEVENTH = 0x40
|
235
|
+
TASK_EIGHTH = 0x80
|
236
|
+
TASK_NINETH = 0x100
|
237
|
+
TASK_TENTH = 0x200
|
238
|
+
TASK_ELEVENTH = 0x400
|
239
|
+
TASK_TWELFTH = 0x800
|
240
|
+
TASK_THIRTEENTH = 0x1000
|
241
|
+
TASK_FOURTEENTH = 0x2000
|
242
|
+
TASK_FIFTEENTH = 0x4000
|
243
|
+
TASK_SIXTEENTH = 0x8000
|
244
|
+
TASK_SEVENTEENTH = 0x10000
|
245
|
+
TASK_EIGHTEENTH = 0x20000
|
246
|
+
TASK_NINETEENTH = 0x40000
|
247
|
+
TASK_TWENTIETH = 0x80000
|
248
|
+
TASK_TWENTY_FIRST = 0x100000
|
249
|
+
TASK_TWENTY_SECOND = 0x200000
|
250
|
+
TASK_TWENTY_THIRD = 0x400000
|
251
|
+
TASK_TWENTY_FOURTH = 0x800000
|
252
|
+
TASK_TWENTY_FIFTH = 0x1000000
|
253
|
+
TASK_TWENTY_SIXTH = 0x2000000
|
254
|
+
TASK_TWENTY_SEVENTH = 0x4000000
|
255
|
+
TASK_TWENTY_EIGHTH = 0x8000000
|
256
|
+
TASK_TWENTY_NINTH = 0x10000000
|
257
|
+
TASK_THIRTYETH = 0x20000000
|
258
|
+
TASK_THIRTY_FIRST = 0x40000000
|
259
|
+
TASK_LAST = 0x80000000
|
260
|
+
end
|
261
|
+
end
|
262
|
+
end
|
263
|
+
end
|
264
|
+
|
265
|
+
begin
|
266
|
+
require 'win32/windows/constants'
|
267
|
+
rescue LoadError
|
268
|
+
module Windows
|
269
|
+
TaskSchedulerConstants = RSpec::Puppet::Windows::TaskSchedulerConstants
|
270
|
+
end
|
271
|
+
end
|
data/lib/rspec-puppet/setup.rb
CHANGED
@@ -1,7 +1,4 @@
|
|
1
1
|
require 'puppet'
|
2
|
-
if Puppet.version.to_f >= 4.0
|
3
|
-
require 'puppet/pops'
|
4
|
-
end
|
5
2
|
require 'fileutils'
|
6
3
|
|
7
4
|
module RSpec::Puppet
|
@@ -87,7 +84,8 @@ END
|
|
87
84
|
def self.get_module_name_from_file(file)
|
88
85
|
# FIXME: see discussion at
|
89
86
|
# https://github.com/rodjek/rspec-puppet/issues/290
|
90
|
-
if Puppet.version.to_f >= 4.0
|
87
|
+
if Puppet.version.to_f >= 4.0 || RSpec.configuration.parser == 'future'
|
88
|
+
require 'puppet/pops'
|
91
89
|
p = Puppet::Pops::Parser::Lexer2.new
|
92
90
|
else
|
93
91
|
p = Puppet::Parser::Lexer.new
|
data/lib/rspec-puppet/support.rb
CHANGED
@@ -63,7 +63,7 @@ module RSpec::Puppet
|
|
63
63
|
value.to_s.downcase == 'windows' ? :windows : :posix
|
64
64
|
}
|
65
65
|
|
66
|
-
['operatingsystem', 'osfamily'
|
66
|
+
['operatingsystem', 'osfamily'].each do |os_fact|
|
67
67
|
return from_value.call(test_facts[os_fact]) if test_facts.key?(os_fact)
|
68
68
|
end
|
69
69
|
|
@@ -410,7 +410,7 @@ module RSpec::Puppet
|
|
410
410
|
def stub_facts!(facts)
|
411
411
|
Puppet.settings[:autosign] = false
|
412
412
|
Facter.clear
|
413
|
-
facts.each { |k, v| Facter.add(k) { setcode { v } } }
|
413
|
+
facts.each { |k, v| Facter.add(k, :weight => 999) { setcode { v } } }
|
414
414
|
end
|
415
415
|
|
416
416
|
def build_catalog(*args)
|
@@ -51,7 +51,7 @@ task :release_test do
|
|
51
51
|
|
52
52
|
Dir.chdir(module_dir) do
|
53
53
|
print ' Installing dependencies... '
|
54
|
-
bundle_install_output, status = Open3.capture2e('bundle', 'install', '--path', 'vendor/gems')
|
54
|
+
bundle_install_output, status = Open3.capture2e('bundle', 'install', '--path', '../vendor/gems')
|
55
55
|
if status.success?
|
56
56
|
puts 'Done'
|
57
57
|
else
|
@@ -90,7 +90,7 @@ task :release_test do
|
|
90
90
|
puts 'Done'
|
91
91
|
|
92
92
|
print ' Installing dependencies... '
|
93
|
-
_, status = Open3.capture2e('bundle', 'install', '--path', 'vendor/gems')
|
93
|
+
_, status = Open3.capture2e('bundle', 'install', '--path', '../vendor/gems')
|
94
94
|
if status.success?
|
95
95
|
puts 'Done'
|
96
96
|
else
|
@@ -115,8 +115,8 @@ task :release_test do
|
|
115
115
|
end
|
116
116
|
|
117
117
|
json_regex = %r{\{(?:[^{}]|(?:\g<0>))*\}}x
|
118
|
-
baseline_results = JSON.parse(baseline_output.scan(json_regex).
|
119
|
-
head_results = JSON.parse(head_output.scan(json_regex).
|
118
|
+
baseline_results = JSON.parse(baseline_output.scan(json_regex).find { |r| r.include?('summary_line') })
|
119
|
+
head_results = JSON.parse(head_output.scan(json_regex).find { |r| r.include?('summary_line') })
|
120
120
|
if head_results['summary_line'] == baseline_results['summary_line']
|
121
121
|
puts " PASS: #{head_results['summary_line']}"
|
122
122
|
else
|
@@ -128,7 +128,7 @@ task :release_test do
|
|
128
128
|
end
|
129
129
|
end
|
130
130
|
|
131
|
-
class GemfileRewrite < Parser::
|
131
|
+
class GemfileRewrite < Parser::TreeRewriter
|
132
132
|
def on_send(node)
|
133
133
|
_, method_name, *args = *node
|
134
134
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.6.
|
4
|
+
version: 2.6.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Sharpe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-06-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -62,6 +62,7 @@ files:
|
|
62
62
|
- lib/rspec-puppet/monkey_patches.rb
|
63
63
|
- lib/rspec-puppet/monkey_patches/win32/registry.rb
|
64
64
|
- lib/rspec-puppet/monkey_patches/win32/taskscheduler.rb
|
65
|
+
- lib/rspec-puppet/monkey_patches/windows/taskschedulerconstants.rb
|
65
66
|
- lib/rspec-puppet/rake_task.rb
|
66
67
|
- lib/rspec-puppet/raw_string.rb
|
67
68
|
- lib/rspec-puppet/setup.rb
|
@@ -88,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
88
89
|
version: '0'
|
89
90
|
requirements: []
|
90
91
|
rubyforge_project:
|
91
|
-
rubygems_version: 2.6.
|
92
|
+
rubygems_version: 2.6.14.1
|
92
93
|
signing_key:
|
93
94
|
specification_version: 4
|
94
95
|
summary: RSpec tests for your Puppet manifests
|