mirror of
https://github.com/ZwareBear/awx.git
synced 2026-04-24 17:01:49 -05:00
Switch to resolve in api test fixtures to automatically resolve View's and their arguments
Also changed the signature of the post/get methods to better align with libraries like `requests`
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
import pytest
|
||||
|
||||
from django.core.urlresolvers import resolve
|
||||
from django.utils.six.moves.urllib.parse import urlparse
|
||||
|
||||
from awx.main.models.organization import Organization
|
||||
from awx.main.models.ha import Instance
|
||||
from django.contrib.auth.models import User
|
||||
@@ -21,13 +24,16 @@ def user():
|
||||
|
||||
@pytest.fixture
|
||||
def post():
|
||||
def rf(_cls, _user, _url, pk=None, kwargs={}, middleware=None):
|
||||
view = _cls.as_view()
|
||||
request = APIRequestFactory().post(_url, kwargs, format='json')
|
||||
def rf(url, data, user=None, middleware=None, **kwargs):
|
||||
view, view_args, view_kwargs = resolve(urlparse(url)[2])
|
||||
if 'format' not in kwargs:
|
||||
kwargs['format'] = 'json'
|
||||
request = APIRequestFactory().post(url, data, **kwargs)
|
||||
if middleware:
|
||||
middleware.process_request(request)
|
||||
force_authenticate(request, user=_user)
|
||||
response = view(request, pk=pk)
|
||||
if user:
|
||||
force_authenticate(request, user=user)
|
||||
response = view(request, *view_args, **view_kwargs)
|
||||
if middleware:
|
||||
middleware.process_response(request, response)
|
||||
return response
|
||||
@@ -35,13 +41,16 @@ def post():
|
||||
|
||||
@pytest.fixture
|
||||
def get():
|
||||
def rf(_cls, _user, _url, pk=None, middleware=None):
|
||||
view = _cls.as_view()
|
||||
request = APIRequestFactory().get(_url, format='json')
|
||||
def rf(url, user=None, middleware=None, **kwargs):
|
||||
view, view_args, view_kwargs = resolve(urlparse(url)[2])
|
||||
if 'format' not in kwargs:
|
||||
kwargs['format'] = 'json'
|
||||
request = APIRequestFactory().get(url, **kwargs)
|
||||
if middleware:
|
||||
middleware.process_request(request)
|
||||
force_authenticate(request, user=_user)
|
||||
response = view(request, pk=pk)
|
||||
if user:
|
||||
force_authenticate(request, user=user)
|
||||
response = view(request, *view_args, **view_kwargs)
|
||||
if middleware:
|
||||
middleware.process_response(request, response)
|
||||
return response
|
||||
|
||||
Reference in New Issue
Block a user