Kaydet (Commit) 908bdea4 authored tarafından Patrick Michaud's avatar Patrick Michaud Kaydeden (comit) Claude Paroz

[1.7.x] Fixed #22256 -- Replaced bad fallback for missing PATH

Thanks Baptiste Mispelon for the review.
Backport of acee46fc from master.
üst 07d4b3c8
...@@ -57,7 +57,7 @@ def handle_extensions(extensions=('html',), ignored=('py',)): ...@@ -57,7 +57,7 @@ def handle_extensions(extensions=('html',), ignored=('py',)):
def find_command(cmd, path=None, pathext=None): def find_command(cmd, path=None, pathext=None):
if path is None: if path is None:
path = os.environ.get('PATH', []).split(os.pathsep) path = os.environ.get('PATH', '').split(os.pathsep)
if isinstance(path, six.string_types): if isinstance(path, six.string_types):
path = [path] path = [path]
# check if there are funny path extensions for executables, e.g. Windows # check if there are funny path extensions for executables, e.g. Windows
......
import os
import sys import sys
from django.core import management from django.core import management
from django.core.management import CommandError from django.core.management import CommandError
from django.core.management.utils import popen_wrapper from django.core.management.utils import find_command, popen_wrapper
from django.test import SimpleTestCase from django.test import SimpleTestCase
from django.utils import translation from django.utils import translation
from django.utils.six import StringIO from django.utils.six import StringIO
...@@ -60,6 +61,19 @@ class CommandTests(SimpleTestCase): ...@@ -60,6 +61,19 @@ class CommandTests(SimpleTestCase):
management.call_command('leave_locale_alone_true', stdout=out) management.call_command('leave_locale_alone_true', stdout=out)
self.assertEqual(out.getvalue(), "pl\n") self.assertEqual(out.getvalue(), "pl\n")
def test_find_command_without_PATH(self):
"""
find_command should still work when the PATH environment variable
doesn't exist (#22256).
"""
current_path = os.environ.pop('PATH', None)
try:
self.assertIsNone(find_command('_missing_'))
finally:
if current_path is not None:
os.environ['PATH'] = current_path
class UtilsTests(SimpleTestCase): class UtilsTests(SimpleTestCase):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment