Generate language_id (#3284)

* Generate language_id from language names

The language_id is generated from the SHA256 hash of the language's name

* Test the validity of language ids

All languages should have a positive 32bit integer as an id

* Update languages.yml header in set-language-ids
This commit is contained in:
Paul Chaignon
2016-11-29 16:50:44 +01:00
committed by Brandon Black
parent d46a529b6a
commit 0980e304b1
2 changed files with 19 additions and 15 deletions

View File

@@ -427,6 +427,14 @@ class TestLanguage < Minitest::Test
assert missing.empty?, message
end
def test_all_languages_have_a_valid_id
invalid = Language.all.select { |language| language.language_id < 0 || language.language_id >= (2**31 - 1) }
message = "The following languages do not have a valid language_id. Please use script/set-language-ids --update as per the contribution guidelines.\n"
invalid.each { |language| message << "#{language.name}\n" }
assert invalid.empty?, message
end
def test_all_language_id_are_unique
duplicates = Language.all.group_by{ |language| language.language_id }.select { |k, v| v.size > 1 }.map(&:first)