mirror of
https://github.com/getpelican/pelican.git
synced 2025-10-15 20:28:56 +02:00
fix testing failures
This commit is contained in:
parent
d7733cd221
commit
68e0fc9ed2
6 changed files with 58 additions and 39 deletions
|
|
@ -217,7 +217,7 @@ class Content(object):
|
|||
if not klass:
|
||||
klass = self.__class__.__name__
|
||||
fq_key = ('%s_%s' % (klass, key)).upper()
|
||||
return self.settings[fq_key].format(**self.url_format)
|
||||
return str(self.settings[fq_key]).format(**self.url_format)
|
||||
|
||||
def get_url_setting(self, key):
|
||||
if hasattr(self, 'override_' + key):
|
||||
|
|
|
|||
|
|
@ -351,12 +351,12 @@ class ArticlesGenerator(CachingGenerator):
|
|||
writer.write_feed(
|
||||
arts,
|
||||
self.context,
|
||||
self.settings['CATEGORY_FEED_ATOM'].format(slug=cat.slug),
|
||||
str(self.settings['CATEGORY_FEED_ATOM']).format(slug=cat.slug),
|
||||
self.settings.get(
|
||||
'CATEGORY_FEED_ATOM_URL',
|
||||
str(self.settings['CATEGORY_FEED_ATOM'])).format(
|
||||
str(self.settings['CATEGORY_FEED_ATOM']).format(
|
||||
slug=cat.slug
|
||||
),
|
||||
)),
|
||||
feed_title=cat.name
|
||||
)
|
||||
|
||||
|
|
@ -364,12 +364,12 @@ class ArticlesGenerator(CachingGenerator):
|
|||
writer.write_feed(
|
||||
arts,
|
||||
self.context,
|
||||
self.settings['CATEGORY_FEED_RSS'].format(slug=cat.slug),
|
||||
str(self.settings['CATEGORY_FEED_RSS']).format(slug=cat.slug),
|
||||
self.settings.get(
|
||||
'CATEGORY_FEED_RSS_URL',
|
||||
str(self.settings['CATEGORY_FEED_RSS'])).format(
|
||||
str(self.settings['CATEGORY_FEED_RSS']).format(
|
||||
slug=cat.slug
|
||||
),
|
||||
)),
|
||||
feed_title=cat.name,
|
||||
feed_type='rss'
|
||||
)
|
||||
|
|
@ -379,12 +379,12 @@ class ArticlesGenerator(CachingGenerator):
|
|||
writer.write_feed(
|
||||
arts,
|
||||
self.context,
|
||||
self.settings['AUTHOR_FEED_ATOM'].format(slug=auth.slug),
|
||||
str(self.settings['AUTHOR_FEED_ATOM']).format(slug=auth.slug),
|
||||
self.settings.get(
|
||||
'AUTHOR_FEED_ATOM_URL',
|
||||
str(self.settings['AUTHOR_FEED_ATOM'])).format(
|
||||
str(self.settings['AUTHOR_FEED_ATOM']).format(
|
||||
slug=auth.slug
|
||||
),
|
||||
)),
|
||||
feed_title=auth.name
|
||||
)
|
||||
|
||||
|
|
@ -392,12 +392,12 @@ class ArticlesGenerator(CachingGenerator):
|
|||
writer.write_feed(
|
||||
arts,
|
||||
self.context,
|
||||
self.settings['AUTHOR_FEED_RSS'].format(slug=auth.slug),
|
||||
str(self.settings['AUTHOR_FEED_RSS']).format(slug=auth.slug),
|
||||
self.settings.get(
|
||||
'AUTHOR_FEED_RSS_URL',
|
||||
str(self.settings['AUTHOR_FEED_RSS'])).format(
|
||||
str(self.settings['AUTHOR_FEED_RSS']).format(
|
||||
slug=auth.slug
|
||||
),
|
||||
)),
|
||||
feed_title=auth.name,
|
||||
feed_type='rss'
|
||||
)
|
||||
|
|
@ -409,12 +409,12 @@ class ArticlesGenerator(CachingGenerator):
|
|||
writer.write_feed(
|
||||
arts,
|
||||
self.context,
|
||||
self.settings['TAG_FEED_ATOM'].format(slug=tag.slug),
|
||||
str(self.settings['TAG_FEED_ATOM']).format(slug=tag.slug),
|
||||
self.settings.get(
|
||||
'TAG_FEED_ATOM_URL',
|
||||
str(self.settings['TAG_FEED_ATOM'])).format(
|
||||
str(self.settings['TAG_FEED_ATOM']).format(
|
||||
slug=tag.slug
|
||||
),
|
||||
)),
|
||||
feed_title=tag.name
|
||||
)
|
||||
|
||||
|
|
@ -422,12 +422,12 @@ class ArticlesGenerator(CachingGenerator):
|
|||
writer.write_feed(
|
||||
arts,
|
||||
self.context,
|
||||
self.settings['TAG_FEED_RSS'].format(slug=tag.slug),
|
||||
str(self.settings['TAG_FEED_RSS']).format(slug=tag.slug),
|
||||
self.settings.get(
|
||||
'TAG_FEED_RSS_URL',
|
||||
str(self.settings['TAG_FEED_RSS'])).format(
|
||||
str(self.settings['TAG_FEED_RSS']).format(
|
||||
slug=tag.slug
|
||||
),
|
||||
)),
|
||||
feed_title=tag.name,
|
||||
feed_type='rss'
|
||||
)
|
||||
|
|
@ -445,27 +445,31 @@ class ArticlesGenerator(CachingGenerator):
|
|||
writer.write_feed(
|
||||
items,
|
||||
self.context,
|
||||
self.settings['TRANSLATION_FEED_ATOM']
|
||||
.format(lang=lang),
|
||||
str(
|
||||
self.settings['TRANSLATION_FEED_ATOM']
|
||||
).format(lang=lang),
|
||||
self.settings.get(
|
||||
'TRANSLATION_FEED_ATOM_URL',
|
||||
str(
|
||||
self.settings['TRANSLATION_FEED_ATOM'])
|
||||
self.settings['TRANSLATION_FEED_ATOM']
|
||||
).format(lang=lang),
|
||||
)
|
||||
)
|
||||
if self.settings.get('TRANSLATION_FEED_RSS'):
|
||||
writer.write_feed(
|
||||
items,
|
||||
self.context,
|
||||
self.settings['TRANSLATION_FEED_RSS']
|
||||
.format(lang=lang),
|
||||
str(
|
||||
self.settings['TRANSLATION_FEED_RSS']
|
||||
).format(lang=lang),
|
||||
self.settings.get(
|
||||
'TRANSLATION_FEED_RSS_URL',
|
||||
str(self.settings['TRANSLATION_FEED_RSS'])).format(
|
||||
str(self.settings['TRANSLATION_FEED_RSS']).format(
|
||||
lang=lang
|
||||
),
|
||||
feed_type='rss'
|
||||
)
|
||||
)
|
||||
|
||||
def generate_articles(self, write):
|
||||
"""Generate the articles."""
|
||||
|
|
|
|||
|
|
@ -409,7 +409,7 @@ def handle_deprecated_settings(settings):
|
|||
for key in ['TRANSLATION_FEED_ATOM',
|
||||
'TRANSLATION_FEED_RSS'
|
||||
]:
|
||||
if settings.get(key) and '%s' in settings[key]:
|
||||
if settings.get(key) and not isinstance(settings[key], Path) and '%s' in settings[key]:
|
||||
logger.warning('%%s usage in %s is deprecated, use {lang} '
|
||||
'instead.', key)
|
||||
try:
|
||||
|
|
@ -426,7 +426,7 @@ def handle_deprecated_settings(settings):
|
|||
'TAG_FEED_ATOM',
|
||||
'TAG_FEED_RSS',
|
||||
]:
|
||||
if settings.get(key) and '%s' in settings[key]:
|
||||
if settings.get(key) and not isinstance(settings[key], Path) and '%s' in settings[key]:
|
||||
logger.warning('%%s usage in %s is deprecated, use {slug} '
|
||||
'instead.', key)
|
||||
try:
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
import functools
|
||||
import logging
|
||||
import os
|
||||
import pathlib
|
||||
|
||||
from pelican.utils import slugify
|
||||
|
||||
|
|
@ -112,6 +113,8 @@ class URLWrapper(object):
|
|||
"""
|
||||
setting = "%s_%s" % (self.__class__.__name__.upper(), key)
|
||||
value = self.settings[setting]
|
||||
if isinstance(value, pathlib.Path):
|
||||
value = str(value)
|
||||
if not isinstance(value, str):
|
||||
logger.warning('%s is set to %s', setting, value)
|
||||
return value
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import fnmatch
|
|||
import locale
|
||||
import logging
|
||||
import os
|
||||
import pathlib
|
||||
import re
|
||||
import shutil
|
||||
import sys
|
||||
|
|
@ -815,17 +816,28 @@ def split_all(path):
|
|||
>>> split_all(os.path.join('a', 'b', 'c'))
|
||||
['a', 'b', 'c']
|
||||
"""
|
||||
components = []
|
||||
path = path.lstrip('/')
|
||||
while path:
|
||||
head, tail = os.path.split(path)
|
||||
if tail:
|
||||
components.insert(0, tail)
|
||||
elif head == path:
|
||||
components.insert(0, head)
|
||||
break
|
||||
path = head
|
||||
return components
|
||||
if isinstance(path, str):
|
||||
components = []
|
||||
path = path.lstrip('/')
|
||||
while path:
|
||||
head, tail = os.path.split(path)
|
||||
if tail:
|
||||
components.insert(0, tail)
|
||||
elif head == path:
|
||||
components.insert(0, head)
|
||||
break
|
||||
path = head
|
||||
return components
|
||||
elif isinstance(path, pathlib.Path):
|
||||
return path.parts
|
||||
elif path is None:
|
||||
return None
|
||||
else:
|
||||
raise TypeError(
|
||||
'"path" was {}, must be string, None, or pathlib.Path'.format(
|
||||
type(path)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def is_selected_for_writing(settings, path):
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class Writer(object):
|
|||
self.urljoiner = os.path.join
|
||||
else:
|
||||
self.urljoiner = lambda base, url: urljoin(
|
||||
base if base.endswith('/') else base + '/', url)
|
||||
base if base.endswith('/') else base + '/', str(url))
|
||||
|
||||
def _create_new_feed(self, feed_type, feed_title, context):
|
||||
feed_class = Rss201rev2Feed if feed_type == 'rss' else Atom1Feed
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue