summaryrefslogtreecommitdiff
path: root/tests/utils_tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/utils_tests')
-rw-r--r--tests/utils_tests/test_warnings.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/utils_tests/test_warnings.py b/tests/utils_tests/test_warnings.py
new file mode 100644
index 0000000000..0c98e8ebe4
--- /dev/null
+++ b/tests/utils_tests/test_warnings.py
@@ -0,0 +1,34 @@
+import os
+from pathlib import Path
+
+import django
+from django.test import SimpleTestCase
+from django.utils.warnings import django_file_prefixes
+
+
+class DjangoFilePrefixesTests(SimpleTestCase):
+ def setUp(self):
+ django_file_prefixes.cache_clear()
+ self.addCleanup(django_file_prefixes.cache_clear)
+
+ def test_no_file(self):
+ orig_file = django.__file__
+ try:
+ # Depending on the cwd, Python might give a local checkout
+ # precedence over installed Django, producing None.
+ django.__file__ = None
+ self.assertEqual(django_file_prefixes(), ())
+ del django.__file__
+ self.assertEqual(django_file_prefixes(), ())
+ finally:
+ django.__file__ = orig_file
+
+ def test_with_file(self):
+ prefixes = django_file_prefixes()
+ self.assertIsInstance(prefixes, tuple)
+ self.assertEqual(len(prefixes), 1)
+ self.assertTrue(prefixes[0].endswith(f"{os.path.sep}django{os.path.sep}"))
+
+ def test_does_not_match_packages_prefixed_with_django(self):
+ other_file = Path(django.__file__).parent.parent / "djangoextra" / "__init__.py"
+ self.assertFalse(str(other_file).startswith(django_file_prefixes()))