mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
Make pedantic test actually pedantic
What do you call someone that thinks they are pedantic but actually aren’t? All the crazy custom parsing in this test was making so it wasn’t actually doing anything.
This commit is contained in:
@@ -1,57 +1,30 @@
|
|||||||
require 'test/unit'
|
require 'test/unit'
|
||||||
|
require 'yaml'
|
||||||
|
|
||||||
class TestPedantic < Test::Unit::TestCase
|
class TestPedantic < Test::Unit::TestCase
|
||||||
Lib = File.expand_path("../../lib/linguist", __FILE__)
|
filename = File.expand_path("../../lib/linguist/languages.yml", __FILE__)
|
||||||
|
LANGUAGES = YAML.load(File.read(filename))
|
||||||
def file(name)
|
|
||||||
File.read(File.join(Lib, name))
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_language_names_are_sorted
|
def test_language_names_are_sorted
|
||||||
languages = []
|
assert_sorted LANGUAGES.keys
|
||||||
file("languages.yml").lines.each do |line|
|
|
||||||
if line =~ /^(\w+):$/
|
|
||||||
languages << $1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
assert_sorted languages
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_extensions_are_sorted
|
def test_extensions_are_sorted
|
||||||
extensions = nil
|
LANGUAGES.each do |name, language|
|
||||||
file("languages.yml").lines.each do |line|
|
extensions = language['extensions']
|
||||||
if line =~ /^ extensions:$/
|
assert_sorted extensions[1..-1] if extensions && extensions.size > 1
|
||||||
extensions = []
|
|
||||||
elsif extensions && line =~ /^ - \.([\w\-\.]+)( *#.*)?$/
|
|
||||||
extensions << $1
|
|
||||||
else
|
|
||||||
assert_sorted extensions[1..-1] if extensions
|
|
||||||
extensions = nil
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_filenames_are_sorted
|
def test_filenames_are_sorted
|
||||||
filenames = nil
|
LANGUAGES.each do |name, language|
|
||||||
file("languages.yml").lines.each do |line|
|
assert_sorted language['filenames'] if language['filenames']
|
||||||
if line =~ /^ filenames:$/
|
|
||||||
filenames = []
|
|
||||||
elsif filenames && line =~ /^ - \.(\w+)$/
|
|
||||||
filenames << $1
|
|
||||||
else
|
|
||||||
assert_sorted filenames if filenames
|
|
||||||
filenames = nil
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def assert_sorted(list)
|
def assert_sorted(list)
|
||||||
previous = nil
|
list.each_cons(2) do |previous, item|
|
||||||
list.each do |item|
|
flunk "#{previous} should come after #{item}" if previous > item
|
||||||
if previous && previous > item
|
|
||||||
flunk "#{previous} should come after #{item}"
|
|
||||||
end
|
|
||||||
previous = item
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user