Chefspe c: атрибут переопределения не работает - PullRequest
1 голос
/ 14 февраля 2020

Я пытаюсь проверить свой spe c тест с bundle exec rspec для следующего теста

require 'spec_helper'

describe 'my_recipe::default' do
  windows_platforms = {
    windows: %w(2008R2 2012 2012R2 2016 2019)
  }

  windows_platforms.each do |platform, versions|
    versions.each do |version|
      context "When all attributes are default, on #{platform} #{version}" do
        let(:chef_run) do
          runner = ChefSpec::ServerRunner.new(platform: platform.to_s, version: version) do |node|
            node.override['domain'] = 'mydomain.com'
          end
          runner.converge(described_recipe)
        end

        it 'converges successfully' do
          expect { chef_run }.to_not raise_error
        end
      end
    end
  end
end

Вот пример моего файла атрибутов по умолчанию:

default['wsus'] =
  case node['domain']
  when 'mydomain.com'
    "do something"
  else
    raise 'Domain cannot be determined.'
  end

From то, что я понимаю, «mydomain.com» должно быть назначено по умолчанию ['domain'], но похоже, что это не так.

Вот ошибка, которую я получаю:

expected no Exception, got #<RuntimeError: Domain cannot be determined.> with backtrace:

У кого-нибудь есть предложение, почему тест не принимает переопределенный атрибут?

ps Если я не понимаю, пожалуйста, извините. Это мой первый пост на stackoverflow: (

1 Ответ

0 голосов
/ 16 февраля 2020

Ваш код в порядке, и он должен работать должным образом со многими другими атрибутами, но не с domain. Точка - domain, специальная - это атрибут c, установленный автоматически, установленным Ohai (или в тестовом примере Fauxhai), и имеет максимальный приоритет, который не может быть перезаписан атрибутом override. Чтобы смоделировать автоматические c атрибуты, вам нужен ключ automatic.

runner = ChefSpec::ServerRunner.new(platform: platform.to_s, version: version) do |node|
  node.automatic['domain'] = 'mydomain.com'
end

Весь список автоматических c атрибутов доступен в Документах шеф-повара на Ohai .

...