From 132067a2012fb6bdabd23b52440d7e6b36e49e0b Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Mon, 13 Jun 2011 22:06:08 -0500 Subject: [PATCH] Skip pygments tests if pygmentize isn't available --- lib/linguist/lexer.rb | 10 ++++++++++ test/test_blob.rb | 16 +++++++++------- test/test_language.rb | 24 +++++++++++++----------- test/test_lexer.rb | 24 +++++++++++++----------- 4 files changed, 45 insertions(+), 29 deletions(-) diff --git a/lib/linguist/lexer.rb b/lib/linguist/lexer.rb index 55119036..93537352 100644 --- a/lib/linguist/lexer.rb +++ b/lib/linguist/lexer.rb @@ -8,6 +8,16 @@ module Linguist @name_index = {} @alias_index = {} + # Internal: Test if system has Pygments + # + # Only used in tests to disable tests that require Pygments. + # + # Returns true if `pygmentize` in is PATH otherwise false. + def self.has_pygments? + `which #{Albino.bin}` + $?.success? + end + # Public: Get all Lexers # # Returns an Array of Lexers diff --git a/test/test_blob.rb b/test/test_blob.rb index 5872326b..8c87a368 100644 --- a/test/test_blob.rb +++ b/test/test_blob.rb @@ -289,19 +289,21 @@ class TestBlob < Test::Unit::TestCase assert_equal nil, blob("foo.rb").shebang_language end - def test_colorize - assert_equal <<-HTML, blob("foo.rb").colorize + if Lexer.has_pygments? + def test_colorize + assert_equal <<-HTML, blob("foo.rb").colorize
module Foo
 end
 
- HTML - end + HTML + end - def test_colorize_without_wrapper - assert_equal <<-HTML, blob("foo.rb").colorize_without_wrapper + def test_colorize_without_wrapper + assert_equal <<-HTML, blob("foo.rb").colorize_without_wrapper module Foo end - HTML + HTML + end end end diff --git a/test/test_language.rb b/test/test_language.rb index d22920c2..7050ddbd 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -337,31 +337,33 @@ class TestLanguage < Test::Unit::TestCase assert !Language['SQL'].searchable? end - def test_colorize - assert_equal <<-HTML, Language['Text'].colorize("Hello") + if Lexer.has_pygments? + def test_colorize + assert_equal <<-HTML, Language['Text'].colorize("Hello")
Hello
 
- HTML + HTML - assert_equal <<-HTML, Language['Ruby'].colorize("def foo\n 'foo'\nend\n") + assert_equal <<-HTML, Language['Ruby'].colorize("def foo\n 'foo'\nend\n")
def foo
   'foo'
 end
 
- HTML - end + HTML + end - def test_colorize_without_wrapper - assert_equal <<-HTML, Language['Text'].colorize_without_wrapper("Hello") + def test_colorize_without_wrapper + assert_equal <<-HTML, Language['Text'].colorize_without_wrapper("Hello") Hello - HTML + HTML - assert_equal <<-HTML, Language['Ruby'].colorize_without_wrapper("def foo\n 'foo'\nend\n") + assert_equal <<-HTML, Language['Ruby'].colorize_without_wrapper("def foo\n 'foo'\nend\n") def foo 'foo' end - HTML + HTML + end end end diff --git a/test/test_lexer.rb b/test/test_lexer.rb index 120726f1..06e335f2 100644 --- a/test/test_lexer.rb +++ b/test/test_lexer.rb @@ -50,31 +50,33 @@ class TestLexer < Test::Unit::TestCase assert !Lexer['Ruby'].eql?(Lexer.new('Ruby')) end - def test_colorize - assert_equal <<-HTML, Lexer['Text only'].colorize("Hello") + if Lexer.has_pygments? + def test_colorize + assert_equal <<-HTML, Lexer['Text only'].colorize("Hello")
Hello
 
- HTML + HTML - assert_equal <<-HTML, Lexer['Ruby'].colorize("def foo\n 'foo'\nend\n") + assert_equal <<-HTML, Lexer['Ruby'].colorize("def foo\n 'foo'\nend\n")
def foo
   'foo'
 end
 
- HTML - end + HTML + end - def test_colorize_without_wrapper - assert_equal <<-HTML, Lexer['Text only'].colorize_without_wrapper("Hello") + def test_colorize_without_wrapper + assert_equal <<-HTML, Lexer['Text only'].colorize_without_wrapper("Hello") Hello - HTML + HTML - assert_equal <<-HTML, Lexer['Ruby'].colorize_without_wrapper("def foo\n 'foo'\nend\n") + assert_equal <<-HTML, Lexer['Ruby'].colorize_without_wrapper("def foo\n 'foo'\nend\n") def foo 'foo' end - HTML + HTML + end end end