summaryrefslogtreecommitdiff
path: root/tests/version
diff options
context:
space:
mode:
authorWilliam Schwartz <wkschwartz@gmail.com>2021-01-04 12:04:28 -0600
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-04-01 14:33:30 +0200
commit9ee693bd6cf4074f04ec51c6f3cfe87cad392f12 (patch)
tree893e5fba17d522305a35e7f2380164cd57563472 /tests/version
parentcfe47b7686df0c4c87270a83d6d7f933323ed7e6 (diff)
downloaddjango-9ee693bd6cf4074f04ec51c6f3cfe87cad392f12.tar.gz
Fixed #32316 -- Deferred accessing __file__.
Deferred accessing the module-global variable __file__ because the Python import API does not guarantee it always exists—in particular, it does not exist in certain "frozen" environments. The following changes advanced this goal. Thanks to Carlton Gibson, Tom Forbes, Mariusz Felisiak, and Shreyas Ravi for review and feedback.
Diffstat (limited to 'tests/version')
-rw-r--r--tests/version/tests.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/tests/version/tests.py b/tests/version/tests.py
index bfa4af0496..7cf4dce0a6 100644
--- a/tests/version/tests.py
+++ b/tests/version/tests.py
@@ -1,17 +1,37 @@
+from unittest import skipUnless
+
+import django.utils.version
from django import get_version
from django.test import SimpleTestCase
-from django.utils.version import get_complete_version, get_version_tuple
+from django.utils.version import (
+ get_complete_version, get_git_changeset, get_version_tuple,
+)
class VersionTests(SimpleTestCase):
def test_development(self):
+ get_git_changeset.cache_clear()
ver_tuple = (1, 4, 0, 'alpha', 0)
# This will return a different result when it's run within or outside
# of a git clone: 1.4.devYYYYMMDDHHMMSS or 1.4.
ver_string = get_version(ver_tuple)
self.assertRegex(ver_string, r'1\.4(\.dev[0-9]+)?')
+ @skipUnless(
+ hasattr(django.utils.version, '__file__'),
+ 'test_development() checks the same when __file__ is already missing, '
+ 'e.g. in a frozen environments'
+ )
+ def test_development_no_file(self):
+ get_git_changeset.cache_clear()
+ version_file = django.utils.version.__file__
+ try:
+ del django.utils.version.__file__
+ self.test_development()
+ finally:
+ django.utils.version.__file__ = version_file
+
def test_releases(self):
tuples_to_strings = (
((1, 4, 0, 'alpha', 1), '1.4a1'),