diff options
| author | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2019-10-30 15:35:28 +0000 |
|---|---|---|
| committer | milde <milde@929543f6-e4f2-0310-98a6-ba3bd3dd1d04> | 2019-10-30 15:35:28 +0000 |
| commit | 76bb23e89c001ae9a286d239d31161f39220d72e (patch) | |
| tree | b7c7d6a40924263f29312e46492bb4d6068de6dc /docutils/test | |
| parent | 06aee558bdc62744546667081a03e370bc213425 (diff) | |
| download | docutils-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-x | docutils/test/test_nodes.py | 89 |
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() |
