Merge "Add search by name on playbook endpoint"
This commit is contained in:
commit
96e3140139
|
@ -100,6 +100,13 @@ class PlaybookTestCase(APITestCase):
|
||||||
request = self.client.get("/api/v1/playbooks/%s" % playbook.id)
|
request = self.client.get("/api/v1/playbooks/%s" % playbook.id)
|
||||||
self.assertEqual(playbook.ansible_version, request.data["ansible_version"])
|
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):
|
def test_get_playbook_duration(self):
|
||||||
started = timezone.now()
|
started = timezone.now()
|
||||||
ended = started + datetime.timedelta(hours=1)
|
ended = started + datetime.timedelta(hours=1)
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with ARA. If not, see <http://www.gnu.org/licenses/>.
|
# along with ARA. If not, see <http://www.gnu.org/licenses/>.
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
|
from django_filters.rest_framework import DjangoFilterBackend
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
from rest_framework_extensions.mixins import NestedViewSetMixin
|
from rest_framework_extensions.mixins import NestedViewSetMixin
|
||||||
|
|
||||||
|
@ -29,6 +30,8 @@ class LabelViewSet(viewsets.ModelViewSet):
|
||||||
class PlaybookViewSet(viewsets.ModelViewSet):
|
class PlaybookViewSet(viewsets.ModelViewSet):
|
||||||
queryset = models.Playbook.objects.all()
|
queryset = models.Playbook.objects.all()
|
||||||
serializer_class = serializers.PlaybookSerializer
|
serializer_class = serializers.PlaybookSerializer
|
||||||
|
filter_backends = (DjangoFilterBackend,)
|
||||||
|
filter_fields = ("name",)
|
||||||
|
|
||||||
|
|
||||||
class PlaybookFilesDetail(NestedViewSetMixin, viewsets.ModelViewSet):
|
class PlaybookFilesDetail(NestedViewSetMixin, viewsets.ModelViewSet):
|
||||||
|
|
|
@ -30,6 +30,7 @@ INSTALLED_APPS = [
|
||||||
'django.contrib.staticfiles',
|
'django.contrib.staticfiles',
|
||||||
'corsheaders',
|
'corsheaders',
|
||||||
'rest_framework',
|
'rest_framework',
|
||||||
|
'django_filters',
|
||||||
'ara.api',
|
'ara.api',
|
||||||
'ara.server.apps.AraAdminConfig',
|
'ara.server.apps.AraAdminConfig',
|
||||||
]
|
]
|
||||||
|
|
|
@ -5,3 +5,4 @@ djangorestframework
|
||||||
django-cors-headers
|
django-cors-headers
|
||||||
drf-extensions
|
drf-extensions
|
||||||
envparse
|
envparse
|
||||||
|
django-filter
|
Loading…
Reference in New Issue