Skip to content

Commit

Permalink
Ensure that the staticfiles tests use the MEDIA_ROOT they intended, a…
Browse files Browse the repository at this point in the history
…lso use a more approrpiate datastructure in collectstatic.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@14401 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
alex committed Oct 30, 2010
1 parent 03b12ae commit aa951eb
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 8 deletions.
14 changes: 7 additions & 7 deletions django/contrib/staticfiles/management/commands/collectstatic.py
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ def handle_noargs(self, **options):
if options['use_default_ignore_patterns']: if options['use_default_ignore_patterns']:
ignore_patterns += ['CVS', '.*', '*~'] ignore_patterns += ['CVS', '.*', '*~']
ignore_patterns = list(set(ignore_patterns)) ignore_patterns = list(set(ignore_patterns))
self.copied_files = [] self.copied_files = set()
self.symlinked_files = [] self.symlinked_files = set()
self.unmodified_files = [] self.unmodified_files = set()
self.destination_storage = get_storage_class(settings.STATICFILES_STORAGE)() self.destination_storage = get_storage_class(settings.STATICFILES_STORAGE)()


try: try:
Expand Down Expand Up @@ -124,14 +124,14 @@ def copy_file(self, source, prefix, source_storage, **options):
# storage doesn't support ``modified_time`` or failed. # storage doesn't support ``modified_time`` or failed.
pass pass
else: else:
destination_is_link= os.path.islink( destination_is_link = os.path.islink(
self.destination_storage.path(destination)) self.destination_storage.path(destination))
if destination_last_modified == source_last_modified: if destination_last_modified == source_last_modified:
if (not symlink and not destination_is_link): if (not symlink and not destination_is_link):
if verbosity >= 2: if verbosity >= 2:
self.stdout.write("Skipping '%s' (not modified)\n" self.stdout.write("Skipping '%s' (not modified)\n"
% destination) % destination)
self.unmodified_files.append(destination) self.unmodified_files.add(destination)
return False return False
if dry_run: if dry_run:
if verbosity >= 2: if verbosity >= 2:
Expand All @@ -157,7 +157,7 @@ def copy_file(self, source, prefix, source_storage, **options):
except OSError: except OSError:
pass pass
os.symlink(source_path, destination_path) os.symlink(source_path, destination_path)
self.symlinked_files.append(destination) self.symlinked_files.add(destination)
else: else:
if dry_run: if dry_run:
if verbosity >= 1: if verbosity >= 1:
Expand All @@ -180,5 +180,5 @@ def copy_file(self, source, prefix, source_storage, **options):
if verbosity >= 1: if verbosity >= 1:
self.stdout.write("Copying %s to %s\n" self.stdout.write("Copying %s to %s\n"
% (source_path, destination)) % (source_path, destination))
self.copied_files.append(destination) self.copied_files.add(destination)
return True return True
8 changes: 7 additions & 1 deletion tests/regressiontests/staticfiles_tests/tests.py
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -7,12 +7,13 @@


from django.test import TestCase from django.test import TestCase
from django.conf import settings from django.conf import settings
from django.contrib.staticfiles import finders, storage
from django.core.files.storage import default_storage
from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ImproperlyConfigured
from django.core.management import call_command from django.core.management import call_command
from django.db.models.loading import load_app from django.db.models.loading import load_app
from django.template import Template, Context from django.template import Template, Context


from django.contrib.staticfiles import finders, storage


TEST_ROOT = os.path.dirname(__file__) TEST_ROOT = os.path.dirname(__file__)


Expand Down Expand Up @@ -54,6 +55,11 @@ def setUp(self):
"regressiontests.staticfiles_tests", "regressiontests.staticfiles_tests",
] ]


# Clear the cached default_storage out, this is because when it first
# gets accessed (by some other test), it evaluates settings.MEDIA_ROOT,
# since we're planning on changing that we need to clear out the cache.
default_storage._wrapped = None

def tearDown(self): def tearDown(self):
settings.DEBUG = self.old_debug settings.DEBUG = self.old_debug
settings.MEDIA_ROOT = self.old_media_root settings.MEDIA_ROOT = self.old_media_root
Expand Down

0 comments on commit aa951eb

Please sign in to comment.