Module: BoltSpec::BoltContext

Included in:
Plans
Defined in:
lib/bolt_spec/bolt_context.rb

Instance Method Summary collapse

Instance Method Details

#allow_out_messageObject Also known as: allow_any_out_message

Does this belong here?



178
179
180
# File 'lib/bolt_spec/bolt_context.rb', line 178

def allow_out_message
  executor.stub_out_message.add_stub
end

#configObject

Override in your tests



143
144
145
146
147
148
149
# File 'lib/bolt_spec/bolt_context.rb', line 143

def config
  @config ||= begin
                conf = Bolt::Config.default
                conf.modulepath = [modulepath].flatten
                conf
              end
end

#executorObject



129
130
131
# File 'lib/bolt_spec/bolt_context.rb', line 129

def executor
  @executor ||= BoltSpec::Plans::MockExecutor.new(modulepath)
end

#expect_out_messageObject



183
184
185
# File 'lib/bolt_spec/bolt_context.rb', line 183

def expect_out_message
  allow_out_message.expect_call
end

#in_bolt_context(&block) ⇒ Object



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/bolt_spec/bolt_context.rb', line 101

def in_bolt_context(&block)
  setup
  old_modpath = RSpec.configuration.module_path
  old_tasks = Puppet[:tasks]

  # Set the things
  Puppet[:tasks] = true
  RSpec.configuration.module_path = [modulepath, Bolt::PAL::BOLTLIB_PATH].join(File::PATH_SEPARATOR)
  opts = {
    bolt_executor: executor,
    bolt_inventory: inventory,
    bolt_pdb_client: nil,
    apply_executor: nil
  }
  Puppet.override(opts, &block)

  # Unset the things
  RSpec.configuration.module_path = old_modpath
  Puppet[:tasks] = old_tasks
end

#inventoryObject



138
139
140
# File 'lib/bolt_spec/bolt_context.rb', line 138

def inventory
  @inventory ||= Bolt::Inventory.create_version(inventory_data, config.transport, config.transports, plugins)
end

#inventory_dataObject

Override in your tests



134
135
136
# File 'lib/bolt_spec/bolt_context.rb', line 134

def inventory_data
  {}
end

#modulepathObject

Override in your tests if needed



123
124
125
126
127
# File 'lib/bolt_spec/bolt_context.rb', line 123

def modulepath
  [RSpec.configuration.module_path]
rescue NoMethodError
  raise "RSpec.configuration.module_path not defined set up rspec puppet or define modulepath for this test"
end

#palObject



155
156
157
# File 'lib/bolt_spec/bolt_context.rb', line 155

def pal
  @pal ||= Bolt::PAL.new(config.modulepath, config.hiera_config, config.project.resource_types)
end

#pluginsObject



151
152
153
# File 'lib/bolt_spec/bolt_context.rb', line 151

def plugins
  @plugins ||= Bolt::Plugin.setup(config, pal)
end

#setupObject



93
94
95
96
97
98
99
# File 'lib/bolt_spec/bolt_context.rb', line 93

def setup
  unless @loaded
    # This is slow so don't do it until we have to
    Bolt::PAL.load_puppet
    @loaded = true
  end
end