Add search by name on playbook endpoint

Change-Id: I1ffb958aff4aa466cb15e3e2c2e9f0bb28207224
This commit is contained in:
Guillaume Vincent 2018-10-16 12:30:50 +02:00 committed by David Moreau Simard
parent 031e757979
commit fef942b62f
No known key found for this signature in database
GPG Key ID: CBEB466764A9E621
4 changed files with 12 additions and 0 deletions

View File

@ -100,6 +100,13 @@ class PlaybookTestCase(APITestCase):
request = self.client.get("/api/v1/playbooks/%s" % playbook.id)
self.assertEqual(playbook.ansible_version, request.data["ansible_version"])
def test_get_playbook_by_name(self):
playbook = factories.PlaybookFactory(name="playbook1")
factories.PlaybookFactory(name="playbook2")
request = self.client.get("/api/v1/playbooks?name=playbook1")
self.assertEqual(1, len(request.data["results"]))
self.assertEqual(playbook.name, request.data["results"][0]["name"])
def test_get_playbook_duration(self):
started = timezone.now()
ended = started + datetime.timedelta(hours=1)

View File

@ -15,6 +15,7 @@
# You should have received a copy of the GNU General Public License
# along with ARA. If not, see <http://www.gnu.org/licenses/>.
from django.db import transaction
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import viewsets
from rest_framework_extensions.mixins import NestedViewSetMixin
@ -29,6 +30,8 @@ class LabelViewSet(viewsets.ModelViewSet):
class PlaybookViewSet(viewsets.ModelViewSet):
queryset = models.Playbook.objects.all()
serializer_class = serializers.PlaybookSerializer
filter_backends = (DjangoFilterBackend,)
filter_fields = ("name",)
class PlaybookFilesDetail(NestedViewSetMixin, viewsets.ModelViewSet):

View File

@ -30,6 +30,7 @@ INSTALLED_APPS = [
'django.contrib.staticfiles',
'corsheaders',
'rest_framework',
'django_filters',
'ara.api',
'ara.server.apps.AraAdminConfig',
]

View File

@ -5,3 +5,4 @@ djangorestframework
django-cors-headers
drf-extensions
envparse
django-filter