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:
Brandon Keepers
2014-11-17 18:52:53 -05:00
parent c5344da2ba
commit b8e426d3a3

View File

@@ -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