From 1e2a936a18ba91abbe1b4595c7f36770f84f1fae Mon Sep 17 00:00:00 2001 From: David Moreau Simard Date: Thu, 15 Nov 2018 11:53:50 -0500 Subject: [PATCH] Add record filtering by key Change-Id: Iea6cae697a64b75ffda070f909d2fc5382ad9a82 --- ara/api/tests/tests_records.py | 21 +++++++++++++++++++++ ara/api/views.py | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/ara/api/tests/tests_records.py b/ara/api/tests/tests_records.py index aad243d..bf7e1b4 100644 --- a/ara/api/tests/tests_records.py +++ b/ara/api/tests/tests_records.py @@ -81,3 +81,24 @@ class RecordTestCase(APITestCase): self.assertEqual(1, len(request.data["results"])) self.assertEqual(record.key, request.data["results"][0]["key"]) self.assertEqual(record.playbook.id, request.data["results"][0]["playbook"]) + + def test_get_records_by_key(self): + playbook = factories.PlaybookFactory() + record = factories.RecordFactory(playbook=playbook, key="by_key") + factories.RecordFactory(key="another_record") + request = self.client.get("/api/v1/records?key=%s" % record.key) + self.assertEqual(2, models.Record.objects.all().count()) + self.assertEqual(1, len(request.data["results"])) + self.assertEqual(record.key, request.data["results"][0]["key"]) + self.assertEqual(record.playbook.id, request.data["results"][0]["playbook"]) + + def test_get_records_by_playbook_and_key(self): + playbook = factories.PlaybookFactory() + record = factories.RecordFactory(playbook=playbook, key="by_playbook_and_key") + factories.RecordFactory(playbook=playbook, key="another_record_in_playbook") + factories.RecordFactory(key="another_record_in_another_playbook") + request = self.client.get("/api/v1/records?playbook=%s&key=%s" % (playbook.id, record.key)) + self.assertEqual(3, models.Record.objects.all().count()) + self.assertEqual(1, len(request.data["results"])) + self.assertEqual(record.key, request.data["results"][0]["key"]) + self.assertEqual(record.playbook.id, request.data["results"][0]["playbook"]) diff --git a/ara/api/views.py b/ara/api/views.py index 84271e7..40d9b0e 100644 --- a/ara/api/views.py +++ b/ara/api/views.py @@ -75,7 +75,7 @@ class FileViewSet(viewsets.ModelViewSet): class RecordViewSet(viewsets.ModelViewSet): queryset = models.Record.objects.all() serializer_class = serializers.RecordSerializer - filter_fields = ("playbook",) + filter_fields = ("playbook", "key") class StatsViewSet(viewsets.ModelViewSet):