File python-311.patch of Package python-pelican
From 3937028c00344dc82798750e5f13a8a1aea890d4 Mon Sep 17 00:00:00 2001
From: Deniz Turgut <dturgut@gmail.com>
Date: Wed, 26 Oct 2022 23:27:06 +0300
Subject: [PATCH 2/2] update unit test to avoid using deprecated
locale.getdefaultlocale()
---
pelican/tests/test_settings.py | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
Index: pelican-4.8.0/pelican/tests/test_settings.py
===================================================================
--- pelican-4.8.0.orig/pelican/tests/test_settings.py
+++ pelican-4.8.0/pelican/tests/test_settings.py
@@ -2,7 +2,6 @@ import copy
import locale
import os
from os.path import abspath, dirname, join
-from sys import platform
from pelican.settings import (DEFAULT_CONFIG, DEFAULT_THEME,
@@ -136,18 +135,19 @@ class TestSettingsConfiguration(unittest
settings['ARTICLE_DIR']
settings['PAGE_DIR']
- # locale.getdefaultlocale() is broken on Windows
- # See: https://bugs.python.org/issue37945
- @unittest.skipIf(platform == 'win32', "Doesn't work on Windows")
def test_default_encoding(self):
- # Test that the default locale is set if not specified in settings
+ # Test that the user locale is set if not specified in settings
- # Reset locale to Python's default locale
locale.setlocale(locale.LC_ALL, 'C')
- self.assertEqual(self.settings['LOCALE'], DEFAULT_CONFIG['LOCALE'])
+ # empty string = user system locale
+ self.assertEqual(self.settings['LOCALE'], [''])
configure_settings(self.settings)
- self.assertEqual(locale.getlocale(), locale.getdefaultlocale())
+ lc_time = locale.getlocale(locale.LC_TIME) # should be set to user locale
+
+ # explicitly set locale to user pref and test
+ locale.setlocale(locale.LC_TIME, '')
+ self.assertEqual(lc_time, locale.getlocale(locale.LC_TIME))
def test_invalid_settings_throw_exception(self):
# Test that the path name is valid