]> git.ipfire.org Git - thirdparty/patchwork.git/commitdiff
REST: Fix typo in embedded serializers
authorStephen Finucane <stephen@that.guru>
Fri, 16 Nov 2018 20:17:53 +0000 (21:17 +0100)
committerStephen Finucane <stephen@that.guru>
Sat, 22 Dec 2018 22:34:01 +0000 (22:34 +0000)
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 <stephen@that.guru>
Closes: #237
(cherry picked from commit 6e48cb627c2731405f991a54085f0148c472d0e6)

patchwork/api/embedded.py
patchwork/tests/api/test_series.py
releasenotes/notes/issue-237-48b9442c31e74b9d.yaml [new file with mode: 0644]

index f1105b892004358487ce9458b2e23442d5cd0a69..bc4fd0fe5523fa5a566dade58f9cc289ab0debf1 100644 (file)
@@ -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 = {
index 11324bc3fd8e065440555a1502509780c32fc589..23d8cd28fae108103fc119105c6965aef6f82063 100644 (file)
@@ -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 (file)
index 0000000..541f44a
--- /dev/null
@@ -0,0 +1,5 @@
+---
+fixes:
+  - |
+    Fields added in API v1.1 are now consistently excluded when requesting API
+    v1.0, as was intended.