Replace deprecated getdefaultlocale
... because getdefautlocale was deprecated in Python 3.11 . Also add context manager for locale override to make sure it is reset to the original values even when something goes wrong during sort. Change-Id: Ifeda733a8ea5b867615308318397fbe295313e2d
This commit is contained in:
@@ -95,8 +95,13 @@ class Collector:
|
|||||||
# Now sort specifically by C locale
|
# Now sort specifically by C locale
|
||||||
def locale_aware_by_first_item(data):
|
def locale_aware_by_first_item(data):
|
||||||
return locale.strxfrm(data[0])
|
return locale.strxfrm(data[0])
|
||||||
save_locale = locale.getdefaultlocale()
|
|
||||||
locale.setlocale(locale.LC_ALL, 'C')
|
save_locale = locale.getlocale()
|
||||||
sorted_content = sorted(final_content, key=locale_aware_by_first_item)
|
try:
|
||||||
locale.setlocale(locale.LC_ALL, save_locale)
|
locale.setlocale(locale.LC_ALL, 'C')
|
||||||
|
sorted_content = sorted(
|
||||||
|
final_content, key=locale_aware_by_first_item)
|
||||||
|
finally:
|
||||||
|
locale.setlocale(locale.LC_ALL, save_locale)
|
||||||
|
|
||||||
return sorted_content
|
return sorted_content
|
||||||
|
|||||||
@@ -114,11 +114,14 @@ class TestLocal(testtools.TestCase):
|
|||||||
|
|
||||||
def wrong_sort_listdir(path):
|
def wrong_sort_listdir(path):
|
||||||
ret = unpatched_listdir(path)
|
ret = unpatched_listdir(path)
|
||||||
save_locale = locale.getdefaultlocale()
|
save_locale = locale.getlocale()
|
||||||
locale.setlocale(locale.LC_ALL, 'C')
|
try:
|
||||||
bad_sort = sorted(ret, reverse=True)
|
locale.setlocale(locale.LC_ALL, 'C')
|
||||||
locale.setlocale(locale.LC_ALL, save_locale)
|
bad_sort = sorted(ret, reverse=True)
|
||||||
|
finally:
|
||||||
|
locale.setlocale(locale.LC_ALL, save_locale)
|
||||||
return bad_sort
|
return bad_sort
|
||||||
|
|
||||||
self.useFixture(fixtures.MonkeyPatch('os.listdir', wrong_sort_listdir))
|
self.useFixture(fixtures.MonkeyPatch('os.listdir', wrong_sort_listdir))
|
||||||
local_md = self._call_collect()
|
local_md = self._call_collect()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user