Sha256: d8b5412bd01764937ccc7268c7b4d03a615e9b5f561d16ae5d18eda6c5d6109a

Contents?: true

Size: 1.21 KB

Versions: 11

Compression:

Stored size: 1.21 KB

Contents

module UnitExampleGroup
  def self.included(base)
    base.metadata[:type] = :unit
    base.before do
      Object.any_instance.stub(:system) { |*args, &block|
        UnitExampleGroup.prevent_system_calls(*args, &block)
      }
      Object.any_instance.stub(:`) { |*args, &block|
        UnitExampleGroup.prevent_system_calls(*args, &block)
      }
      Object.any_instance.stub(:exec) { |*args, &block|
        UnitExampleGroup.prevent_system_calls(*args, &block)
      }
      Object.any_instance.stub(:fork) { |*args, &block|
        UnitExampleGroup.prevent_system_calls(*args, &block)
      }
      Object.any_instance.stub(:spawn) { |*args, &block|
        UnitExampleGroup.prevent_system_calls(*args, &block)
      }
      require 'vagrant/util/subprocess'
      Vagrant::Util::Subprocess.stub(: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

11 entries across 11 versions & 1 rubygems

Version Path
vagrant-lxc-0.8.0 spec/unit/support/unit_example_group.rb
vagrant-lxc-0.7.0 spec/unit/support/unit_example_group.rb
vagrant-lxc-0.6.4 spec/unit/support/unit_example_group.rb
vagrant-lxc-0.6.3 spec/unit/support/unit_example_group.rb
vagrant-lxc-0.6.2 spec/unit/support/unit_example_group.rb
vagrant-lxc-0.6.1 spec/unit/support/unit_example_group.rb
vagrant-lxc-0.6.0 spec/unit/support/unit_example_group.rb
vagrant-lxc-0.5.0 spec/unit/support/unit_example_group.rb
vagrant-lxc-0.4.0 spec/unit/support/unit_example_group.rb
vagrant-lxc-0.3.4 spec/unit/support/unit_example_group.rb
vagrant-lxc-0.3.3 spec/unit/support/unit_example_group.rb