diff --git a/CHANGELOG.md b/CHANGELOG.md index 20ff297..1897120 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,12 +5,6 @@ All notable changes to WuttJamaican will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## v0.28.8 (2026-02-25) - -### Fix - -- diff should use "intersection" of fields by default - ## v0.28.7 (2026-02-17) ### Fix diff --git a/pyproject.toml b/pyproject.toml index 08ea1d5..1cd82a5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "hatchling.build" [project] name = "WuttJamaican" -version = "0.28.8" +version = "0.28.7" description = "Base package for Wutta Framework" readme = "README.md" authors = [{name = "Lance Edgar", email = "lance@wuttaproject.org"}] diff --git a/src/wuttjamaican/diffs.py b/src/wuttjamaican/diffs.py index 47db028..38e4214 100644 --- a/src/wuttjamaican/diffs.py +++ b/src/wuttjamaican/diffs.py @@ -83,11 +83,7 @@ class Diff: # pylint: disable=too-many-instance-attributes self.cell_padding = cell_padding def make_fields(self): # pylint: disable=missing-function-docstring - if self.old_data and self.new_data: - fields = set(self.old_data) & set(self.new_data) - else: - fields = set(self.old_data or self.new_data) - return sorted(fields, key=lambda f: f.lower()) + return sorted(set(self.old_data) | set(self.new_data), key=lambda x: x.lower()) def render_html(self, template=None, **kwargs): """ diff --git a/tests/test_diffs.py b/tests/test_diffs.py index dfb4452..32dedeb 100644 --- a/tests/test_diffs.py +++ b/tests/test_diffs.py @@ -19,20 +19,13 @@ class TestDiff(ConfigTestCase): self.assertEqual(diff.cell_padding, "0.5rem") def test_make_fields(self): - - # should return "sorted intersection" of fields - old_data = {"foo": "bar", "baz": "abc"} - new_data = {"foo": "bar", "baz": "xyz", "flurg": "foo"} + old_data = {"foo": "bar"} + new_data = {"foo": "bar", "baz": "zer"} # nb. this calls make_fields() diff = self.make_diff(old_data, new_data) + # TODO: should the fields be cumulative? or just use new_data? self.assertEqual(diff.fields, ["baz", "foo"]) - # all fields are used if only one data set - diff = self.make_diff(old_data, {}) - self.assertEqual(diff.fields, ["baz", "foo"]) - diff = self.make_diff({}, new_data) - self.assertEqual(diff.fields, ["baz", "flurg", "foo"]) - def test_values(self): old_data = {"foo": "bar"} new_data = {"foo": "baz"}