From 41f7589d4ed87da20a3a6a963450631585aaa6a6 Mon Sep 17 00:00:00 2001 From: Eric Schulte Date: Sat, 9 Nov 2013 10:48:02 -0700 Subject: [PATCH] unit test for find_by_shebang --- test/test_language.rb | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/test/test_language.rb b/test/test_language.rb index 38ed4a06..c4830691 100644 --- a/test/test_language.rb +++ b/test/test_language.rb @@ -249,6 +249,36 @@ class TestLanguage < Test::Unit::TestCase assert_equal [Language['HTML+Django']], Language.find_by_filename('index.jinja') end + def test_find_by_shebang + assert_equal 'ruby', Linguist.interpreter_from_shebang("#!/usr/bin/ruby\n# baz") + { [] => ["", + "foo", + "#bar", + "#baz", + "///", + "\n\n\n\n\n", + " #!/usr/sbin/ruby", + "\n#!/usr/sbin/ruby"], + ['Ruby'] => ["#!/usr/bin/env ruby\n# baz", + "#!/usr/sbin/ruby\n# bar", + "#!/usr/bin/ruby\n# foo", + "#!/usr/sbin/ruby", + "#!/usr/sbin/ruby foo bar baz\n"], + ['R'] => ["#!/usr/bin/env Rscript\n# example R script\n#\n"], + ['Shell'] => ["#!/usr/bin/bash\n", "#!/bin/sh"], + ['Python'] => ["#!/bin/python\n# foo\n# bar\n# baz", + "#!/usr/bin/python2.7\n\n\n\n", + "#!/usr/bin/python3\n\n\n\n"], + ["Common Lisp"] => ["#!/usr/bin/sbcl --script\n\n"] + }.each do |languages, bodies| + bodies.each do |body| + assert_equal([body, languages.map{|l| Language[l]}], + [body, Language.find_by_shebang(body)]) + + end + end + end + def test_find assert_equal 'Ruby', Language['Ruby'].name assert_equal 'Ruby', Language['ruby'].name