mirror of
https://github.com/getpelican/pelican.git
synced 2025-10-15 20:28:56 +02:00
Implemented better "valid files not found" behavior.
Used an exception so show error state. Used a bool flag to make sure the error is only shown once PER error. Updated tests to check for the correct Exception raised
This commit is contained in:
parent
86da6d1f2e
commit
a37ba369ef
3 changed files with 14 additions and 5 deletions
|
|
@ -11,7 +11,7 @@ from pelican.generators import (ArticlesGenerator, PagesGenerator,
|
||||||
StaticGenerator, PdfGenerator, LessCSSGenerator)
|
StaticGenerator, PdfGenerator, LessCSSGenerator)
|
||||||
from pelican.log import init
|
from pelican.log import init
|
||||||
from pelican.settings import read_settings, _DEFAULT_CONFIG
|
from pelican.settings import read_settings, _DEFAULT_CONFIG
|
||||||
from pelican.utils import clean_output_dir, files_changed, file_changed
|
from pelican.utils import clean_output_dir, files_changed, file_changed, NoFilesError
|
||||||
from pelican.writers import Writer
|
from pelican.writers import Writer
|
||||||
|
|
||||||
__major__ = 3
|
__major__ = 3
|
||||||
|
|
@ -265,6 +265,7 @@ def main():
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if args.autoreload:
|
if args.autoreload:
|
||||||
|
files_found_error = True
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
# Check source dir for changed files ending with the given
|
# Check source dir for changed files ending with the given
|
||||||
|
|
@ -274,6 +275,8 @@ def main():
|
||||||
# have.
|
# have.
|
||||||
if files_changed(pelican.path, pelican.markup) or \
|
if files_changed(pelican.path, pelican.markup) or \
|
||||||
files_changed(pelican.theme, ['']):
|
files_changed(pelican.theme, ['']):
|
||||||
|
if files_found_error == False:
|
||||||
|
files_found_error = True
|
||||||
pelican.run()
|
pelican.run()
|
||||||
|
|
||||||
# reload also if settings.py changed
|
# reload also if settings.py changed
|
||||||
|
|
@ -287,6 +290,10 @@ def main():
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
logger.warning("Keyboard interrupt, quitting.")
|
logger.warning("Keyboard interrupt, quitting.")
|
||||||
break
|
break
|
||||||
|
except NoFilesError:
|
||||||
|
if files_found_error == True:
|
||||||
|
logger.warning("No valid files found in content. Nothing to generate.")
|
||||||
|
files_found_error = False
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
"Caught exception \"{}\". Reloading.".format(e)
|
"Caught exception \"{}\". Reloading.".format(e)
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,9 @@ from operator import attrgetter
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
class NoFilesError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def get_date(string):
|
def get_date(string):
|
||||||
"""Return a datetime object from a string.
|
"""Return a datetime object from a string.
|
||||||
|
|
@ -247,8 +250,7 @@ def files_changed(path, extensions):
|
||||||
LAST_MTIME = mtime
|
LAST_MTIME = mtime
|
||||||
return True
|
return True
|
||||||
except ValueError:
|
except ValueError:
|
||||||
logger.info("No files found in path")
|
raise NoFilesError("No files with the given extension(s) found.")
|
||||||
return False
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -96,8 +96,8 @@ class TestUtils(unittest.TestCase):
|
||||||
os.mkdir(empty_path)
|
os.mkdir(empty_path)
|
||||||
os.mkdir(os.path.join(empty_path, "empty_folder"))
|
os.mkdir(os.path.join(empty_path, "empty_folder"))
|
||||||
shutil.copy(__file__, empty_path)
|
shutil.copy(__file__, empty_path)
|
||||||
changed = utils.files_changed(empty_path, 'rst')
|
with self.assertRaises(NoFilesError):
|
||||||
self.assertFalse(changed)
|
utils.files_changed(empty_path, 'rst')
|
||||||
except OSError:
|
except OSError:
|
||||||
self.fail("OSError Exception in test_files_changed test")
|
self.fail("OSError Exception in test_files_changed test")
|
||||||
finally:
|
finally:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue