Sha256: d7631b6c369be37625b1e1112fed3cda180c7cc8d9b6534b37cff1574663b744

Contents?: true

Size: 1.86 KB

Versions: 23

Compression:

Stored size: 1.86 KB

Contents

module ForemanAnsible
  # Test for the facts importer - only verify that given
  # a set of facts it's able to import them
  class FactImporterTest < ActiveSupport::TestCase
    setup do
      @host = FactoryBot.build(:host)
    end

    test 'add new facts adds all fact names in the fixture' do
      @fact_importer = FactImporter.new(@host, facts_json)
      facts_to_be_added = FactSparser.sparse(facts_json[:ansible_facts]).keys +
                          FactSparser.unsparse(facts_json[:ansible_facts]).keys
      @fact_importer.send(:add_new_facts)
      assert((facts_to_be_added - FactName.all.map(&:name)).empty?)
    end

    test 'missing_facts returns facts we do not have in the database' do
      @fact_importer = FactImporter.new(@host, facts_json)
      @fact_importer.expects(:db_facts).
        returns('ansible_cmdline' => 'fakevalue').twice
      refute @fact_importer.send(:missing_facts).include?('ansible_cmdline')
    end

    describe '#add_fact_value' do
      setup do
        @fact_importer = FactImporter.new(@host, :ansible_facts => {})
      end
      test 'does not add existing facts' do
        existing_fact = FactoryBot.build(:fact_name)
        @fact_importer.expects(:missing_facts).returns([])
        assert_nil @fact_importer.send(:add_fact_value, nil, existing_fact)
      end

      test 'adds missing facts' do
        missing_fact = FactoryBot.build(:fact_name)
        @fact_importer.expects(:missing_facts).returns([missing_fact.name])
        @fact_importer.counters[:added] = 0
        assert_difference('@host.fact_values.count', 1) do
          @fact_importer.send(:add_fact_value, 'missing_value', missing_fact)
          @host.save
          # We have to save the host in order to ensure @host.fact_values.count
          # resolves properly (otherwise) :add_fact_value just won't save the
          # relation
        end
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
foreman_ansible-2.2.14 test/unit/services/fact_importer_test.rb
foreman_ansible-2.2.13 test/unit/services/fact_importer_test.rb
foreman_ansible-2.2.12 test/unit/services/fact_importer_test.rb
foreman_ansible-2.2.11 test/unit/services/fact_importer_test.rb
foreman_ansible-2.2.10 test/unit/services/fact_importer_test.rb
foreman_ansible-2.2.9 test/unit/services/fact_importer_test.rb
foreman_ansible-2.2.8 test/unit/services/fact_importer_test.rb
foreman_ansible-2.2.7 test/unit/services/fact_importer_test.rb
foreman_ansible-2.2.6 test/unit/services/fact_importer_test.rb
foreman_ansible-2.2.5 test/unit/services/fact_importer_test.rb
foreman_ansible-2.2.4 test/unit/services/fact_importer_test.rb
foreman_ansible-2.2.3 test/unit/services/fact_importer_test.rb
foreman_ansible-2.2.2 test/unit/services/fact_importer_test.rb
foreman_ansible-2.2.1 test/unit/services/fact_importer_test.rb
foreman_ansible-2.2.0 test/unit/services/fact_importer_test.rb
foreman_ansible-2.1.2 test/unit/services/fact_importer_test.rb
foreman_ansible-2.1.1 test/unit/services/fact_importer_test.rb
foreman_ansible-2.0.4 test/unit/services/fact_importer_test.rb
foreman_ansible-2.0.3 test/unit/services/fact_importer_test.rb
foreman_ansible-2.0.2 test/unit/services/fact_importer_test.rb