From 85e76d68dbad40a5115596a26d61c966cbdca654 Mon Sep 17 00:00:00 2001 From: David Moreau Simard Date: Tue, 16 Oct 2018 10:45:02 -0400 Subject: [PATCH] Add task filtering by playbook id Change-Id: Ibcafe4ad574a7a55c48b99a38f23702f10f2c8a1 --- ara/api/tests/tests_task.py | 9 +++++++++ ara/api/views.py | 2 ++ 2 files changed, 11 insertions(+) diff --git a/ara/api/tests/tests_task.py b/ara/api/tests/tests_task.py index e9cda12..3bc84db 100644 --- a/ara/api/tests/tests_task.py +++ b/ara/api/tests/tests_task.py @@ -125,6 +125,15 @@ class TaskTestCase(APITestCase): request = self.client.get("/api/v1/tasks/%s" % task.id) self.assertEqual(task.name, request.data["name"]) + def test_get_tasks_by_playbook(self): + playbook = factories.PlaybookFactory() + task = factories.TaskFactory(name="task1", playbook=playbook) + factories.TaskFactory(name="task2", playbook=playbook) + request = self.client.get("/api/v1/tasks?playbook=%s" % playbook.id) + self.assertEqual(2, len(request.data["results"])) + self.assertEqual(task.name, request.data["results"][0]["name"]) + self.assertEqual("task2", request.data["results"][1]["name"]) + def test_get_task_duration(self): started = timezone.now() ended = started + datetime.timedelta(hours=1) diff --git a/ara/api/views.py b/ara/api/views.py index 81d7af2..b8c2d97 100644 --- a/ara/api/views.py +++ b/ara/api/views.py @@ -55,6 +55,8 @@ class PlayViewSet(viewsets.ModelViewSet): class TaskViewSet(viewsets.ModelViewSet): queryset = models.Task.objects.all() serializer_class = serializers.TaskSerializer + filter_backends = (DjangoFilterBackend,) + filter_fields = ("playbook",) class HostViewSet(viewsets.ModelViewSet):