diff --git a/django/contrib/staticfiles/management/commands/collectstatic.py b/django/contrib/staticfiles/management/commands/collectstatic.py index 26b1433a92..980a63fe1c 100644 --- a/django/contrib/staticfiles/management/commands/collectstatic.py +++ b/django/contrib/staticfiles/management/commands/collectstatic.py @@ -309,7 +309,7 @@ class Command(BaseCommand): if self.dry_run: self.log("Pretending to link '%s'" % source_path, level=1) else: - self.log("Linking '%s'" % source_path, level=1) + self.log("Linking '%s'" % source_path, level=2) full_path = self.storage.path(prefixed_path) try: os.makedirs(os.path.dirname(full_path)) @@ -348,7 +348,7 @@ class Command(BaseCommand): if self.dry_run: self.log("Pretending to copy '%s'" % source_path, level=1) else: - self.log("Copying '%s'" % source_path, level=1) + self.log("Copying '%s'" % source_path, level=2) with source_storage.open(path) as source_file: self.storage.save(prefixed_path, source_file) self.copied_files.append(prefixed_path) diff --git a/tests/staticfiles_tests/cases.py b/tests/staticfiles_tests/cases.py index 918ec4f99e..d4a48ce714 100644 --- a/tests/staticfiles_tests/cases.py +++ b/tests/staticfiles_tests/cases.py @@ -61,6 +61,8 @@ class CollectionTestCase(BaseStaticFilesMixin, SimpleTestCase): is separated because some test cases need those asserts without all these tests. """ + run_collectstatic_in_setUp = True + def setUp(self): super().setUp() temp_dir = tempfile.mkdtemp() @@ -68,7 +70,8 @@ class CollectionTestCase(BaseStaticFilesMixin, SimpleTestCase): # rather than as a context manager self.patched_settings = self.settings(STATIC_ROOT=temp_dir) self.patched_settings.enable() - self.run_collectstatic() + if self.run_collectstatic_in_setUp: + self.run_collectstatic() # Same comment as in runtests.teardown. self.addCleanup(shutil.rmtree, temp_dir) diff --git a/tests/staticfiles_tests/test_management.py b/tests/staticfiles_tests/test_management.py index 0d115d8596..1472c7a488 100644 --- a/tests/staticfiles_tests/test_management.py +++ b/tests/staticfiles_tests/test_management.py @@ -164,6 +164,31 @@ class TestCollection(TestDefaults, CollectionTestCase): self.assertFileNotFound('test/CVS') +class TestCollectionVerbosity(CollectionTestCase): + copying_msg = 'Copying ' + run_collectstatic_in_setUp = False + staticfiles_copied_msg = 'static files copied to' + + def test_verbosity_0(self): + stdout = StringIO() + self.run_collectstatic(verbosity=0, stdout=stdout) + self.assertEqual(stdout.getvalue(), '') + + def test_verbosity_1(self): + stdout = StringIO() + self.run_collectstatic(verbosity=1, stdout=stdout) + output = stdout.getvalue() + self.assertIn(self.staticfiles_copied_msg, output) + self.assertNotIn(self.copying_msg, output) + + def test_verbosity_2(self): + stdout = StringIO() + self.run_collectstatic(verbosity=2, stdout=stdout) + output = stdout.getvalue() + self.assertIn(self.staticfiles_copied_msg, output) + self.assertIn(self.copying_msg, output) + + class TestCollectionClear(CollectionTestCase): """ Test the ``--clear`` option of the ``collectstatic`` management command.