diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-01-18 09:46:01 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-18 09:46:01 +0100 |
| commit | 3bbe22dafcc69c5ffa79707f5a74eb1faf466e12 (patch) | |
| tree | 4bec6a7016732be33f2e1cddd80c18478cb2dee9 /tests | |
| parent | d54717118360e8679aa2bd0c5a1625f3e84712ba (diff) | |
Fixed #34233 -- Dropped support for Python 3.8 and 3.9.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/admin_scripts/tests.py | 9 | ||||
| -rw-r--r-- | tests/admin_views/tests.py | 6 | ||||
| -rw-r--r-- | tests/admin_widgets/tests.py | 6 | ||||
| -rw-r--r-- | tests/db_functions/datetime/test_extract_trunc.py | 6 | ||||
| -rw-r--r-- | tests/migrations/test_writer.py | 6 | ||||
| -rw-r--r-- | tests/requirements/py3.txt | 1 | ||||
| -rw-r--r-- | tests/test_utils/tests.py | 43 | ||||
| -rw-r--r-- | tests/timezones/tests.py | 6 | ||||
| -rw-r--r-- | tests/utils_tests/test_autoreload.py | 6 | ||||
| -rw-r--r-- | tests/utils_tests/test_module_loading.py | 34 | ||||
| -rw-r--r-- | tests/utils_tests/test_timezone.py | 6 |
11 files changed, 15 insertions, 114 deletions
diff --git a/tests/admin_scripts/tests.py b/tests/admin_scripts/tests.py index 4149a31e21..51d0498ff7 100644 --- a/tests/admin_scripts/tests.py +++ b/tests/admin_scripts/tests.py @@ -32,7 +32,6 @@ from django.db.migrations.recorder import MigrationRecorder from django.test import LiveServerTestCase, SimpleTestCase, TestCase, override_settings from django.test.utils import captured_stderr, captured_stdout from django.urls import path -from django.utils.version import PY39 from django.views.static import serve from . import urls @@ -107,7 +106,7 @@ class AdminScriptTestCase(SimpleTestCase): paths.append(os.path.dirname(backend_dir)) return paths - def run_test(self, args, settings_file=None, apps=None, umask=None): + def run_test(self, args, settings_file=None, apps=None, umask=-1): base_dir = os.path.dirname(self.test_dir) # The base dir for Django's tests is one level up. tests_dir = os.path.dirname(os.path.dirname(__file__)) @@ -136,12 +135,11 @@ class AdminScriptTestCase(SimpleTestCase): cwd=self.test_dir, env=test_environ, text=True, - # subprocess.run()'s umask was added in Python 3.9. - **({"umask": umask} if umask and PY39 else {}), + umask=umask, ) return p.stdout, p.stderr - def run_django_admin(self, args, settings_file=None, umask=None): + def run_django_admin(self, args, settings_file=None, umask=-1): return self.run_test(["-m", "django", *args], settings_file, umask=umask) def run_manage(self, args, settings_file=None, manage_py=None): @@ -2812,7 +2810,6 @@ class StartProject(LiveServerTestCase, AdminScriptTestCase): sys.platform == "win32", "Windows only partially supports umasks and chmod.", ) - @unittest.skipUnless(PY39, "subprocess.run()'s umask was added in Python 3.9.") def test_honor_umask(self): _, err = self.run_django_admin(["startproject", "testproject"], umask=0o077) self.assertNoOutput(err) diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index f7764a7f36..86fb9740a5 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -2,14 +2,10 @@ import datetime import os import re import unittest +import zoneinfo from unittest import mock from urllib.parse import parse_qsl, urljoin, urlparse -try: - import zoneinfo -except ImportError: - from backports import zoneinfo - from django.contrib import admin from django.contrib.admin import AdminSite, ModelAdmin from django.contrib.admin.helpers import ACTION_CHECKBOX_NAME diff --git a/tests/admin_widgets/tests.py b/tests/admin_widgets/tests.py index 70b1233ef4..4948a60ee0 100644 --- a/tests/admin_widgets/tests.py +++ b/tests/admin_widgets/tests.py @@ -1,15 +1,11 @@ import gettext import os import re +import zoneinfo from datetime import datetime, timedelta from importlib import import_module from unittest import skipUnless -try: - import zoneinfo -except ImportError: - from backports import zoneinfo - from django import forms from django.conf import settings from django.contrib import admin diff --git a/tests/db_functions/datetime/test_extract_trunc.py b/tests/db_functions/datetime/test_extract_trunc.py index 80043fe3f4..29212b6e24 100644 --- a/tests/db_functions/datetime/test_extract_trunc.py +++ b/tests/db_functions/datetime/test_extract_trunc.py @@ -1,11 +1,7 @@ +import zoneinfo from datetime import datetime, timedelta from datetime import timezone as datetime_timezone -try: - import zoneinfo -except ImportError: - from backports import zoneinfo - from django.conf import settings from django.db import DataError, OperationalError from django.db.models import ( diff --git a/tests/migrations/test_writer.py b/tests/migrations/test_writer.py index 9c026ffb82..0762c43dde 100644 --- a/tests/migrations/test_writer.py +++ b/tests/migrations/test_writer.py @@ -8,13 +8,9 @@ import pathlib import re import sys import uuid +import zoneinfo from unittest import mock -try: - import zoneinfo -except ImportError: - from backports import zoneinfo - import custom_migration_operations.more_operations import custom_migration_operations.operations diff --git a/tests/requirements/py3.txt b/tests/requirements/py3.txt index 397aaa06b1..3cc35b8c61 100644 --- a/tests/requirements/py3.txt +++ b/tests/requirements/py3.txt @@ -1,7 +1,6 @@ aiosmtpd asgiref >= 3.6.0 argon2-cffi >= 19.2.0 -backports.zoneinfo; python_version < '3.9' bcrypt black docutils diff --git a/tests/test_utils/tests.py b/tests/test_utils/tests.py index aa58b47a94..be95f5ec03 100644 --- a/tests/test_utils/tests.py +++ b/tests/test_utils/tests.py @@ -1,4 +1,3 @@ -import logging import os import unittest import warnings @@ -47,7 +46,6 @@ from django.test.utils import ( ) from django.urls import NoReverseMatch, path, reverse, reverse_lazy from django.utils.deprecation import RemovedInDjango51Warning -from django.utils.log import DEFAULT_LOGGING from django.utils.version import PY311 from .models import Car, Person, PossessedCar @@ -1198,47 +1196,6 @@ class AssertWarnsMessageTests(SimpleTestCase): func1() -# TODO: Remove when dropping support for PY39. -class AssertNoLogsTest(SimpleTestCase): - @classmethod - def setUpClass(cls): - super().setUpClass() - logging.config.dictConfig(DEFAULT_LOGGING) - cls.addClassCleanup(logging.config.dictConfig, settings.LOGGING) - - def setUp(self): - self.logger = logging.getLogger("django") - - @override_settings(DEBUG=True) - def test_fails_when_log_emitted(self): - msg = "Unexpected logs found: ['INFO:django:FAIL!']" - with self.assertRaisesMessage(AssertionError, msg): - with self.assertNoLogs("django", "INFO"): - self.logger.info("FAIL!") - - @override_settings(DEBUG=True) - def test_text_level(self): - with self.assertNoLogs("django", "INFO"): - self.logger.debug("DEBUG logs are ignored.") - - @override_settings(DEBUG=True) - def test_int_level(self): - with self.assertNoLogs("django", logging.INFO): - self.logger.debug("DEBUG logs are ignored.") - - @override_settings(DEBUG=True) - def test_default_level(self): - with self.assertNoLogs("django"): - self.logger.debug("DEBUG logs are ignored.") - - @override_settings(DEBUG=True) - def test_does_not_hide_other_failures(self): - msg = "1 != 2" - with self.assertRaisesMessage(AssertionError, msg): - with self.assertNoLogs("django"): - self.assertEqual(1, 2) - - class AssertFieldOutputTests(SimpleTestCase): def test_assert_field_output(self): error_invalid = ["Enter a valid email address."] diff --git a/tests/timezones/tests.py b/tests/timezones/tests.py index 56784db207..e3e2ea431e 100644 --- a/tests/timezones/tests.py +++ b/tests/timezones/tests.py @@ -1,15 +1,11 @@ import datetime import re import sys +import zoneinfo from contextlib import contextmanager from unittest import SkipTest, skipIf from xml.dom.minidom import parseString -try: - import zoneinfo -except ImportError: - from backports import zoneinfo - from django.contrib.auth.models import User from django.core import serializers from django.db import connection diff --git a/tests/utils_tests/test_autoreload.py b/tests/utils_tests/test_autoreload.py index b6286925b7..e33276ba61 100644 --- a/tests/utils_tests/test_autoreload.py +++ b/tests/utils_tests/test_autoreload.py @@ -9,16 +9,12 @@ import time import types import weakref import zipfile +import zoneinfo from importlib import import_module from pathlib import Path from subprocess import CompletedProcess from unittest import mock, skip, skipIf -try: - import zoneinfo -except ImportError: - from backports import zoneinfo - import django.__main__ from django.apps.registry import Apps from django.test import SimpleTestCase diff --git a/tests/utils_tests/test_module_loading.py b/tests/utils_tests/test_module_loading.py index 736d456d2d..80ada3abd7 100644 --- a/tests/utils_tests/test_module_loading.py +++ b/tests/utils_tests/test_module_loading.py @@ -11,7 +11,6 @@ from django.utils.module_loading import ( import_string, module_has_submodule, ) -from django.utils.version import PY310 class DefaultLoader(unittest.TestCase): @@ -205,35 +204,12 @@ class AutodiscoverModulesTestCase(SimpleTestCase): self.assertEqual(site._registry, {"lorem": "ipsum"}) -if PY310: +class TestFinder: + def __init__(self, *args, **kwargs): + self.importer = zipimporter(*args, **kwargs) - class TestFinder: - def __init__(self, *args, **kwargs): - self.importer = zipimporter(*args, **kwargs) - - def find_spec(self, path, target=None): - return self.importer.find_spec(path, target) - -else: - - class TestFinder: - def __init__(self, *args, **kwargs): - self.importer = zipimporter(*args, **kwargs) - - def find_module(self, path): - importer = self.importer.find_module(path) - if importer is None: - return - return TestLoader(importer) - - class TestLoader: - def __init__(self, importer): - self.importer = importer - - def load_module(self, name): - mod = self.importer.load_module(name) - mod.__loader__ = self - return mod + def find_spec(self, path, target=None): + return self.importer.find_spec(path, target) class CustomLoader(EggLoader): diff --git a/tests/utils_tests/test_timezone.py b/tests/utils_tests/test_timezone.py index 931347ad46..43bb2bc7a3 100644 --- a/tests/utils_tests/test_timezone.py +++ b/tests/utils_tests/test_timezone.py @@ -1,11 +1,7 @@ import datetime +import zoneinfo from unittest import mock -try: - import zoneinfo -except ImportError: - from backports import zoneinfo - from django.test import SimpleTestCase, override_settings from django.utils import timezone |
