Move tests outside project source folder

This commit is contained in:
Aleksi Häkli 2021-01-06 23:42:25 +02:00
parent a37c8059bb
commit a5045f62fe
23 changed files with 42 additions and 36 deletions

View file

@ -12,7 +12,7 @@ from pkg_resources import get_distribution
import django import django
import sphinx_rtd_theme import sphinx_rtd_theme
environ.setdefault("DJANGO_SETTINGS_MODULE", "axes.tests.settings") environ.setdefault("DJANGO_SETTINGS_MODULE", "tests.settings")
django.setup() django.setup()
# -- Extra custom configuration ------------------------------------------ # -- Extra custom configuration ------------------------------------------

View file

@ -4,7 +4,7 @@ import os
import sys import sys
if __name__ == "__main__": if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "axes.tests.settings") os.environ.setdefault("DJANGO_SETTINGS_MODULE", "tests.settings")
from django.core.management import execute_from_command_line from django.core.management import execute_from_command_line

View file

@ -1,5 +1,4 @@
[pytest] [pytest]
testpaths = axes/tests testpaths = tests
python_files = tests.py test_*.py tests_*.py *_tests.py *_test.py
addopts = --cov axes --cov-config .coveragerc --cov-append --cov-report term-missing --cov-report=xml addopts = --cov axes --cov-config .coveragerc --cov-append --cov-report term-missing --cov-report=xml
DJANGO_SETTINGS_MODULE = axes.tests.settings DJANGO_SETTINGS_MODULE = tests.settings

View file

