forked from openlp/openlp
Add unit tests for get_local_key and get_natural_key.
This commit is contained in:
parent
b3bb9bc0c0
commit
316902fb88
@ -5,7 +5,7 @@ from unittest import TestCase
|
|||||||
|
|
||||||
from mock import patch
|
from mock import patch
|
||||||
|
|
||||||
from openlp.core.utils import get_filesystem_encoding, _get_frozen_path
|
from openlp.core.utils import get_filesystem_encoding, _get_frozen_path, get_local_key, get_natural_key
|
||||||
|
|
||||||
class TestUtils(TestCase):
|
class TestUtils(TestCase):
|
||||||
"""
|
"""
|
||||||
@ -56,3 +56,28 @@ class TestUtils(TestCase):
|
|||||||
# THEN: The frozen parameter is returned
|
# THEN: The frozen parameter is returned
|
||||||
assert _get_frozen_path(u'frozen', u'not frozen') == u'frozen', u'Should return "frozen"'
|
assert _get_frozen_path(u'frozen', u'not frozen') == u'frozen', u'Should return "frozen"'
|
||||||
|
|
||||||
|
def get_local_key_test(self):
|
||||||
|
"""
|
||||||
|
Test the get_local_key(string) function
|
||||||
|
"""
|
||||||
|
with patch(u'openlp.core.utils.languagemanager.LanguageManager.get_language') as mocked_get_language:
|
||||||
|
# GIVEN: The language is German
|
||||||
|
# 0x00C3 (A with diaresis) should be sorted as "A". 0x00DF (sharp s) should be sorted as "ss".
|
||||||
|
mocked_get_language.return_value = u'de'
|
||||||
|
unsorted_list = [u'Auszug', u'Aushang', u'\u00C4u\u00DFerung']
|
||||||
|
# WHEN: We sort the list and use get_locale_key() to generate the sorting keys
|
||||||
|
# THEN: We get a properly sorted list
|
||||||
|
assert sorted(unsorted_list, key=get_local_key) == [u'Aushang', u'\u00C4u\u00DFerung', u'Auszug'], u'Strings should be sorted properly'
|
||||||
|
|
||||||
|
def get_natural_key_test(self):
|
||||||
|
"""
|
||||||
|
Test the get_natural_key(string) function
|
||||||
|
"""
|
||||||
|
with patch(u'openlp.core.utils.languagemanager.LanguageManager.get_language') as mocked_get_language:
|
||||||
|
# GIVEN: The language is English (a language, which sorts digits before letters)
|
||||||
|
mocked_get_language.return_value = u'en'
|
||||||
|
unsorted_list = [u'item 10a', u'item 3b', u'1st item']
|
||||||
|
# WHEN: We sort the list and use get_natural_key() to generate the sorting keys
|
||||||
|
# THEN: We get a properly sorted list
|
||||||
|
assert sorted(unsorted_list, key=get_natural_key) == [u'1st item', u'item 3b', u'item 10a'], u'Numbers should be sortet naturally'
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user