|
From: <mi...@us...> - 2024-10-26 09:15:21
|
Revision: 9970
http://sourceforge.net/p/docutils/code/9970
Author: milde
Date: 2024-10-26 09:15:18 +0000 (Sat, 26 Oct 2024)
Log Message:
-----------
Fix recursion in `nodes.Element.get_language_code()`.
Because of a typo, `Element.get_language_code()` did not find language
tags in parent elements but just return the fallback value.
Thanks to Marcello Perathoner for the report.
http://permalink.gmane.org/gmane.text.docutils.devel/10544
Modified Paths:
--------------
trunk/docutils/HISTORY.rst
trunk/docutils/docutils/nodes.py
trunk/docutils/test/test_nodes.py
Modified: trunk/docutils/HISTORY.rst
===================================================================
--- trunk/docutils/HISTORY.rst 2024-10-25 22:46:34 UTC (rev 9969)
+++ trunk/docutils/HISTORY.rst 2024-10-26 09:15:18 UTC (rev 9970)
@@ -68,6 +68,7 @@
- New function `parse_measure()`.
- Removed `Element.set_class()`.
- Downgrade "duplicate ID" message level from SERIOUS to ERROR.
+ - Fix recursion in `Element.get_language_code()`.
* docutils/parsers/docutils_xml.py
Modified: trunk/docutils/docutils/nodes.py
===================================================================
--- trunk/docutils/docutils/nodes.py 2024-10-25 22:46:34 UTC (rev 9969)
+++ trunk/docutils/docutils/nodes.py 2024-10-26 09:15:18 UTC (rev 9970)
@@ -813,7 +813,7 @@
if cls.startswith('language-'):
return cls.removeprefix('language-')
try:
- return self.parent.get_language(fallback)
+ return self.parent.get_language_code(fallback)
except AttributeError:
return fallback
Modified: trunk/docutils/test/test_nodes.py
===================================================================
--- trunk/docutils/test/test_nodes.py 2024-10-25 22:46:34 UTC (rev 9969)
+++ trunk/docutils/test/test_nodes.py 2024-10-26 09:15:18 UTC (rev 9970)
@@ -240,6 +240,15 @@
element.clear()
self.assertTrue(not len(element))
+ def test_get_language_code(self):
+ # Return language tag from node or parents
+ parent = nodes.Element(classes=['parental', 'language-pt-BR'])
+ self.assertEqual(parent.get_language_code('en'), 'pt-BR')
+ child = nodes.Element(classes=['small'])
+ self.assertEqual(child.get_language_code('en'), 'en')
+ parent.append(child)
+ self.assertEqual(child.get_language_code('en'), 'pt-BR')
+
def test_normal_attributes(self):
element = nodes.Element()
self.assertTrue('foo' not in element)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|