From: Stephen Finucane Date: Fri, 16 Nov 2018 20:17:53 +0000 (+0100) Subject: REST: Fix typo in embedded serializers X-Git-Tag: v2.1.2~14 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3a98b6b10ae87fd1804179537349037110706984;p=thirdparty%2Fpatchwork.git REST: Fix typo in embedded serializers This was preventing the v1.1 fields from getting dropped as intended. NOTE(stephenfin): 'patchwork/tests/api/test_series.py' was modified to ensure the created series had an associated cover letter and patch. Signed-off-by: Stephen Finucane Closes: #237 (cherry picked from commit 6e48cb627c2731405f991a54085f0148c472d0e6) --- diff --git a/patchwork/api/embedded.py b/patchwork/api/embedded.py index f1105b89..bc4fd0fe 100644 --- a/patchwork/api/embedded.py +++ b/patchwork/api/embedded.py @@ -103,7 +103,7 @@ class BundleSerializer(SerializedRelatedField): model = models.Bundle fields = ('id', 'url', 'web_url', 'name', 'mbox') read_only_fields = fields - versioned_field = { + versioned_fields = { '1.1': ('web_url', ), } extra_kwargs = { @@ -140,7 +140,7 @@ class CoverLetterSerializer(SerializedRelatedField): model = models.CoverLetter fields = ('id', 'url', 'web_url', 'msgid', 'date', 'name', 'mbox') read_only_fields = fields - versioned_field = { + versioned_fields = { '1.1': ('web_url', 'mbox', ), } extra_kwargs = { @@ -156,7 +156,7 @@ class PatchSerializer(SerializedRelatedField): model = models.Patch fields = ('id', 'url', 'web_url', 'msgid', 'date', 'name', 'mbox') read_only_fields = fields - versioned_field = { + versioned_fields = { '1.1': ('web_url', ), } extra_kwargs = { @@ -204,7 +204,7 @@ class SeriesSerializer(SerializedRelatedField): fields = ('id', 'url', 'web_url', 'date', 'name', 'version', 'mbox') read_only_fields = fields - versioned_field = { + versioned_fields = { '1.1': ('web_url', ), } extra_kwargs = { diff --git a/patchwork/tests/api/test_series.py b/patchwork/tests/api/test_series.py index 11324bc3..23d8cd28 100644 --- a/patchwork/tests/api/test_series.py +++ b/patchwork/tests/api/test_series.py @@ -122,13 +122,19 @@ class TestSeriesAPI(APITestCase): def test_list_old_version(self): """Validate that newer fields are dropped for older API versions.""" - create_series() + cover_obj = create_cover() + series_obj = create_series() + series_obj.add_cover_letter(cover_obj) + create_series_patch(series=series_obj) resp = self.client.get(self.api_url(version='1.0')) self.assertEqual(status.HTTP_200_OK, resp.status_code) self.assertEqual(1, len(resp.data)) self.assertIn('url', resp.data[0]) self.assertNotIn('web_url', resp.data[0]) + self.assertNotIn('web_url', resp.data[0]['cover_letter']) + self.assertNotIn('mbox', resp.data[0]['cover_letter']) + self.assertNotIn('web_url', resp.data[0]['patches'][0]) def test_detail(self): """Validate we can get a specific series.""" @@ -141,11 +147,17 @@ class TestSeriesAPI(APITestCase): self.assertSerialized(series, resp.data) def test_detail_version_1_0(self): - series = create_series() + cover_obj = create_cover() + series_obj = create_series() + series_obj.add_cover_letter(cover_obj) + create_series_patch(series=series_obj) - resp = self.client.get(self.api_url(series.id, version='1.0')) + resp = self.client.get(self.api_url(series_obj.id, version='1.0')) self.assertIn('url', resp.data) self.assertNotIn('web_url', resp.data) + self.assertNotIn('web_url', resp.data['cover_letter']) + self.assertNotIn('mbox', resp.data['cover_letter']) + self.assertNotIn('web_url', resp.data['patches'][0]) def test_create_update_delete(self): """Ensure creates, updates and deletes aren't allowed""" diff --git a/releasenotes/notes/issue-237-48b9442c31e74b9d.yaml b/releasenotes/notes/issue-237-48b9442c31e74b9d.yaml new file mode 100644 index 00000000..541f44a0 --- /dev/null +++ b/releasenotes/notes/issue-237-48b9442c31e74b9d.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fields added in API v1.1 are now consistently excluded when requesting API + v1.0, as was intended.