From fed8d49d86050d5a0cd851ac042f9fd276f4e4bf Mon Sep 17 00:00:00 2001 From: Akita Noek Date: Tue, 24 May 2016 15:50:11 -0400 Subject: [PATCH] Added optional "expect" arg for REST fixtures" --- awx/main/tests/functional/conftest.py | 42 ++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/awx/main/tests/functional/conftest.py b/awx/main/tests/functional/conftest.py index 68bd1257fd..081ffca21e 100644 --- a/awx/main/tests/functional/conftest.py +++ b/awx/main/tests/functional/conftest.py @@ -278,7 +278,7 @@ def permissions(): @pytest.fixture def post(): - def rf(url, data, user=None, middleware=None, **kwargs): + def rf(url, data, user=None, middleware=None, expect=None, **kwargs): view, view_args, view_kwargs = resolve(urlparse(url)[2]) if 'format' not in kwargs: kwargs['format'] = 'json' @@ -290,12 +290,16 @@ def post(): response = view(request, *view_args, **view_kwargs) if middleware: middleware.process_response(request, response) + if expect: + if response.status_code != expect: + print(response.data) + assert response.status_code == expect return response return rf @pytest.fixture def get(): - def rf(url, user=None, middleware=None, **kwargs): + def rf(url, user=None, middleware=None, expect=None, **kwargs): view, view_args, view_kwargs = resolve(urlparse(url)[2]) if 'format' not in kwargs: kwargs['format'] = 'json' @@ -307,12 +311,16 @@ def get(): response = view(request, *view_args, **view_kwargs) if middleware: middleware.process_response(request, response) + if expect: + if response.status_code != expect: + print(response.data) + assert response.status_code == expect return response return rf @pytest.fixture def put(): - def rf(url, data, user=None, middleware=None, **kwargs): + def rf(url, data, user=None, middleware=None, expect=None, **kwargs): view, view_args, view_kwargs = resolve(urlparse(url)[2]) if 'format' not in kwargs: kwargs['format'] = 'json' @@ -324,12 +332,16 @@ def put(): response = view(request, *view_args, **view_kwargs) if middleware: middleware.process_response(request, response) + if expect: + if response.status_code != expect: + print(response.data) + assert response.status_code == expect return response return rf @pytest.fixture def patch(): - def rf(url, data, user=None, middleware=None, **kwargs): + def rf(url, data, user=None, middleware=None, expect=None, **kwargs): view, view_args, view_kwargs = resolve(urlparse(url)[2]) if 'format' not in kwargs: kwargs['format'] = 'json' @@ -341,12 +353,16 @@ def patch(): response = view(request, *view_args, **view_kwargs) if middleware: middleware.process_response(request, response) + if expect: + if response.status_code != expect: + print(response.data) + assert response.status_code == expect return response return rf @pytest.fixture def delete(): - def rf(url, user=None, middleware=None, **kwargs): + def rf(url, user=None, middleware=None, expect=None, **kwargs): view, view_args, view_kwargs = resolve(urlparse(url)[2]) if 'format' not in kwargs: kwargs['format'] = 'json' @@ -358,12 +374,16 @@ def delete(): response = view(request, *view_args, **view_kwargs) if middleware: middleware.process_response(request, response) + if expect: + if response.status_code != expect: + print(response.data) + assert response.status_code == expect return response return rf @pytest.fixture def head(): - def rf(url, user=None, middleware=None, **kwargs): + def rf(url, user=None, middleware=None, expect=None, **kwargs): view, view_args, view_kwargs = resolve(urlparse(url)[2]) if 'format' not in kwargs: kwargs['format'] = 'json' @@ -375,12 +395,16 @@ def head(): response = view(request, *view_args, **view_kwargs) if middleware: middleware.process_response(request, response) + if expect: + if response.status_code != expect: + print(response.data) + assert response.status_code == expect return response return rf @pytest.fixture def options(): - def rf(url, data, user=None, middleware=None, **kwargs): + def rf(url, data, user=None, middleware=None, expect=None, **kwargs): view, view_args, view_kwargs = resolve(urlparse(url)[2]) if 'format' not in kwargs: kwargs['format'] = 'json' @@ -392,6 +416,10 @@ def options(): response = view(request, *view_args, **view_kwargs) if middleware: middleware.process_response(request, response) + if expect: + if response.status_code != expect: + print(response.data) + assert response.status_code == expect return response return rf