From 70b8ededa6279cd2ecfbbf91db9c5c1ea6860520 Mon Sep 17 00:00:00 2001 From: Oliver Urs Lenz Date: Fri, 16 Nov 2018 18:09:22 +0100 Subject: [PATCH] Disinherit Page from Static so default draft status does not affect save_as --- pelican/contents.py | 6 +++++- pelican/tests/test_contents.py | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/pelican/contents.py b/pelican/contents.py index 8d534976..21535ea0 100644 --- a/pelican/contents.py +++ b/pelican/contents.py @@ -527,7 +527,11 @@ class Article(Content): @python_2_unicode_compatible -class Static(Page): +class Static(Content): + mandatory_properties = ('title',) + default_status = 'published' + default_template = None + def __init__(self, *args, **kwargs): super(Static, self).__init__(*args, **kwargs) self._output_location_referenced = False diff --git a/pelican/tests/test_contents.py b/pelican/tests/test_contents.py index da1a6ae2..8046d608 100644 --- a/pelican/tests/test_contents.py +++ b/pelican/tests/test_contents.py @@ -917,3 +917,18 @@ class TestStatic(LoggedTestCase): self.settings['INDEX_SAVE_AS'])) + '">link') self.assertEqual(content, expected_html) + + def test_not_save_as_draft(self): + """Static.save_as is not affected by draft status.""" + + static = Static( + content=None, + metadata=dict(status='draft',), + settings=self.settings, + source_path=os.path.join('dir', 'foo.jpg'), + context=self.settings.copy()) + + expected_save_as = os.path.join('dir', 'foo.jpg') + self.assertEqual(static.status, 'draft') + self.assertEqual(static.save_as, expected_save_as) + self.assertEqual(static.url, path_to_url(expected_save_as))