summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRamiro Morales <ramiro@rmorales.net>2013-10-02 06:57:56 -0300
committerRamiro Morales <cramm0@gmail.com>2013-10-02 07:17:08 -0300
commit0f46ec315ea079ed1bd01d30e6e0ebec0f405c7f (patch)
tree4c62a03013d48726798b7713f0f075f686e3196b /tests
parent43959d1057f882e680545acd17e91c05691f177b (diff)
Made skipping of symlink-related makemessages test smarter.
os.symlink() is available starting with Windows Vista but can fail at runtime.
Diffstat (limited to 'tests')
-rw-r--r--tests/i18n/commands/extraction.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/tests/i18n/commands/extraction.py b/tests/i18n/commands/extraction.py
index 4139abdd37..341fa1b020 100644
--- a/tests/i18n/commands/extraction.py
+++ b/tests/i18n/commands/extraction.py
@@ -4,6 +4,7 @@ from __future__ import unicode_literals
import os
import re
import shutil
+from unittest import SkipTest
import warnings
from django.core import management
@@ -314,11 +315,20 @@ class SymlinkExtractorTests(ExtractorTests):
os.chdir(self._cwd)
def test_symlink(self):
+ # On Python < 3.2 os.symlink() exists only on Unix
if hasattr(os, 'symlink'):
if os.path.exists(self.symlinked_dir):
self.assertTrue(os.path.islink(self.symlinked_dir))
else:
- os.symlink(os.path.join(self.test_dir, 'templates'), self.symlinked_dir)
+ # On Python >= 3.2) os.symlink() exists always but then can
+ # fail at runtime when user hasn't the needed permissions on
+ # WIndows versions that support symbolink links (>= 6/Vista).
+ # See Python issue 9333 (http://bugs.python.org/issue9333).
+ # Skip the test in that case
+ try:
+ os.symlink(os.path.join(self.test_dir, 'templates'), self.symlinked_dir)
+ except (OSError, NotImplementedError):
+ raise SkipTest("os.symlink() is available on this OS but can't be used by this user.")
os.chdir(self.test_dir)
management.call_command('makemessages', locale=LOCALE, verbosity=0, symlinks=True)
self.assertTrue(os.path.exists(self.PO_FILE))