diff mbox series

REST: Only list checks for the given patch

Message ID 20180912154656.20077-1-stephen@that.guru
State Accepted
Headers show
Series REST: Only list checks for the given patch | expand

Commit Message

Stephen Finucane Sept. 12, 2018, 3:46 p.m. UTC
This is either a regression or it never worked. In any case, fix it and
add a test to ensure it doesn't happen again.

Signed-off-by: Stephen Finucane <stephen@that.guru>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Closes: #203
---
 patchwork/api/check.py            | 3 ++-
 patchwork/tests/api/test_check.py | 5 +++--
 2 files changed, 5 insertions(+), 3 deletions(-)

Comments

Veronika Kabatova Sept. 19, 2018, 4:54 p.m. UTC | #1
----- Original Message -----
> From: "Stephen Finucane" <stephen@that.guru>
> To: patchwork@lists.ozlabs.org
> Cc: "Michael Ellerman" <mpe@ellerman.id.au>
> Sent: Wednesday, September 12, 2018 5:46:56 PM
> Subject: [PATCH] REST: Only list checks for the given patch
> 
> This is either a regression or it never worked. In any case, fix it and
> add a test to ensure it doesn't happen again.
> 

This was driving me nuts for the past year but I thought it's a feature I
don't appreciate and not a bug. Anyways, the patch fixes the problem on my
instance and I don't see any problem with the filter addition either.

Reviewed-by: Veronika Kabatova <vkabatov@redhat.com>

> Signed-off-by: Stephen Finucane <stephen@that.guru>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Closes: #203
> ---
>  patchwork/api/check.py            | 3 ++-
>  patchwork/tests/api/test_check.py | 5 +++--
>  2 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/patchwork/api/check.py b/patchwork/api/check.py
> index 5e461de6..712238eb 100644
> --- a/patchwork/api/check.py
> +++ b/patchwork/api/check.py
> @@ -83,7 +83,8 @@ class CheckMixin(object):
>      filter_class = CheckFilterSet
>  
>      def get_queryset(self):
> -        return Check.objects.prefetch_related('patch', 'user')
> +        patch_id = self.kwargs['patch_id']
> +        return Check.objects.prefetch_related('user').filter(patch=patch_id)
>  
>  
>  class CheckListCreate(CheckMixin, ListCreateAPIView):
> diff --git a/patchwork/tests/api/test_check.py
> b/patchwork/tests/api/test_check.py
> index 6f4aa5de..4c6a934c 100644
> --- a/patchwork/tests/api/test_check.py
> +++ b/patchwork/tests/api/test_check.py
> @@ -54,9 +54,9 @@ class TestCheckAPI(APITestCase):
>          self.user = create_maintainer(project)
>          self.patch = create_patch(project=project)
>  
> -    def _create_check(self):
> +    def _create_check(self, patch=None):
>          values = {
> -            'patch': self.patch,
> +            'patch': patch if patch else self.patch,
>              'user': self.user,
>          }
>          return create_check(**values)
> @@ -76,6 +76,7 @@ class TestCheckAPI(APITestCase):
>          self.assertEqual(0, len(resp.data))
>  
>          check_obj = self._create_check()
> +        self._create_check(create_patch())  # second, unrelated patch
>  
>          resp = self.client.get(self.api_url())
>          self.assertEqual(status.HTTP_200_OK, resp.status_code)
> --
> 2.17.1
> 
> _______________________________________________
> Patchwork mailing list
> Patchwork@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/patchwork
>
diff mbox series

Patch

diff --git a/patchwork/api/check.py b/patchwork/api/check.py
index 5e461de6..712238eb 100644
--- a/patchwork/api/check.py
+++ b/patchwork/api/check.py
@@ -83,7 +83,8 @@  class CheckMixin(object):
     filter_class = CheckFilterSet
 
     def get_queryset(self):
-        return Check.objects.prefetch_related('patch', 'user')
+        patch_id = self.kwargs['patch_id']
+        return Check.objects.prefetch_related('user').filter(patch=patch_id)
 
 
 class CheckListCreate(CheckMixin, ListCreateAPIView):
diff --git a/patchwork/tests/api/test_check.py b/patchwork/tests/api/test_check.py
index 6f4aa5de..4c6a934c 100644
--- a/patchwork/tests/api/test_check.py
+++ b/patchwork/tests/api/test_check.py
@@ -54,9 +54,9 @@  class TestCheckAPI(APITestCase):
         self.user = create_maintainer(project)
         self.patch = create_patch(project=project)
 
-    def _create_check(self):
+    def _create_check(self, patch=None):
         values = {
-            'patch': self.patch,
+            'patch': patch if patch else self.patch,
             'user': self.user,
         }
         return create_check(**values)
@@ -76,6 +76,7 @@  class TestCheckAPI(APITestCase):
         self.assertEqual(0, len(resp.data))
 
         check_obj = self._create_check()
+        self._create_check(create_patch())  # second, unrelated patch
 
         resp = self.client.get(self.api_url())
         self.assertEqual(status.HTTP_200_OK, resp.status_code)