]> git.ipfire.org Git - thirdparty/patchwork.git/commitdiff
Add regression tests for bug #335
authorStephen Finucane <stephen@that.guru>
Sat, 1 Feb 2020 13:12:09 +0000 (13:12 +0000)
committerStephen Finucane <stephen@that.guru>
Sun, 2 Feb 2020 10:49:23 +0000 (10:49 +0000)
Signed-off-by: Stephen Finucane <stephen@that.guru>
Cc: Mete Polat <metepolat2000@gmail.com>
Related: #335

patchwork/tests/api/test_cover.py
patchwork/tests/api/test_event.py
patchwork/tests/api/test_patch.py
patchwork/tests/api/test_series.py

index 0a0bf041abc54c77312a7e3b9a95ebb7041da278..891c55425aeb90da7328a5cd1290440831ec315c 100644 (file)
@@ -11,7 +11,9 @@ from django.urls import reverse
 
 from patchwork.tests.api import utils
 from patchwork.tests.utils import create_cover
+from patchwork.tests.utils import create_covers
 from patchwork.tests.utils import create_maintainer
+from patchwork.tests.utils import create_series
 from patchwork.tests.utils import create_user
 
 if settings.ENABLE_REST_API:
@@ -120,6 +122,15 @@ class TestCoverLetterAPI(utils.APITestCase):
         self.assertNotIn('mbox', resp.data[0])
         self.assertNotIn('web_url', resp.data[0])
 
+    def test_list_bug_335(self):
+        """Ensure we retrieve the embedded series project once."""
+        series = create_series()
+        create_covers(5, series=series)
+
+        # FIXME(stephenfin): This should result in 2 queries
+        with self.assertNumQueries(3):
+            self.client.get(self.api_url())
+
     @utils.store_samples('cover-detail')
     def test_detail(self):
         """Validate we can get a specific cover letter."""
index c202a650b92279cf8d299e39e07e46ea22e86563..e0fca6851f38cb369ed6551b2de78929162fbc10 100644 (file)
@@ -178,6 +178,15 @@ class TestEventAPI(utils.APITestCase):
                                {'actor': 'foo-bar'})
         self.assertEqual(len(events), len(resp.data))
 
+    def test_list_bug_335(self):
+        """Ensure we retrieve the embedded series project once."""
+        for _ in range(3):
+            self._create_events()
+
+        # FIXME(stephenfin): This should result in 28 queries
+        with self.assertNumQueries(32):
+            self.client.get(self.api_url())
+
     def test_order_by_date_default(self):
         """Assert the default ordering is by date descending."""
         self._create_events()
index ef418e2e1b4f02b383b38ef03dcacae916c9de39..888a257d6ef2566c35bc3b38aba922c6523bd76f 100644 (file)
@@ -14,8 +14,10 @@ from patchwork.models import Patch
 from patchwork.tests.api import utils
 from patchwork.tests.utils import create_maintainer
 from patchwork.tests.utils import create_patch
+from patchwork.tests.utils import create_patches
 from patchwork.tests.utils import create_person
 from patchwork.tests.utils import create_project
+from patchwork.tests.utils import create_series
 from patchwork.tests.utils import create_state
 from patchwork.tests.utils import create_user
 
@@ -208,6 +210,15 @@ class TestPatchAPI(utils.APITestCase):
         self.assertIn('url', resp.data[0])
         self.assertNotIn('web_url', resp.data[0])
 
+    def test_list_bug_335(self):
+        """Ensure we retrieve the embedded series project once."""
+        series = create_series()
+        create_patches(5, series=series)
+
+        # FIXME(stephenfin): This should result in 3 queries
+        with self.assertNumQueries(8):
+            self.client.get(self.api_url())
+
     @utils.store_samples('patch-detail')
     def test_detail(self):
         """Show a specific patch."""
index 132791202f9490500917120b8200f1a43083484a..4ad82fe810831f3b8b2a2cb1a0b21deabc82f52c 100644 (file)
@@ -138,6 +138,14 @@ class TestSeriesAPI(utils.APITestCase):
         self.assertNotIn('mbox', resp.data[0]['cover_letter'])
         self.assertNotIn('web_url', resp.data[0]['patches'][0])
 
+    def test_list_bug_335(self):
+        """Ensure we retrieve the embedded cover letter project once."""
+        self._create_series()
+
+        # FIXME(stephenfin): This should result in 4 queries
+        with self.assertNumQueries(5):
+            self.client.get(self.api_url())
+
     @utils.store_samples('series-detail')
     def test_detail(self):
         """Show series."""