diff --git a/lib/vagrant/box_collection.rb b/lib/vagrant/box_collection.rb index d06147ae6..16104b0f8 100644 --- a/lib/vagrant/box_collection.rb +++ b/lib/vagrant/box_collection.rb @@ -133,7 +133,7 @@ module Vagrant results = [] @logger.debug("Finding all boxes in: #{@directory}") - @directory.children(true).each do |child| + @directory.children(true).select(&:directory?).each do |child| box_name = child.basename.to_s # If this is a V1 box, we still return that name, but specify diff --git a/test/unit/vagrant/box_collection_test.rb b/test/unit/vagrant/box_collection_test.rb index 34acc4702..26e92cc7c 100644 --- a/test/unit/vagrant/box_collection_test.rb +++ b/test/unit/vagrant/box_collection_test.rb @@ -135,6 +135,11 @@ describe Vagrant::BoxCollection do results = instance.all.sort results.should == [["bar", :virtualbox, :v1], ["foo", :vmware]] end + + it 'does not raise an exception when a file appears in the boxes dir' do + Tempfile.new('a_file', environment.boxes_dir) + expect { instance.all }.to_not raise_error + end end describe "finding" do