Sha256: fcb162517ccf369700ea438521b728bee2d2295783456e43f7ca9c416018c164

Contents?: true

Size: 1.34 KB

Versions: 18

Compression:

Stored size: 1.34 KB

Contents

module UnitExampleGroup
  def self.included(base)
    base.metadata[:type] = :unit
    base.before do
      allow_any_instance_of(Object).to receive(:system) { |instance, *args, &block|
        UnitExampleGroup.prevent_system_calls(*args, &block)
      }
      allow_any_instance_of(Object).to receive(:`) { |instance, *args, &block|
        UnitExampleGroup.prevent_system_calls(*args, &block)
      }
      allow_any_instance_of(Object).to receive(:exec) { |instance, *args, &block|
        UnitExampleGroup.prevent_system_calls(*args, &block)
      }
      allow_any_instance_of(Object).to receive(:fork) { |instance, *args, &block|
        UnitExampleGroup.prevent_system_calls(*args, &block)
      }
      allow_any_instance_of(Object).to receive(:spawn) { |instance, *args, &block|
        UnitExampleGroup.prevent_system_calls(*args, &block)
      }
      require 'vagrant/util/subprocess'
      allow(Vagrant::Util::Subprocess).to receive(:execute) { |*args, &block|
        UnitExampleGroup.prevent_system_calls(*args, &block)
      }
    end
  end

  def self.prevent_system_calls(*args, &block)
    args.pop if args.last.is_a?(Hash)

    raise <<-MSG
Somehow your code under test is trying to execute a command on your system,
please stub it out or move your spec code to an acceptance spec.

Block:   #{block.inspect}
Command: "#{args.join(' ')}"
    MSG
  end
end

Version data entries

18 entries across 18 versions & 2 rubygems

Version Path
vagrant-lxc-1.4.3 spec/unit/support/unit_example_group.rb
vagrant-lxc-1.4.2 spec/unit/support/unit_example_group.rb
vagrant-lxc-1.4.1 spec/unit/support/unit_example_group.rb
vagrant-lxc-2.1-patch-1.4.0 spec/unit/support/unit_example_group.rb
vagrant-lxc-1.4.0 spec/unit/support/unit_example_group.rb
vagrant-lxc-1.3.1 spec/unit/support/unit_example_group.rb
vagrant-lxc-1.3.0 spec/unit/support/unit_example_group.rb
vagrant-lxc-1.2.4 spec/unit/support/unit_example_group.rb
vagrant-lxc-1.2.3 spec/unit/support/unit_example_group.rb
vagrant-lxc-1.2.2 spec/unit/support/unit_example_group.rb
vagrant-lxc-1.2.1 spec/unit/support/unit_example_group.rb
vagrant-lxc-1.2.0 spec/unit/support/unit_example_group.rb
vagrant-lxc-1.1.0 spec/unit/support/unit_example_group.rb
vagrant-lxc-1.0.1 spec/unit/support/unit_example_group.rb
vagrant-lxc-1.0.0 spec/unit/support/unit_example_group.rb
vagrant-lxc-1.0.0.alpha.3 spec/unit/support/unit_example_group.rb
vagrant-lxc-1.0.0.alpha.2 spec/unit/support/unit_example_group.rb
vagrant-lxc-1.0.0.alpha.1 spec/unit/support/unit_example_group.rb