summaryrefslogtreecommitdiff
path: root/docutils/test
diff options
context:
space:
mode:
authormilde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2019-10-30 15:35:28 +0000
committermilde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04>2019-10-30 15:35:28 +0000
commit76bb23e89c001ae9a286d239d31161f39220d72e (patch)
treeb7c7d6a40924263f29312e46492bb4d6068de6dc /docutils/test
parent06aee558bdc62744546667081a03e370bc213425 (diff)
downloaddocutils-76bb23e89c001ae9a286d239d31161f39220d72e.tar.gz
Fix and add test for more use cases for nodes.set_id().
git-svn-id: http://svn.code.sf.net/p/docutils/code/trunk@8409 929543f6-e4f2-0310-98a6-ba3bd3dd1d04
Diffstat (limited to 'docutils/test')
-rwxr-xr-xdocutils/test/test_nodes.py89
1 files changed, 62 insertions, 27 deletions
diff --git a/docutils/test/test_nodes.py b/docutils/test/test_nodes.py
index 999fac967..125bb3202 100755
--- a/docutils/test/test_nodes.py
+++ b/docutils/test/test_nodes.py
@@ -661,6 +661,68 @@ class TreeCopyVisitorTests(unittest.TestCase):
self.compare_trees(self.document, newtree)
+class SetIdTests(unittest.TestCase):
+
+ def setUp(self):
+ self.document = utils.new_document('test')
+ self.elements = [nodes.Element(names=['test']),
+ nodes.section(), # Name empty
+ nodes.section(names=['Test']), # duplicate id
+ nodes.footnote(names=['2019-10-30']), # id empty
+ ]
+
+ def test_set_id_default(self):
+ # Default prefixes.
+ for element in self.elements:
+ self.document.set_id(element)
+ ids = [element['ids'] for element in self.elements]
+ self.assertEqual(ids, [['test'], ['id1'], ['id2'], ['id3']])
+
+ def test_set_id_custom(self):
+ # Custom prefixes.
+
+ # Change settings.
+ self.document.settings.id_prefix = 'P-'
+ self.document.settings.auto_id_prefix = 'auto'
+
+ for element in self.elements:
+ self.document.set_id(element)
+ ids = [element['ids'] for element in self.elements]
+ self.assertEqual(ids, [['P-test'],
+ ['P-auto1'],
+ ['P-auto2'],
+ ['P-auto3']])
+
+ def test_set_id_descriptive_auto_id(self):
+ # Use name or tag-name for auto-id.
+
+ # Change setting.
+ self.document.settings.auto_id_prefix = '%'
+
+ for element in self.elements:
+ self.document.set_id(element)
+ ids = [element['ids'] for element in self.elements]
+ self.assertEqual(ids, [['test'],
+ ['section-1'],
+ ['test-1'],
+ ['footnote-1']])
+
+ def test_set_id_custom_descriptive_auto_id(self):
+ # Custom prefixes and name or tag-name for auto-id.
+
+ # Change settings.
+ self.document.settings.id_prefix = 'P:'
+ self.document.settings.auto_id_prefix = 'a-%'
+
+ for element in self.elements:
+ self.document.set_id(element)
+ ids = [element['ids'] for element in self.elements]
+ self.assertEqual(ids, [['P:test'],
+ ['P:a-section-1'],
+ ['P:test-1'],
+ ['P:a-footnote-1']])
+
+
class MiscFunctionTests(unittest.TestCase):
names = [('a', 'a'), ('A', 'a'), ('A a A', 'a a a'),
@@ -672,33 +734,6 @@ class MiscFunctionTests(unittest.TestCase):
normed = nodes.fully_normalize_name(input)
self.assertEqual(normed, output)
- def test_set_id_default(self):
- # Default prefixes.
- document = utils.new_document('test')
- # From name.
- element = nodes.Element(names=['test'])
- document.set_id(element)
- self.assertEqual(element['ids'], ['test'])
- # Auto-generated.
- element = nodes.Element()
- document.set_id(element)
- self.assertEqual(element['ids'], ['id1'])
-
- def test_set_id_custom(self):
- # Custom prefixes.
- document = utils.new_document('test')
- # Change settings.
- document.settings.id_prefix = 'prefix'
- document.settings.auto_id_prefix = 'auto'
- # From name.
- element = nodes.Element(names=['test'])
- document.set_id(element)
- self.assertEqual(element['ids'], ['prefixtest'])
- # Auto-generated.
- element = nodes.Element()
- document.set_id(element)
- self.assertEqual(element['ids'], ['prefixauto1'])
-
if __name__ == '__main__':
unittest.main()