From e0150e359eef7fa7330170fffaa6ad94aeaa3723 Mon Sep 17 00:00:00 2001 From: Ben Kurtovic Date: Wed, 17 Jan 2024 22:40:02 -0500 Subject: [PATCH] Update changelog, rerun hooks, add an assert --- CHANGELOG | 2 +- docs/changelog.rst | 4 +++- scripts/memtest.py | 2 +- src/mwparserfromhell/nodes/template.py | 8 +++++--- src/mwparserfromhell/parser/ctokenizer/avl_tree.c | 2 +- tests/test_template.py | 8 ++++++-- 6 files changed, 17 insertions(+), 9 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index eb6eb7a..b6a35d1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,6 @@ v0.7 (unreleased): -- ... +- Added 'after' parameter to Template.add(). (#281, #315) v0.6.6 (released January 4, 2024): diff --git a/docs/changelog.rst b/docs/changelog.rst index 00cb625..f5cc1df 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -7,7 +7,9 @@ v0.7 Unreleased (`changes `__): -- ... +- Added 'after' parameter to Template.add(). + (`#281 `_, + `#315 `_) v0.6.6 ------ diff --git a/scripts/memtest.py b/scripts/memtest.py index d5e39e5..56284f1 100644 --- a/scripts/memtest.py +++ b/scripts/memtest.py @@ -114,7 +114,7 @@ class MemoryTest: def run(self): """Run the memory test suite.""" width = 1 - for (name, _) in self._tests: + for name, _ in self._tests: if len(name) > width: width = len(name) diff --git a/src/mwparserfromhell/nodes/template.py b/src/mwparserfromhell/nodes/template.py index 75c929f..ef0bcd1 100644 --- a/src/mwparserfromhell/nodes/template.py +++ b/src/mwparserfromhell/nodes/template.py @@ -237,8 +237,9 @@ class Template(Node): def __getitem__(self, name): return self.get(name) - def add(self, name, value, showkey=None, before=None, after=None, - preserve_spacing=True): + def add( + self, name, value, showkey=None, before=None, after=None, preserve_spacing=True + ): """Add a parameter to the template with a given *name* and *value*. *name* and *value* can be anything parsable by @@ -317,13 +318,14 @@ class Template(Node): param = Parameter(name, value, showkey) if before: + assert after is None, "Cannot set a value for both 'before' and 'after'" if not isinstance(before, Parameter): before = self.get(before) self.params.insert(self.params.index(before), param) elif after: if not isinstance(after, Parameter): after = self.get(after) - self.params.insert(self.params.index(after)+1, param) + self.params.insert(self.params.index(after) + 1, param) else: self.params.append(param) return param diff --git a/src/mwparserfromhell/parser/ctokenizer/avl_tree.c b/src/mwparserfromhell/parser/ctokenizer/avl_tree.c index 3974029..8516691 100644 --- a/src/mwparserfromhell/parser/ctokenizer/avl_tree.c +++ b/src/mwparserfromhell/parser/ctokenizer/avl_tree.c @@ -19,7 +19,7 @@ */ #define false 0 -#define true 1 +#define true 1 typedef int bool; diff --git a/tests/test_template.py b/tests/test_template.py index 0abaa30..a67b9cd 100644 --- a/tests/test_template.py +++ b/tests/test_template.py @@ -334,8 +334,12 @@ def test_add(): node40.add("3", "d") node41.add("3", "d") node42.add("b", "hello") - node43 = Template(wraptext("a"), [pgens("b", "c"), pgens("d", "e"), pgens("f", "g")]) - node44 = Template(wraptext("a"), [pgens("b", "c"), pgens("d", "e"), pgens("f", "g")]) + node43 = Template( + wraptext("a"), [pgens("b", "c"), pgens("d", "e"), pgens("f", "g")] + ) + node44 = Template( + wraptext("a"), [pgens("b", "c"), pgens("d", "e"), pgens("f", "g")] + ) node43.add("new_param", "value", after="d") node44.add("new_param", "value", after="f")