Как переопределить hiera_data в rspec-puppet?

Допустим, у меня есть следующие тесты:

context 'test' do
  let(:hiera_data) { { :number => '2' } }

  it { should have_module__define_resource_count(2) }
end

context 'test2' do
  let(:hiera_data) { { :number => '10' } }

  it { should have_module__define_resource_count(10) }
end

Первый тест проходит успешно, но когда запускается второй тест, он терпит неудачу, потому что переменная hiera number по-прежнему равна 2.

Кажется, что let(:hiera_data) не может переопределить предыдущую объявленную переменную.

Согласно данному файлу сведений, он должен работать, если данные hiera установлены в разных файлах, но это не работает.

Как протестировать hiera несколько раз в одном спецификационном файле?


person 030    schedule 03.03.2015    source источник
comment
Можете ли вы вставить полный тест куда-нибудь?   -  person Felix Frank    schedule 04.03.2015
comment
@FelixFrank Вопрос обновлен   -  person 030    schedule 04.03.2015


Ответы (1)


Я столкнулся с этой же проблемой и некоторое время был в тупике. В конце концов я узнал, что информация hiera есть. Вы можете исправить это так:

let(:facts) {{ :cache_bust => Time.now }}

Так, например:

Кукольный код:

class example::bar {
  notify { 'bar': message => hiera('bar_message') }
}

rspec-кукольный код:

describe "example::bar" do

  let(:facts) {{ :cache_bust => Time.now }}

  describe "first in-line hiera_data test with a" do
    let(:hiera_data) { { :bar_message => "a" } }
    it { should contain_notify("bar").with_message("a") }
  end

  describe "second in-line hiera_data test with b" do
    let(:hiera_data) { { :bar_message => "b" } }
    it { should contain_notify("bar").with_message("b") }
  end
end

Это работает! У меня есть запрос на добавление в документацию. Вилка botfish самая последняя поддерживаемая вилка hiera-puppet-helper (см. примечание на оригинале)

person Peter Souter    schedule 04.03.2015