Puppet: значение переменной в тестовом файле

Я пишу несколько тестов для puppet, и в моем файле init_spec.rb я хочу использовать переменную, объявленную в файле default_facts.yml. Как я могу импортировать значение этой переменной, не объявляя его в файле init_spec.rb.

Заранее спасибо!


person DOM    schedule 29.01.2019    source источник


Ответы (1)


В общем, вы сможете получить доступ к этим данным внутри объекта RSpec.configuration.

Предположим, у вас есть файл фактов по умолчанию, подобный этому:

▶ cat spec/default_facts.yml 
# Use default_module_facts.yml for module specific facts.
#
# Facts specified here will override the values provided by rspec-puppet-facts.
---
concat_basedir: "/tmp"
ipaddress: "172.16.254.254"
is_pe: false
macaddress: "AA:AA:AA:AA:AA:AA"

Вы можете обращаться к этим данным в своих тестах следующим образом:

it 'ipaddress default fact' do
  expect(RSpec.configuration.default_facts['ipaddress']).to eq '172.16.254.254'
end

(Я предполагаю, конечно, что ваш файл фактов по умолчанию был настроен правильно, например, PDK.)

Если вместо этого вам просто нужен общий способ доступа к данным в любом произвольном файле YAML, вы также можете сделать это:

▶ cat spec/fixtures/mydata.yml 
---
foo: bar

Затем в своих тестах вы можете написать:

require 'yaml'
mydata = YAML.load_file('spec/fixtures/mydata.yml')

describe 'test' do
  it 'foo' do
    expect(mydata['foo']).to eq 'bar'
  end
end
person Alex Harvey    schedule 29.01.2019