aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test
diff options
context:
space:
mode:
authorMarkus Reiter2017-02-27 16:48:38 +0100
committerGitHub2017-02-27 16:48:38 +0100
commitdbdd39b10887de615e637756182ed4d39ebe0dc7 (patch)
tree75b9d645833690d086c58cbb8f99aacfe4372c84 /Library/Homebrew/test
parentf9e53e4b4d24d62e0a18d3c430dafc9d0d255093 (diff)
parent125abd228cba009a1fc9c29b626f6ce0fdfc91ff (diff)
downloadbrew-dbdd39b10887de615e637756182ed4d39ebe0dc7.tar.bz2
Merge pull request #2213 from reitermarkus/spec-commands
Convert `brew commands` test to spec.
Diffstat (limited to 'Library/Homebrew/test')
-rw-r--r--Library/Homebrew/test/cmd/commands_spec.rb85
-rw-r--r--Library/Homebrew/test/commands_test.rb77
2 files changed, 85 insertions, 77 deletions
diff --git a/Library/Homebrew/test/cmd/commands_spec.rb b/Library/Homebrew/test/cmd/commands_spec.rb
index f42072956..32d07a0bc 100644
--- a/Library/Homebrew/test/cmd/commands_spec.rb
+++ b/Library/Homebrew/test/cmd/commands_spec.rb
@@ -1,3 +1,7 @@
+require "cmd/command"
+require "cmd/commands"
+require "fileutils"
+
describe "brew commands", :integration_test do
it "prints a list of all available commands" do
expect { brew "commands" }
@@ -5,3 +9,84 @@ describe "brew commands", :integration_test do
.and be_a_success
end
end
+
+RSpec.shared_context "custom internal commands" do
+ let(:cmds) do
+ [
+ # internal commands
+ HOMEBREW_LIBRARY_PATH/"cmd/rbcmd.rb",
+ HOMEBREW_LIBRARY_PATH/"cmd/shcmd.sh",
+
+ # internal developer-commands
+ HOMEBREW_LIBRARY_PATH/"dev-cmd/rbdevcmd.rb",
+ HOMEBREW_LIBRARY_PATH/"dev-cmd/shdevcmd.sh",
+ ]
+ end
+
+ around(:each) do |example|
+ begin
+ cmds.each do |f|
+ FileUtils.touch f
+ end
+
+ example.run
+ ensure
+ FileUtils.rm_f cmds
+ end
+ end
+end
+
+describe Homebrew do
+ include_context "custom internal commands"
+
+ specify "::internal_commands" do
+ cmds = described_class.internal_commands
+ expect(cmds).to include("rbcmd"), "Ruby commands files should be recognized"
+ expect(cmds).to include("shcmd"), "Shell commands files should be recognized"
+ expect(cmds).not_to include("rbdevcmd"), "Dev commands shouldn't be included"
+ end
+
+ specify "::internal_developer_commands" do
+ cmds = described_class.internal_developer_commands
+ expect(cmds).to include("rbdevcmd"), "Ruby commands files should be recognized"
+ expect(cmds).to include("shdevcmd"), "Shell commands files should be recognized"
+ expect(cmds).not_to include("rbcmd"), "Non-dev commands shouldn't be included"
+ end
+
+ specify "::external_commands" do
+ Dir.mktmpdir do |dir|
+ %w[brew-t1 brew-t2.rb brew-t3.py].each do |file|
+ path = "#{dir}/#{file}"
+ FileUtils.touch path
+ FileUtils.chmod 0755, path
+ end
+
+ FileUtils.touch "#{dir}/brew-t4"
+
+ ENV["PATH"] += "#{File::PATH_SEPARATOR}#{dir}"
+ cmds = described_class.external_commands
+
+ expect(cmds).to include("t1"), "Executable files should be included"
+ expect(cmds).to include("t2"), "Executable Ruby files should be included"
+ expect(cmds).not_to include("t3"), "Executable files with a non Ruby extension shoudn't be included"
+ expect(cmds).not_to include("t4"), "Non-executable files shouldn't be included"
+ end
+ end
+end
+
+describe Commands do
+ include_context "custom internal commands"
+
+ describe "::path" do
+ specify "returns the path for an internal command" do
+ expect(described_class.path("rbcmd")).to eq(HOMEBREW_LIBRARY_PATH/"cmd/rbcmd.rb")
+ expect(described_class.path("shcmd")).to eq(HOMEBREW_LIBRARY_PATH/"cmd/shcmd.sh")
+ expect(described_class.path("idontexist1234")).to be nil
+ end
+
+ specify "returns the path for an internal developer-command" do
+ expect(described_class.path("rbdevcmd")).to eq(HOMEBREW_LIBRARY_PATH/"dev-cmd/rbdevcmd.rb")
+ expect(described_class.path("shdevcmd")).to eq(HOMEBREW_LIBRARY_PATH/"dev-cmd/shdevcmd.sh")
+ end
+ end
+end
diff --git a/Library/Homebrew/test/commands_test.rb b/Library/Homebrew/test/commands_test.rb
deleted file mode 100644
index da88ee2d5..000000000
--- a/Library/Homebrew/test/commands_test.rb
+++ /dev/null
@@ -1,77 +0,0 @@
-require "testing_env"
-require "cmd/command"
-require "cmd/commands"
-require "fileutils"
-require "testing_env"
-
-class CommandsTests < Homebrew::TestCase
- def setup
- super
- @cmds = [
- # internal commands
- HOMEBREW_LIBRARY_PATH/"cmd/rbcmd.rb",
- HOMEBREW_LIBRARY_PATH/"cmd/shcmd.sh",
-
- # internal development commands
- HOMEBREW_LIBRARY_PATH/"dev-cmd/rbdevcmd.rb",
- HOMEBREW_LIBRARY_PATH/"dev-cmd/shdevcmd.sh",
- ]
-
- @cmds.each { |f| FileUtils.touch f }
- end
-
- def teardown
- @cmds.each(&:unlink)
- super
- end
-
- def test_internal_commands
- cmds = Homebrew.internal_commands
- assert cmds.include?("rbcmd"), "Ruby commands files should be recognized"
- assert cmds.include?("shcmd"), "Shell commands files should be recognized"
- refute cmds.include?("rbdevcmd"), "Dev commands shouldn't be included"
- end
-
- def test_internal_developer_commands
- cmds = Homebrew.internal_developer_commands
- assert cmds.include?("rbdevcmd"), "Ruby commands files should be recognized"
- assert cmds.include?("shdevcmd"), "Shell commands files should be recognized"
- refute cmds.include?("rbcmd"), "Non-dev commands shouldn't be included"
- end
-
- def test_external_commands
- mktmpdir do |dir|
- %w[brew-t1 brew-t2.rb brew-t3.py].each do |file|
- path = "#{dir}/#{file}"
- FileUtils.touch path
- FileUtils.chmod 0755, path
- end
-
- FileUtils.touch "#{dir}/brew-t4"
-
- ENV["PATH"] += "#{File::PATH_SEPARATOR}#{dir}"
- cmds = Homebrew.external_commands
-
- assert cmds.include?("t1"), "Executable files should be included"
- assert cmds.include?("t2"), "Executable Ruby files should be included"
- refute cmds.include?("t3"),
- "Executable files with a non Ruby extension shoudn't be included"
- refute cmds.include?("t4"), "Non-executable files shouldn't be included"
- end
- end
-
- def test_internal_command_path
- assert_equal HOMEBREW_LIBRARY_PATH/"cmd/rbcmd.rb",
- Commands.path("rbcmd")
- assert_equal HOMEBREW_LIBRARY_PATH/"cmd/shcmd.sh",
- Commands.path("shcmd")
- assert_nil Commands.path("idontexist1234")
- end
-
- def test_internal_dev_command_path
- assert_equal HOMEBREW_LIBRARY_PATH/"dev-cmd/rbdevcmd.rb",
- Commands.path("rbdevcmd")
- assert_equal HOMEBREW_LIBRARY_PATH/"dev-cmd/shdevcmd.sh",
- Commands.path("shdevcmd")
- end
-end