mirror of
https://github.com/ansible/awx.git
synced 2026-05-07 09:27:36 -02:30
Fix up deprecation warning about get_response for middleware
It will no longer be allowed to be None by Django 4.0
This commit is contained in:
@@ -103,7 +103,7 @@ def _customize_graph():
|
|||||||
|
|
||||||
|
|
||||||
class URLModificationMiddleware(MiddlewareMixin):
|
class URLModificationMiddleware(MiddlewareMixin):
|
||||||
def __init__(self, get_response=None):
|
def __init__(self, get_response):
|
||||||
models = [m for m in apps.get_app_config('main').get_models() if hasattr(m, 'get_absolute_url')]
|
models = [m for m in apps.get_app_config('main').get_models() if hasattr(m, 'get_absolute_url')]
|
||||||
generate_graph(models)
|
generate_graph(models)
|
||||||
_customize_graph()
|
_customize_graph()
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from datetime import date
|
from datetime import date
|
||||||
|
from unittest import mock
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
@@ -17,7 +18,7 @@ EXAMPLE_USER_DATA = {"username": "affable", "first_name": "a", "last_name": "a",
|
|||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_user_create(post, admin):
|
def test_user_create(post, admin):
|
||||||
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin, middleware=SessionMiddleware())
|
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin, middleware=SessionMiddleware(mock.Mock()))
|
||||||
assert response.status_code == 201
|
assert response.status_code == 201
|
||||||
assert not response.data['is_superuser']
|
assert not response.data['is_superuser']
|
||||||
assert not response.data['is_system_auditor']
|
assert not response.data['is_system_auditor']
|
||||||
@@ -25,22 +26,22 @@ def test_user_create(post, admin):
|
|||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_fail_double_create_user(post, admin):
|
def test_fail_double_create_user(post, admin):
|
||||||
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin, middleware=SessionMiddleware())
|
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin, middleware=SessionMiddleware(mock.Mock()))
|
||||||
assert response.status_code == 201
|
assert response.status_code == 201
|
||||||
|
|
||||||
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin, middleware=SessionMiddleware())
|
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin, middleware=SessionMiddleware(mock.Mock()))
|
||||||
assert response.status_code == 400
|
assert response.status_code == 400
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_create_delete_create_user(post, delete, admin):
|
def test_create_delete_create_user(post, delete, admin):
|
||||||
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin, middleware=SessionMiddleware())
|
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin, middleware=SessionMiddleware(mock.Mock()))
|
||||||
assert response.status_code == 201
|
assert response.status_code == 201
|
||||||
|
|
||||||
response = delete(reverse('api:user_detail', kwargs={'pk': response.data['id']}), admin, middleware=SessionMiddleware())
|
response = delete(reverse('api:user_detail', kwargs={'pk': response.data['id']}), admin, middleware=SessionMiddleware(mock.Mock()))
|
||||||
assert response.status_code == 204
|
assert response.status_code == 204
|
||||||
|
|
||||||
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin, middleware=SessionMiddleware())
|
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin, middleware=SessionMiddleware(mock.Mock()))
|
||||||
print(response.data)
|
print(response.data)
|
||||||
assert response.status_code == 201
|
assert response.status_code == 201
|
||||||
|
|
||||||
@@ -48,7 +49,7 @@ def test_create_delete_create_user(post, delete, admin):
|
|||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
def test_user_cannot_update_last_login(patch, admin):
|
def test_user_cannot_update_last_login(patch, admin):
|
||||||
assert admin.last_login is None
|
assert admin.last_login is None
|
||||||
patch(reverse('api:user_detail', kwargs={'pk': admin.pk}), {'last_login': '2020-03-13T16:39:47.303016Z'}, admin, middleware=SessionMiddleware())
|
patch(reverse('api:user_detail', kwargs={'pk': admin.pk}), {'last_login': '2020-03-13T16:39:47.303016Z'}, admin, middleware=SessionMiddleware(mock.Mock()))
|
||||||
assert User.objects.get(pk=admin.pk).last_login is None
|
assert User.objects.get(pk=admin.pk).last_login is None
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
from unittest import mock
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from django.core.exceptions import ImproperlyConfigured
|
from django.core.exceptions import ImproperlyConfigured
|
||||||
@@ -31,7 +33,7 @@ def setup_module(module):
|
|||||||
# in unit test environment. So it is wrapped by try-except block to mute any
|
# in unit test environment. So it is wrapped by try-except block to mute any
|
||||||
# unwanted exceptions.
|
# unwanted exceptions.
|
||||||
try:
|
try:
|
||||||
URLModificationMiddleware()
|
URLModificationMiddleware(mock.Mock())
|
||||||
except ImproperlyConfigured:
|
except ImproperlyConfigured:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,12 @@
|
|||||||
from importlib import import_module
|
from importlib import import_module
|
||||||
import pytest
|
import pytest
|
||||||
import re
|
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.test.utils import override_settings
|
from django.test.utils import override_settings
|
||||||
from django.contrib.sessions.middleware import SessionMiddleware
|
|
||||||
from django.contrib.sessions.models import Session
|
from django.contrib.sessions.models import Session
|
||||||
from django.contrib.auth import SESSION_KEY
|
from django.contrib.auth import SESSION_KEY
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
from awx.api.versioning import reverse
|
|
||||||
|
|
||||||
|
|
||||||
class AlwaysPassBackend(object):
|
class AlwaysPassBackend(object):
|
||||||
|
|
||||||
@@ -30,26 +26,6 @@ def test_login_json_not_allowed(get, accept, status):
|
|||||||
get('/api/login/', HTTP_ACCEPT=accept, expect=status)
|
get('/api/login/', HTTP_ACCEPT=accept, expect=status)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skip(reason="Needs Update - CA")
|
|
||||||
@pytest.mark.django_db
|
|
||||||
def test_session_create_delete(admin, post, get):
|
|
||||||
AlwaysPassBackend.user = admin
|
|
||||||
with override_settings(AUTHENTICATION_BACKENDS=(AlwaysPassBackend.get_backend_path(),), SESSION_COOKIE_NAME='session_id'):
|
|
||||||
response = post(
|
|
||||||
'/api/login/',
|
|
||||||
data={'username': admin.username, 'password': admin.password, 'next': '/api/'},
|
|
||||||
expect=302,
|
|
||||||
middleware=SessionMiddleware(),
|
|
||||||
format='multipart',
|
|
||||||
)
|
|
||||||
assert 'session_id' in response.cookies
|
|
||||||
session_key = re.findall(r'session_id=[a-zA-z0-9]+', str(response.cookies['session_id']))[0][len('session_id=') :]
|
|
||||||
session = Session.objects.get(session_key=session_key)
|
|
||||||
assert int(session.get_decoded()[SESSION_KEY]) == admin.pk
|
|
||||||
response = get('/api/logout/', middleware=SessionMiddleware(), cookies={'session_id': session_key}, expect=302)
|
|
||||||
assert not Session.objects.filter(session_key=session_key).exists()
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.django_db
|
@pytest.mark.django_db
|
||||||
@mock.patch('awx.main.consumers.emit_channel_notification')
|
@mock.patch('awx.main.consumers.emit_channel_notification')
|
||||||
def test_sessions_unlimited(emit, admin):
|
def test_sessions_unlimited(emit, admin):
|
||||||
@@ -81,21 +57,3 @@ def test_session_overlimit(emit, admin, alice):
|
|||||||
store = import_module(settings.SESSION_ENGINE).SessionStore()
|
store = import_module(settings.SESSION_ENGINE).SessionStore()
|
||||||
store.create_model_instance({SESSION_KEY: alice.pk}).save()
|
store.create_model_instance({SESSION_KEY: alice.pk}).save()
|
||||||
assert Session.objects.count() == 4
|
assert Session.objects.count() == 4
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skip(reason="Needs Update - CA")
|
|
||||||
@pytest.mark.django_db
|
|
||||||
def test_password_update_clears_sessions(admin, alice, post, patch):
|
|
||||||
AlwaysPassBackend.user = alice
|
|
||||||
with override_settings(AUTHENTICATION_BACKENDS=(AlwaysPassBackend.get_backend_path(),), SESSION_COOKIE_NAME='session_id'):
|
|
||||||
response = post(
|
|
||||||
'/api/login/',
|
|
||||||
data={'username': alice.username, 'password': alice.password, 'next': '/api/'},
|
|
||||||
expect=302,
|
|
||||||
middleware=SessionMiddleware(),
|
|
||||||
format='multipart',
|
|
||||||
)
|
|
||||||
session_key = re.findall(r'session_id=[a-zA-z0-9]+', str(response.cookies['session_id']))[0][len('session_id=') :]
|
|
||||||
assert Session.objects.filter(session_key=session_key).exists()
|
|
||||||
patch(reverse('api:user_detail', kwargs={'pk': alice.pk}), admin, data={'password': 'new_password'}, expect=200)
|
|
||||||
assert not Session.objects.filter(session_key=session_key).exists()
|
|
||||||
|
|||||||
Reference in New Issue
Block a user