@ -38,7 +38,7 @@ setup(
python_requires="~=3.6", python_requires="~=3.6",
install_requires=["django>=2.2", "django-ipware>=3,<4"], install_requires=["django>=2.2", "django-ipware>=3,<4"],
include_package_data=True, include_package_data=True,
packages=find_packages(), packages=find_packages(exclude=["tests"]),
classifiers=[ classifiers=[
"Development Status :: 5 - Production/Stable", "Development Status :: 5 - Production/Stable",
"Environment :: Web Environment", "Environment :: Web Environment",

View file

@ -26,7 +26,7 @@ AUTHENTICATION_BACKENDS = [
PASSWORD_HASHERS = ["django.contrib.auth.hashers.MD5PasswordHasher"] PASSWORD_HASHERS = ["django.contrib.auth.hashers.MD5PasswordHasher"]
ROOT_URLCONF = "axes.tests.urls" ROOT_URLCONF = "tests.urls"
INSTALLED_APPS = [ INSTALLED_APPS = [
"django.contrib.auth", "django.contrib.auth",

View file

@ -6,7 +6,8 @@ from django.test import override_settings
import axes.admin import axes.admin
from axes.models import AccessAttempt, AccessLog from axes.models import AccessAttempt, AccessLog
from axes.tests.base import AxesTestCase
from tests.base import AxesTestCase
class AxesEnableAdminFlag(AxesTestCase): class AxesEnableAdminFlag(AxesTestCase):

View file

@ -6,9 +6,10 @@ from django.utils.timezone import now
from axes.attempts import get_cool_off_threshold from axes.attempts import get_cool_off_threshold
from axes.models import AccessAttempt from axes.models import AccessAttempt
from axes.tests.base import AxesTestCase
from axes.utils import reset, reset_request from axes.utils import reset, reset_request
from tests.base import AxesTestCase
class GetCoolOffThresholdTestCase(AxesTestCase): class GetCoolOffThresholdTestCase(AxesTestCase):
@override_settings(AXES_COOLOFF_TIME=42) @override_settings(AXES_COOLOFF_TIME=42)

View file

@ -5,7 +5,8 @@ from axes.exceptions import (
AxesBackendRequestParameterRequired, AxesBackendRequestParameterRequired,
AxesBackendPermissionDenied, AxesBackendPermissionDenied,
) )
from axes.tests.base import AxesTestCase
from tests.base import AxesTestCase
class BackendTestCase(AxesTestCase): class BackendTestCase(AxesTestCase):

View file

@ -3,7 +3,8 @@ from django.test import override_settings, modify_settings
from axes.backends import AxesBackend from axes.backends import AxesBackend
from axes.checks import Messages, Hints, Codes from axes.checks import Messages, Hints, Codes
from axes.tests.base import AxesTestCase
from tests.base import AxesTestCase
class CacheCheckTestCase(AxesTestCase): class CacheCheckTestCase(AxesTestCase):
@ -75,14 +76,14 @@ class BackendCheckTestCase(AxesTestCase):
self.assertEqual(warnings, [warning]) self.assertEqual(warnings, [warning])
@override_settings( @override_settings(
AUTHENTICATION_BACKENDS=["axes.tests.test_checks.AxesSpecializedBackend"] AUTHENTICATION_BACKENDS=["tests.test_checks.AxesSpecializedBackend"]
) )
def test_specialized_backend(self): def test_specialized_backend(self):
warnings = run_checks() warnings = run_checks()
self.assertEqual(warnings, []) self.assertEqual(warnings, [])
@override_settings( @override_settings(
AUTHENTICATION_BACKENDS=["axes.tests.test_checks.AxesNotDefinedBackend"] AUTHENTICATION_BACKENDS=["tests.test_checks.AxesNotDefinedBackend"]
) )
def test_import_error(self): def test_import_error(self):
with self.assertRaises(ImportError): with self.assertRaises(ImportError):

View file

@ -3,7 +3,8 @@ from unittest.mock import MagicMock, patch
from django.http import HttpResponse from django.http import HttpResponse
from axes.decorators import axes_dispatch, axes_form_invalid from axes.decorators import axes_dispatch, axes_form_invalid
from axes.tests.base import AxesTestCase
from tests.base import AxesTestCase
class DecoratorTestCase(AxesTestCase): class DecoratorTestCase(AxesTestCase):

View file

@ -10,7 +10,8 @@ from axes.conf import settings
from axes.handlers.proxy import AxesProxyHandler from axes.handlers.proxy import AxesProxyHandler
from axes.helpers import get_client_str from axes.helpers import get_client_str
from axes.models import AccessAttempt, AccessLog from axes.models import AccessAttempt, AccessLog
from axes.tests.base import AxesTestCase
from tests.base import AxesTestCase
@override_settings(AXES_HANDLER="axes.handlers.base.AxesHandler") @override_settings(AXES_HANDLER="axes.handlers.base.AxesHandler")
@ -54,7 +55,7 @@ class AxesHandlerTestCase(AxesTestCase):
request.path = url request.path = url
self.assertEqual(AxesProxyHandler().is_admin_site(request), expected) self.assertEqual(AxesProxyHandler().is_admin_site(request), expected)
@override_settings(ROOT_URLCONF="axes.tests.urls_empty") @override_settings(ROOT_URLCONF="tests.urls_empty")
@override_settings(AXES_ONLY_ADMIN_SITE=True) @override_settings(AXES_ONLY_ADMIN_SITE=True)
def test_is_admin_site_no_admin_site(self): def test_is_admin_site_no_admin_site(self):
request = MagicMock() request = MagicMock()
@ -240,7 +241,7 @@ class AxesDatabaseHandlerTestCase(AxesHandlerBaseTestCase):
def test_handler_callable_failure_limit(self): def test_handler_callable_failure_limit(self):
self.check_handler() self.check_handler()
@override_settings(AXES_FAILURE_LIMIT="axes.tests.base.custom_failure_limit") @override_settings(AXES_FAILURE_LIMIT="tests.base.custom_failure_limit")
def test_handler_str_failure_limit(self): def test_handler_str_failure_limit(self):
self.check_handler() self.check_handler()

View file

@ -5,7 +5,8 @@ from django.http import HttpRequest, HttpResponse
from django.test import override_settings from django.test import override_settings
from axes.helpers import get_cool_off, get_lockout_response, is_user_attempt_whitelisted from axes.helpers import get_cool_off, get_lockout_response, is_user_attempt_whitelisted
from axes.tests.base import AxesTestCase
from tests.base import AxesTestCase
def mock_get_cool_off_str(): def mock_get_cool_off_str():
@ -25,9 +26,7 @@ class AxesCoolOffTestCase(AxesTestCase):
def test_get_cool_off_callable(self): def test_get_cool_off_callable(self):
self.assertEqual(get_cool_off(), timedelta(seconds=30)) self.assertEqual(get_cool_off(), timedelta(seconds=30))
@override_settings( @override_settings(AXES_COOLOFF_TIME="tests.test_helpers.mock_get_cool_off_str")
AXES_COOLOFF_TIME="axes.tests.test_helpers.mock_get_cool_off_str"
)
def test_get_cool_off_path(self): def test_get_cool_off_path(self):
self.assertEqual(get_cool_off(), timedelta(seconds=30)) self.assertEqual(get_cool_off(), timedelta(seconds=30))
@ -50,9 +49,7 @@ class AxesWhitelistTestCase(AxesTestCase):
def test_is_whitelisted_override_callable(self): def test_is_whitelisted_override_callable(self):
self.assertTrue(is_user_attempt_whitelisted(self.request, self.credentials)) self.assertTrue(is_user_attempt_whitelisted(self.request, self.credentials))
@override_settings( @override_settings(AXES_WHITELIST_CALLABLE="tests.test_helpers.mock_is_whitelisted")
AXES_WHITELIST_CALLABLE="axes.tests.test_helpers.mock_is_whitelisted"
)
def test_is_whitelisted_override_path(self): def test_is_whitelisted_override_path(self):
self.assertTrue(is_user_attempt_whitelisted(self.request, self.credentials)) self.assertTrue(is_user_attempt_whitelisted(self.request, self.credentials))
@ -81,7 +78,7 @@ class AxesLockoutTestCase(AxesTestCase):
self.assertEqual(400, response.status_code) self.assertEqual(400, response.status_code)
@override_settings( @override_settings(
AXES_LOCKOUT_CALLABLE="axes.tests.test_helpers.mock_get_lockout_response" AXES_LOCKOUT_CALLABLE="tests.test_helpers.mock_get_lockout_response"
) )
def test_get_lockout_response_override_path(self): def test_get_lockout_response_override_path(self):
response = get_lockout_response(self.request, self.credentials) response = get_lockout_response(self.request, self.credentials)

View file

@ -5,7 +5,8 @@ from django.urls import reverse
from axes.apps import AppConfig from axes.apps import AppConfig
from axes.models import AccessAttempt, AccessLog from axes.models import AccessAttempt, AccessLog
from axes.tests.base import AxesTestCase
from tests.base import AxesTestCase
@patch("axes.apps.AppConfig.initialized", False) @patch("axes.apps.AppConfig.initialized", False)

View file

@ -14,7 +14,8 @@ from django.contrib.auth import get_user_model, login, logout
from axes.conf import settings from axes.conf import settings
from axes.models import AccessAttempt from axes.models import AccessAttempt
from axes.helpers import get_cache, make_cache_key_list from axes.helpers import get_cache, make_cache_key_list
from axes.tests.base import AxesTestCase
from tests.base import AxesTestCase
class DjangoLoginTestCase(TestCase): class DjangoLoginTestCase(TestCase):

View file

@ -5,7 +5,8 @@ from django.core.management import call_command
from django.utils import timezone from django.utils import timezone
from axes.models import AccessAttempt, AccessLog from axes.models import AccessAttempt, AccessLog
from axes.tests.base import AxesTestCase
from tests.base import AxesTestCase
class ResetAccessLogsManagementCommandTestCase(AxesTestCase): class ResetAccessLogsManagementCommandTestCase(AxesTestCase):

View file

@ -1,11 +1,9 @@
from unittest import mock
from django.http import HttpResponse, HttpRequest from django.http import HttpResponse, HttpRequest
from django.conf import settings
from django.test import override_settings from django.test import override_settings
from axes.middleware import AxesMiddleware from axes.middleware import AxesMiddleware
from axes.tests.base import AxesTestCase
from tests.base import AxesTestCase
class MiddlewareTestCase(AxesTestCase): class MiddlewareTestCase(AxesTestCase):

View file

@ -5,7 +5,8 @@ from django.db.migrations.executor import MigrationExecutor
from django.db.migrations.state import ProjectState from django.db.migrations.state import ProjectState
from axes.models import AccessAttempt, AccessLog from axes.models import AccessAttempt, AccessLog
from axes.tests.base import AxesTestCase
from tests.base import AxesTestCase
class ModelsTestCase(AxesTestCase): class ModelsTestCase(AxesTestCase):

View file

@ -1,8 +1,9 @@
from unittest.mock import MagicMock from unittest.mock import MagicMock
from axes.tests.base import AxesTestCase
from axes.signals import user_locked_out from axes.signals import user_locked_out
from tests.base import AxesTestCase
class SignalTestCase(AxesTestCase): class SignalTestCase(AxesTestCase):
def test_send_lockout_signal(self): def test_send_lockout_signal(self):

View file

@ -7,7 +7,6 @@ from django.test import override_settings, RequestFactory
from axes.apps import AppConfig from axes.apps import AppConfig
from axes.models import AccessAttempt from axes.models import AccessAttempt
from axes.tests.base import AxesTestCase
from axes.helpers import ( from axes.helpers import (
get_cache_timeout, get_cache_timeout,
get_client_str, get_client_str,
@ -24,6 +23,8 @@ from axes.helpers import (
toggleable, toggleable,
) )
from tests.base import AxesTestCase
@override_settings(AXES_ENABLED=False) @override_settings(AXES_ENABLED=False)
class AxesDisabledTestCase(AxesTestCase): class AxesDisabledTestCase(AxesTestCase):
@ -488,7 +489,7 @@ class UsernameTestCase(AxesTestCase):
with self.assertRaises(TypeError): with self.assertRaises(TypeError):
get_client_username(HttpRequest(), {}) get_client_username(HttpRequest(), {})
@override_settings(AXES_USERNAME_CALLABLE="axes.tests.test_utils.get_username") @override_settings(AXES_USERNAME_CALLABLE="tests.test_utils.get_username")
def test_get_client_username_str(self): def test_get_client_username_str(self):
self.assertEqual(get_client_username(HttpRequest(), {}), "username") self.assertEqual(get_client_username(HttpRequest(), {}), "username")