Fixed #14544 -- Squashed bug in the findstatic command when used with the --first option.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@14324 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Jannis Leidel 2010-10-23 14:32:54 +00:00
parent c1b3deedaa
commit 85ef6c0938
2 changed files with 36 additions and 0 deletions

View File

@ -17,6 +17,8 @@ class Command(LabelCommand):
verbosity = int(options.get('verbosity', 1)) verbosity = int(options.get('verbosity', 1))
result = finders.find(path, all=options['all']) result = finders.find(path, all=options['all'])
if result: if result:
if not isinstance(result, (list, tuple)):
result = [result]
output = '\n '.join((os.path.realpath(path) for path in result)) output = '\n '.join((os.path.realpath(path) for path in result))
self.stdout.write("Found %r here:\n %s\n" % (path, output)) self.stdout.write("Found %r here:\n %s\n" % (path, output))
else: else:

View File

@ -3,6 +3,7 @@ import shutil
import os import os
import sys import sys
import posixpath import posixpath
from StringIO import StringIO
from django.test import TestCase from django.test import TestCase
from django.conf import settings from django.conf import settings
@ -134,6 +135,39 @@ class TestDefaults(object):
self.assertFileContains('test/file1.txt', 'file1 in the app dir') self.assertFileContains('test/file1.txt', 'file1 in the app dir')
class TestFindStatic(BuildStaticTestCase, TestDefaults):
"""
Test ``findstatic`` management command.
"""
def _get_file(self, filepath):
_stdout = sys.stdout
sys.stdout = StringIO()
try:
call_command('findstatic', filepath, all=False, verbosity='0')
sys.stdout.seek(0)
lines = [l.strip() for l in sys.stdout.readlines()]
contents = open(lines[1].strip()).read()
finally:
sys.stdout = _stdout
return contents
def test_all_files(self):
"""
Test that findstatic returns all candidate files if run without --first.
"""
_stdout = sys.stdout
sys.stdout = StringIO()
try:
call_command('findstatic', 'test/file.txt', verbosity='0')
sys.stdout.seek(0)
lines = [l.strip() for l in sys.stdout.readlines()]
finally:
sys.stdout = _stdout
self.assertEquals(len(lines), 3) # three because there is also the "Found <file> here" line
self.failUnless('project' in lines[1])
self.failUnless('apps' in lines[2])
class TestBuildStatic(BuildStaticTestCase, TestDefaults): class TestBuildStatic(BuildStaticTestCase, TestDefaults):
""" """
Test ``collectstatic`` management command. Test ``collectstatic`` management command.