summaryrefslogtreecommitdiff
path: root/tests/test_localedata.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_localedata.py')
-rw-r--r--tests/test_localedata.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/test_localedata.py b/tests/test_localedata.py
index dceb984..bffe763 100644
--- a/tests/test_localedata.py
+++ b/tests/test_localedata.py
@@ -17,6 +17,7 @@ from operator import methodcaller
from babel import localedata
+
class MergeResolveTestCase(unittest.TestCase):
def test_merge_items(self):
@@ -78,6 +79,7 @@ def test_locale_identification():
for l in localedata.locale_identifiers():
assert localedata.exists(l)
+
def test_unique_ids():
# Check all locale IDs are uniques.
all_ids = localedata.locale_identifiers()
@@ -93,6 +95,7 @@ def test_mixedcased_locale():
methodcaller(random.choice(['lower', 'upper']))(c) for c in l])
assert localedata.exists(locale_id)
+
def test_locale_argument_acceptance():
# Testing None input.
normalized_locale = localedata.normalize_locale(None)
@@ -105,3 +108,26 @@ def test_locale_argument_acceptance():
assert normalized_locale is None
locale_exist = localedata.exists(['en_us', None])
assert locale_exist == False
+
+
+def test_locale_identifiers_cache(monkeypatch):
+ original_listdir = localedata.os.listdir
+ listdir_calls = []
+ def listdir_spy(*args):
+ rv = original_listdir(*args)
+ listdir_calls.append((args, rv))
+ return rv
+ monkeypatch.setattr(localedata.os, 'listdir', listdir_spy)
+
+ # In case we've already run some tests...
+ if hasattr(localedata.locale_identifiers, 'cache'):
+ del localedata.locale_identifiers.cache
+
+ assert not listdir_calls
+ assert localedata.locale_identifiers()
+ assert len(listdir_calls) == 1
+ assert localedata.locale_identifiers() is localedata.locale_identifiers.cache
+ assert len(listdir_calls) == 1
+ localedata.locale_identifiers.cache = None
+ assert localedata.locale_identifiers()
+ assert len(listdir_calls) == 2