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 sphinx_rtd_theme
environ.setdefault("DJANGO_SETTINGS_MODULE", "axes.tests.settings")
environ.setdefault("DJANGO_SETTINGS_MODULE", "tests.settings")
django.setup()
# -- Extra custom configuration ------------------------------------------

View file

@ -4,7 +4,7 @@ import os
import sys
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

View file

@ -1,5 +1,4 @@
[pytest]
testpaths = axes/tests
python_files = tests.py test_*.py tests_*.py *_tests.py *_test.py
testpaths = tests
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",
install_requires=["django>=2.2", "django-ipware>=3,<4"],
include_package_data=True,
packages=find_packages(),
packages=find_packages(exclude=["tests"]),
classifiers=[
"Development Status :: 5 - Production/Stable",
"Environment :: Web Environment",

View file

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

View file

@ -6,7 +6,8 @@ from django.test import override_settings
import axes.admin
from axes.models import AccessAttempt, AccessLog
from axes.tests.base import AxesTestCase
from tests.base import 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.models import AccessAttempt
from axes.tests.base import AxesTestCase
from axes.utils import reset, reset_request
from tests.base import AxesTestCase
class GetCoolOffThresholdTestCase(AxesTestCase):
@override_settings(AXES_COOLOFF_TIME=42)

View file

@ -5,7 +5,8 @@ from axes.exceptions import (
AxesBackendRequestParameterRequired,
AxesBackendPermissionDenied,
)
from axes.tests.base import AxesTestCase
from tests.base import 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.checks import Messages, Hints, Codes
from axes.tests.base import AxesTestCase
from tests.base import AxesTestCase
class CacheCheckTestCase(AxesTestCase):
@ -75,14 +76,14 @@ class BackendCheckTestCase(AxesTestCase):
self.assertEqual(warnings, [warning])
@override_settings(
AUTHENTICATION_BACKENDS=["axes.tests.test_checks.AxesSpecializedBackend"]
AUTHENTICATION_BACKENDS=["tests.test_checks.AxesSpecializedBackend"]
)
def test_specialized_backend(self):
warnings = run_checks()
self.assertEqual(warnings, [])
@override_settings(
AUTHENTICATION_BACKENDS=["axes.tests.test_checks.AxesNotDefinedBackend"]
AUTHENTICATION_BACKENDS=["tests.test_checks.AxesNotDefinedBackend"]
)
def test_import_error(self):
with self.assertRaises(ImportError):

View file

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

View file

@ -10,7 +10,8 @@ from axes.conf import settings
from axes.handlers.proxy import AxesProxyHandler
from axes.helpers import get_client_str
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")
@ -54,7 +55,7 @@ class AxesHandlerTestCase(AxesTestCase):
request.path = url
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)
def test_is_admin_site_no_admin_site(self):
request = MagicMock()
@ -240,7 +241,7 @@ class AxesDatabaseHandlerTestCase(AxesHandlerBaseTestCase):
def test_handler_callable_failure_limit(self):
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):
self.check_handler()

View file

@ -5,7 +5,8 @@ from django.http import HttpRequest, HttpResponse
from django.test import override_settings
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():
@ -25,9 +26,7 @@ class AxesCoolOffTestCase(AxesTestCase):
def test_get_cool_off_callable(self):
self.assertEqual(get_cool_off(), timedelta(seconds=30))
@override_settings(
AXES_COOLOFF_TIME="axes.tests.test_helpers.mock_get_cool_off_str"
)
@override_settings(AXES_COOLOFF_TIME="tests.test_helpers.mock_get_cool_off_str")
def test_get_cool_off_path(self):
self.assertEqual(get_cool_off(), timedelta(seconds=30))
@ -50,9 +49,7 @@ class AxesWhitelistTestCase(AxesTestCase):
def test_is_whitelisted_override_callable(self):
self.assertTrue(is_user_attempt_whitelisted(self.request, self.credentials))
@override_settings(
AXES_WHITELIST_CALLABLE="axes.tests.test_helpers.mock_is_whitelisted"
)
@override_settings(AXES_WHITELIST_CALLABLE="tests.test_helpers.mock_is_whitelisted")
def test_is_whitelisted_override_path(self):
self.assertTrue(is_user_attempt_whitelisted(self.request, self.credentials))
@ -81,7 +78,7 @@ class AxesLockoutTestCase(AxesTestCase):
self.assertEqual(400, response.status_code)
@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):
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.models import AccessAttempt, AccessLog
from axes.tests.base import AxesTestCase
from tests.base import AxesTestCase
@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.models import AccessAttempt
from axes.helpers import get_cache, make_cache_key_list
from axes.tests.base import AxesTestCase
from tests.base import AxesTestCase
class DjangoLoginTestCase(TestCase):

View file

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

View file

@ -1,11 +1,9 @@
from unittest import mock
from django.http import HttpResponse, HttpRequest
from django.conf import settings
from django.test import override_settings
from axes.middleware import AxesMiddleware
from axes.tests.base import AxesTestCase
from tests.base import 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 axes.models import AccessAttempt, AccessLog
from axes.tests.base import AxesTestCase
from tests.base import AxesTestCase
class ModelsTestCase(AxesTestCase):

View file

@ -1,8 +1,9 @@
from unittest.mock import MagicMock
from axes.tests.base import AxesTestCase
from axes.signals import user_locked_out
from tests.base import AxesTestCase
class SignalTestCase(AxesTestCase):
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.models import AccessAttempt
from axes.tests.base import AxesTestCase
from axes.helpers import (
get_cache_timeout,
get_client_str,
@ -24,6 +23,8 @@ from axes.helpers import (
toggleable,
)
from tests.base import AxesTestCase
@override_settings(AXES_ENABLED=False)
class AxesDisabledTestCase(AxesTestCase):
@ -488,7 +489,7 @@ class UsernameTestCase(AxesTestCase):
with self.assertRaises(TypeError):
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):
self.assertEqual(get_client_username(HttpRequest(), {}), "username")