Skip pygments tests if pygmentize isn't available

This commit is contained in:
Joshua Peek
2011-06-13 22:06:08 -05:00
parent f7233b8daf
commit 132067a201
4 changed files with 45 additions and 29 deletions

View File

@@ -8,6 +8,16 @@ module Linguist
@name_index = {} @name_index = {}
@alias_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 # Public: Get all Lexers
# #
# Returns an Array of Lexers # Returns an Array of Lexers

View File

@@ -289,19 +289,21 @@ class TestBlob < Test::Unit::TestCase
assert_equal nil, blob("foo.rb").shebang_language assert_equal nil, blob("foo.rb").shebang_language
end end
def test_colorize if Lexer.has_pygments?
assert_equal <<-HTML, blob("foo.rb").colorize def test_colorize
assert_equal <<-HTML, blob("foo.rb").colorize
<div class="highlight"><pre><span class="k">module</span> <span class="nn">Foo</span> <div class="highlight"><pre><span class="k">module</span> <span class="nn">Foo</span>
<span class="k">end</span> <span class="k">end</span>
</pre> </pre>
</div> </div>
HTML HTML
end end
def test_colorize_without_wrapper def test_colorize_without_wrapper
assert_equal <<-HTML, blob("foo.rb").colorize_without_wrapper assert_equal <<-HTML, blob("foo.rb").colorize_without_wrapper
<span class="k">module</span> <span class="nn">Foo</span> <span class="k">module</span> <span class="nn">Foo</span>
<span class="k">end</span> <span class="k">end</span>
HTML HTML
end
end end
end end

View File

@@ -337,31 +337,33 @@ class TestLanguage < Test::Unit::TestCase
assert !Language['SQL'].searchable? assert !Language['SQL'].searchable?
end end
def test_colorize if Lexer.has_pygments?
assert_equal <<-HTML, Language['Text'].colorize("Hello") def test_colorize
assert_equal <<-HTML, Language['Text'].colorize("Hello")
<div class="highlight"><pre>Hello <div class="highlight"><pre>Hello
</pre> </pre>
</div> </div>
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")
<div class="highlight"><pre><span class="k">def</span> <span class="nf">foo</span> <div class="highlight"><pre><span class="k">def</span> <span class="nf">foo</span>
<span class="s1">&#39;foo&#39;</span> <span class="s1">&#39;foo&#39;</span>
<span class="k">end</span> <span class="k">end</span>
</pre> </pre>
</div> </div>
HTML HTML
end end
def test_colorize_without_wrapper def test_colorize_without_wrapper
assert_equal <<-HTML, Language['Text'].colorize_without_wrapper("Hello") assert_equal <<-HTML, Language['Text'].colorize_without_wrapper("Hello")
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")
<span class="k">def</span> <span class="nf">foo</span> <span class="k">def</span> <span class="nf">foo</span>
<span class="s1">&#39;foo&#39;</span> <span class="s1">&#39;foo&#39;</span>
<span class="k">end</span> <span class="k">end</span>
HTML HTML
end
end end
end end

View File

@@ -50,31 +50,33 @@ class TestLexer < Test::Unit::TestCase
assert !Lexer['Ruby'].eql?(Lexer.new('Ruby')) assert !Lexer['Ruby'].eql?(Lexer.new('Ruby'))
end end
def test_colorize if Lexer.has_pygments?
assert_equal <<-HTML, Lexer['Text only'].colorize("Hello") def test_colorize
assert_equal <<-HTML, Lexer['Text only'].colorize("Hello")
<div class="highlight"><pre>Hello <div class="highlight"><pre>Hello
</pre> </pre>
</div> </div>
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")
<div class="highlight"><pre><span class="k">def</span> <span class="nf">foo</span> <div class="highlight"><pre><span class="k">def</span> <span class="nf">foo</span>
<span class="s1">&#39;foo&#39;</span> <span class="s1">&#39;foo&#39;</span>
<span class="k">end</span> <span class="k">end</span>
</pre> </pre>
</div> </div>
HTML HTML
end end
def test_colorize_without_wrapper def test_colorize_without_wrapper
assert_equal <<-HTML, Lexer['Text only'].colorize_without_wrapper("Hello") assert_equal <<-HTML, Lexer['Text only'].colorize_without_wrapper("Hello")
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")
<span class="k">def</span> <span class="nf">foo</span> <span class="k">def</span> <span class="nf">foo</span>
<span class="s1">&#39;foo&#39;</span> <span class="s1">&#39;foo&#39;</span>
<span class="k">end</span> <span class="k">end</span>
HTML HTML
end
end end
end end